Create models to store tables arrangements

This commit is contained in:
Manuel Bustillo 2024-07-24 20:24:01 +02:00
parent 405e698a6f
commit 7926928feb
8 changed files with 56 additions and 1 deletions

4
app/models/seat.rb Normal file
View File

@ -0,0 +1,4 @@
class Seat < ApplicationRecord
belongs_to :guest
belongs_to :table_arrangement
end

View File

@ -0,0 +1,2 @@
class TablesArrangement < ApplicationRecord
end

View File

@ -0,0 +1,8 @@
class CreateTablesArrangements < ActiveRecord::Migration[7.1]
def change
create_table :tables_arrangements, id: :uuid do |t|
t.timestamps
end
end
end

View File

@ -0,0 +1,13 @@
class CreateSeats < ActiveRecord::Migration[7.1]
def change
create_table :seats, id: :uuid do |t|
t.references :guest, null: false, foreign_key: true, type: :uuid
t.references :tables_arrangement, null: false, type: :uuid
t.integer :table_number
t.timestamps
end
add_foreign_key :seats, :tables_arrangements, on_delete: :cascade
end
end

19
db/schema.rb generated
View File

@ -10,7 +10,7 @@
# #
# It's strongly recommended that you check this file into your version control system. # It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.1].define(version: 2024_07_11_181632) do ActiveRecord::Schema[7.1].define(version: 2024_07_24_181853) do
# These are extensions that must be enabled in order to support this database # These are extensions that must be enabled in order to support this database
enable_extension "plpgsql" enable_extension "plpgsql"
@ -35,6 +35,21 @@ ActiveRecord::Schema[7.1].define(version: 2024_07_11_181632) do
t.datetime "updated_at", null: false t.datetime "updated_at", null: false
end end
create_table "seats", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
t.uuid "guest_id", null: false
t.uuid "tables_arrangement_id", null: false
t.integer "table_number"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["guest_id"], name: "index_seats_on_guest_id"
t.index ["tables_arrangement_id"], name: "index_seats_on_tables_arrangement_id"
end
create_table "tables_arrangements", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "taggings", force: :cascade do |t| create_table "taggings", force: :cascade do |t|
t.bigint "tag_id" t.bigint "tag_id"
t.string "taggable_type" t.string "taggable_type"
@ -66,5 +81,7 @@ ActiveRecord::Schema[7.1].define(version: 2024_07_11_181632) do
t.index ["name"], name: "index_tags_on_name", unique: true t.index ["name"], name: "index_tags_on_name", unique: true
end end
add_foreign_key "seats", "guests"
add_foreign_key "seats", "tables_arrangements", on_delete: :cascade
add_foreign_key "taggings", "tags" add_foreign_key "taggings", "tags"
end end

View File

@ -1,5 +1,6 @@
NUMBER_OF_GUESTS = 50 NUMBER_OF_GUESTS = 50
TablesArrangement.delete_all
Expense.delete_all Expense.delete_all
Guest.delete_all Guest.delete_all
ActsAsTaggableOn::Tagging.delete_all ActsAsTaggableOn::Tagging.delete_all

5
spec/models/seat_spec.rb Normal file
View File

@ -0,0 +1,5 @@
require 'rails_helper'
RSpec.describe Seat, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end

View File

@ -0,0 +1,5 @@
require 'rails_helper'
RSpec.describe TablesArrangement, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end