Create DB associations
This commit is contained in:
parent
988e158d99
commit
8bff98b165
@ -10,8 +10,18 @@
|
||||
# pricing_type :enum default("fixed"), not null
|
||||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
# wedding_id :uuid not null
|
||||
#
|
||||
# Indexes
|
||||
#
|
||||
# index_expenses_on_wedding_id (wedding_id)
|
||||
#
|
||||
# Foreign Keys
|
||||
#
|
||||
# fk_rails_... (wedding_id => weddings.id)
|
||||
#
|
||||
class Expense < ApplicationRecord
|
||||
acts_as_tenant :wedding
|
||||
enum :pricing_type,
|
||||
fixed: 'fixed',
|
||||
per_person: 'per_person'
|
||||
|
@ -12,17 +12,22 @@
|
||||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
# parent_id :uuid
|
||||
# wedding_id :uuid not null
|
||||
#
|
||||
# Indexes
|
||||
#
|
||||
# index_groups_on_name (name) UNIQUE
|
||||
# index_groups_on_parent_id (parent_id)
|
||||
# index_groups_on_name (name) UNIQUE
|
||||
# index_groups_on_parent_id (parent_id)
|
||||
# index_groups_on_wedding_id (wedding_id)
|
||||
#
|
||||
# Foreign Keys
|
||||
#
|
||||
# fk_rails_... (parent_id => groups.id)
|
||||
# fk_rails_... (wedding_id => weddings.id)
|
||||
#
|
||||
class Group < ApplicationRecord
|
||||
acts_as_tenant :wedding
|
||||
|
||||
validates :name, uniqueness: true
|
||||
validates :name, :order, presence: true
|
||||
|
||||
|
@ -11,16 +11,20 @@
|
||||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
# group_id :uuid not null
|
||||
# wedding_id :uuid not null
|
||||
#
|
||||
# Indexes
|
||||
#
|
||||
# index_guests_on_group_id (group_id)
|
||||
# index_guests_on_group_id (group_id)
|
||||
# index_guests_on_wedding_id (wedding_id)
|
||||
#
|
||||
# Foreign Keys
|
||||
#
|
||||
# fk_rails_... (group_id => groups.id)
|
||||
# fk_rails_... (wedding_id => weddings.id)
|
||||
#
|
||||
class Guest < ApplicationRecord
|
||||
acts_as_tenant :wedding
|
||||
belongs_to :group
|
||||
|
||||
enum :status, {
|
||||
|
@ -10,18 +10,22 @@
|
||||
# updated_at :datetime not null
|
||||
# guest_id :uuid not null
|
||||
# tables_arrangement_id :uuid not null
|
||||
# wedding_id :uuid not null
|
||||
#
|
||||
# Indexes
|
||||
#
|
||||
# index_seats_on_guest_id (guest_id)
|
||||
# index_seats_on_tables_arrangement_id (tables_arrangement_id)
|
||||
# index_seats_on_wedding_id (wedding_id)
|
||||
#
|
||||
# Foreign Keys
|
||||
#
|
||||
# fk_rails_... (guest_id => guests.id)
|
||||
# fk_rails_... (tables_arrangement_id => tables_arrangements.id) ON DELETE => cascade
|
||||
# fk_rails_... (wedding_id => weddings.id)
|
||||
#
|
||||
class Seat < ApplicationRecord
|
||||
acts_as_tenant :wedding
|
||||
belongs_to :guest
|
||||
belongs_to :table_arrangement
|
||||
end
|
||||
|
@ -9,8 +9,18 @@
|
||||
# name :string not null
|
||||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
# wedding_id :uuid not null
|
||||
#
|
||||
# Indexes
|
||||
#
|
||||
# index_tables_arrangements_on_wedding_id (wedding_id)
|
||||
#
|
||||
# Foreign Keys
|
||||
#
|
||||
# fk_rails_... (wedding_id => weddings.id)
|
||||
#
|
||||
class TablesArrangement < ApplicationRecord
|
||||
acts_as_tenant :wedding
|
||||
has_many :seats
|
||||
has_many :guests, through: :seats
|
||||
|
||||
|
7
db/migrate/20241130185731_add_wedding_id_to_models.rb
Normal file
7
db/migrate/20241130185731_add_wedding_id_to_models.rb
Normal file
@ -0,0 +1,7 @@
|
||||
class AddWeddingIdToModels < ActiveRecord::Migration[8.0]
|
||||
def change
|
||||
[:expenses, :guests, :seats, :tables_arrangements, :groups].each do |table|
|
||||
add_reference table, :wedding, type: :uuid, null: false, foreign_key: true
|
||||
end
|
||||
end
|
||||
end
|
17
db/schema.rb
generated
17
db/schema.rb
generated
@ -12,7 +12,7 @@
|
||||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema[8.0].define(version: 2024_11_30_182228) do
|
||||
ActiveRecord::Schema[8.0].define(version: 2024_11_30_185731) do
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "pg_catalog.plpgsql"
|
||||
|
||||
@ -26,6 +26,8 @@ ActiveRecord::Schema[8.0].define(version: 2024_11_30_182228) do
|
||||
t.enum "pricing_type", default: "fixed", null: false, enum_type: "pricing_types"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.uuid "wedding_id", null: false
|
||||
t.index ["wedding_id"], name: "index_expenses_on_wedding_id"
|
||||
end
|
||||
|
||||
create_table "groups", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
|
||||
@ -36,8 +38,10 @@ ActiveRecord::Schema[8.0].define(version: 2024_11_30_182228) do
|
||||
t.datetime "updated_at", null: false
|
||||
t.uuid "parent_id"
|
||||
t.string "color"
|
||||
t.uuid "wedding_id", null: false
|
||||
t.index ["name"], name: "index_groups_on_name", unique: true
|
||||
t.index ["parent_id"], name: "index_groups_on_parent_id"
|
||||
t.index ["wedding_id"], name: "index_groups_on_wedding_id"
|
||||
end
|
||||
|
||||
create_table "guests", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
|
||||
@ -47,7 +51,9 @@ ActiveRecord::Schema[8.0].define(version: 2024_11_30_182228) do
|
||||
t.uuid "group_id", null: false
|
||||
t.integer "status", default: 0
|
||||
t.string "name"
|
||||
t.uuid "wedding_id", null: false
|
||||
t.index ["group_id"], name: "index_guests_on_group_id"
|
||||
t.index ["wedding_id"], name: "index_guests_on_wedding_id"
|
||||
end
|
||||
|
||||
create_table "seats", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
|
||||
@ -56,8 +62,10 @@ ActiveRecord::Schema[8.0].define(version: 2024_11_30_182228) do
|
||||
t.integer "table_number"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.uuid "wedding_id", null: false
|
||||
t.index ["guest_id"], name: "index_seats_on_guest_id"
|
||||
t.index ["tables_arrangement_id"], name: "index_seats_on_tables_arrangement_id"
|
||||
t.index ["wedding_id"], name: "index_seats_on_wedding_id"
|
||||
end
|
||||
|
||||
create_table "solid_queue_blocked_executions", force: :cascade do |t|
|
||||
@ -186,6 +194,8 @@ ActiveRecord::Schema[8.0].define(version: 2024_11_30_182228) do
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.string "name", null: false
|
||||
t.uuid "wedding_id", null: false
|
||||
t.index ["wedding_id"], name: "index_tables_arrangements_on_wedding_id"
|
||||
end
|
||||
|
||||
create_table "users", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
|
||||
@ -216,14 +226,19 @@ ActiveRecord::Schema[8.0].define(version: 2024_11_30_182228) do
|
||||
t.index ["slug"], name: "index_weddings_on_slug", unique: true
|
||||
end
|
||||
|
||||
add_foreign_key "expenses", "weddings"
|
||||
add_foreign_key "groups", "groups", column: "parent_id"
|
||||
add_foreign_key "groups", "weddings"
|
||||
add_foreign_key "guests", "groups"
|
||||
add_foreign_key "guests", "weddings"
|
||||
add_foreign_key "seats", "guests"
|
||||
add_foreign_key "seats", "tables_arrangements", on_delete: :cascade
|
||||
add_foreign_key "seats", "weddings"
|
||||
add_foreign_key "solid_queue_blocked_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
|
||||
add_foreign_key "solid_queue_claimed_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
|
||||
add_foreign_key "solid_queue_failed_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
|
||||
add_foreign_key "solid_queue_ready_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
|
||||
add_foreign_key "solid_queue_recurring_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
|
||||
add_foreign_key "solid_queue_scheduled_executions", "solid_queue_jobs", column: "job_id", on_delete: :cascade
|
||||
add_foreign_key "tables_arrangements", "weddings"
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user