Define a simple wedding model
All checks were successful
Check usage of free licenses / check-licenses (pull_request) Successful in 1m6s
Add copyright notice / copyright_notice (pull_request) Successful in 1m53s
Run unit tests / unit_tests (pull_request) Successful in 4m17s

This commit is contained in:
Manuel Bustillo 2024-11-30 19:24:59 +01:00
parent 7df4ab1c56
commit 24c39f331a
6 changed files with 51 additions and 3 deletions

18
app/models/wedding.rb Normal file
View 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

View 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
View File

@ -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"

View File

@ -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')

View File

@ -0,0 +1,5 @@
FactoryBot.define do
factory :wedding do
date { 1.year.from_now }
end
end

View File

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