Define a simple wedding model
This commit is contained in:
parent
7df4ab1c56
commit
24c39f331a
18
app/models/wedding.rb
Normal file
18
app/models/wedding.rb
Normal file
@ -0,0 +1,18 @@
|
||||
# == Schema Information
|
||||
#
|
||||
# Table name: weddings
|
||||
#
|
||||
# id :uuid not null, primary key
|
||||
# date :date not null
|
||||
# slug :string not null
|
||||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
#
|
||||
# Indexes
|
||||
#
|
||||
# index_weddings_on_slug (slug) UNIQUE
|
||||
#
|
||||
class Wedding < ApplicationRecord
|
||||
validates :date, presence: true
|
||||
validates :slug, presence: true, uniqueness: true
|
||||
end
|
10
db/migrate/20241130182228_create_weddings.rb
Normal file
10
db/migrate/20241130182228_create_weddings.rb
Normal file
@ -0,0 +1,10 @@
|
||||
class CreateWeddings < ActiveRecord::Migration[8.0]
|
||||
def change
|
||||
create_table :weddings, id: :uuid do |t|
|
||||
t.string :slug, null: false, index: { unique: true }
|
||||
t.date :date, null: false
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
end
|
12
db/schema.rb
generated
12
db/schema.rb
generated
@ -1,5 +1,3 @@
|
||||
# Copyright (C) 2024 Manuel Bustillo
|
||||
|
||||
# This file is auto-generated from the current state of the database. Instead
|
||||
# of editing this file, please use the migrations feature of Active Record to
|
||||
# incrementally modify your database, and then regenerate this schema definition.
|
||||
@ -12,7 +10,7 @@
|
||||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema[8.0].define(version: 2024_11_30_095753) do
|
||||
ActiveRecord::Schema[8.0].define(version: 2024_11_30_182228) do
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "pg_catalog.plpgsql"
|
||||
|
||||
@ -208,6 +206,14 @@ ActiveRecord::Schema[8.0].define(version: 2024_11_30_095753) do
|
||||
t.index ["unlock_token"], name: "index_users_on_unlock_token", unique: true
|
||||
end
|
||||
|
||||
create_table "weddings", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
|
||||
t.string "slug", null: false
|
||||
t.date "date", null: false
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.index ["slug"], name: "index_weddings_on_slug", unique: true
|
||||
end
|
||||
|
||||
add_foreign_key "groups", "groups", column: "parent_id"
|
||||
add_foreign_key "guests", "groups"
|
||||
add_foreign_key "seats", "guests"
|
||||
|
@ -7,6 +7,10 @@ Expense.delete_all
|
||||
Guest.delete_all
|
||||
Group.delete_all
|
||||
|
||||
Wedding.delete_all
|
||||
|
||||
Wedding.create!(date: 1.year.from_now)
|
||||
|
||||
Expense.create!(name: 'Photographer', amount: 3000, pricing_type: 'fixed')
|
||||
Expense.create!(name: 'Country house', amount: 6000, pricing_type: 'fixed')
|
||||
Expense.create!(name: 'Catering', amount: 200, pricing_type: 'per_person')
|
||||
|
5
spec/factories/weddings.rb
Normal file
5
spec/factories/weddings.rb
Normal file
@ -0,0 +1,5 @@
|
||||
FactoryBot.define do
|
||||
factory :wedding do
|
||||
date { 1.year.from_now }
|
||||
end
|
||||
end
|
5
spec/models/wedding_spec.rb
Normal file
5
spec/models/wedding_spec.rb
Normal file
@ -0,0 +1,5 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe Wedding, type: :model do
|
||||
pending "add some examples to (or delete) #{__FILE__}"
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user