diff options
Diffstat (limited to 'db')
-rw-r--r-- | db/migrate/20241226110255_create_tartiflettes.rb | 9 | ||||
-rw-r--r-- | db/migrate/20241226113752_create_scores.rb | 11 | ||||
-rw-r--r-- | db/migrate/20241226113815_create_scoring_criteria.rb | 10 | ||||
-rw-r--r-- | db/migrate/20241227180909_create_users.rb | 11 | ||||
-rw-r--r-- | db/migrate/20241227180910_create_sessions.rb | 11 | ||||
-rw-r--r-- | db/migrate/20241227181134_add_admin_to_users.rb | 5 | ||||
-rw-r--r-- | db/schema.rb | 58 | ||||
-rw-r--r-- | db/seeds.rb | 41 |
8 files changed, 156 insertions, 0 deletions
diff --git a/db/migrate/20241226110255_create_tartiflettes.rb b/db/migrate/20241226110255_create_tartiflettes.rb new file mode 100644 index 0000000..17ee93f --- /dev/null +++ b/db/migrate/20241226110255_create_tartiflettes.rb @@ -0,0 +1,9 @@ +class CreateTartiflettes < ActiveRecord::Migration[8.0] + def change + create_table :tartiflettes do |t| + t.integer :scoring_id + + t.timestamps + end + end +end diff --git a/db/migrate/20241226113752_create_scores.rb b/db/migrate/20241226113752_create_scores.rb new file mode 100644 index 0000000..488baaa --- /dev/null +++ b/db/migrate/20241226113752_create_scores.rb @@ -0,0 +1,11 @@ +class CreateScores < ActiveRecord::Migration[8.0] + def change + create_table :scores do |t| + t.references :tartiflette, null: false, foreign_key: true + t.references :scoring_criterium, null: false, foreign_key: true + t.integer :value + + t.timestamps + end + end +end diff --git a/db/migrate/20241226113815_create_scoring_criteria.rb b/db/migrate/20241226113815_create_scoring_criteria.rb new file mode 100644 index 0000000..8370529 --- /dev/null +++ b/db/migrate/20241226113815_create_scoring_criteria.rb @@ -0,0 +1,10 @@ +class CreateScoringCriteria < ActiveRecord::Migration[8.0] + def change + create_table :scoring_criteria do |t| + t.string :name + t.string :category + + t.timestamps + end + end +end diff --git a/db/migrate/20241227180909_create_users.rb b/db/migrate/20241227180909_create_users.rb new file mode 100644 index 0000000..2075edf --- /dev/null +++ b/db/migrate/20241227180909_create_users.rb @@ -0,0 +1,11 @@ +class CreateUsers < ActiveRecord::Migration[8.0] + def change + create_table :users do |t| + t.string :email_address, null: false + t.string :password_digest, null: false + + t.timestamps + end + add_index :users, :email_address, unique: true + end +end diff --git a/db/migrate/20241227180910_create_sessions.rb b/db/migrate/20241227180910_create_sessions.rb new file mode 100644 index 0000000..8102f13 --- /dev/null +++ b/db/migrate/20241227180910_create_sessions.rb @@ -0,0 +1,11 @@ +class CreateSessions < ActiveRecord::Migration[8.0] + def change + create_table :sessions do |t| + t.references :user, null: false, foreign_key: true + t.string :ip_address + t.string :user_agent + + t.timestamps + end + end +end diff --git a/db/migrate/20241227181134_add_admin_to_users.rb b/db/migrate/20241227181134_add_admin_to_users.rb new file mode 100644 index 0000000..c1f08cf --- /dev/null +++ b/db/migrate/20241227181134_add_admin_to_users.rb @@ -0,0 +1,5 @@ +class AddAdminToUsers < ActiveRecord::Migration[8.0] + def change + add_column :users, :admin, :boolean, default: false + end +end diff --git a/db/schema.rb b/db/schema.rb new file mode 100644 index 0000000..eb5b7e8 --- /dev/null +++ b/db/schema.rb @@ -0,0 +1,58 @@ +# 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. +# +# This file is the source Rails uses to define your schema when running `bin/rails +# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to +# be faster and is potentially less error prone than running all of your +# migrations from scratch. Old migrations may fail to apply correctly if those +# migrations use external dependencies or application code. +# +# It's strongly recommended that you check this file into your version control system. + +ActiveRecord::Schema[8.0].define(version: 2024_12_27_181134) do + create_table "scores", force: :cascade do |t| + t.integer "tartiflette_id", null: false + t.integer "scoring_criterium_id", null: false + t.integer "value" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["scoring_criterium_id"], name: "index_scores_on_scoring_criterium_id" + t.index ["tartiflette_id"], name: "index_scores_on_tartiflette_id" + end + + create_table "scoring_criteria", force: :cascade do |t| + t.string "name" + t.string "category" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + end + + create_table "sessions", force: :cascade do |t| + t.integer "user_id", null: false + t.string "ip_address" + t.string "user_agent" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["user_id"], name: "index_sessions_on_user_id" + end + + create_table "tartiflettes", force: :cascade do |t| + t.integer "scoring_id" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + end + + create_table "users", force: :cascade do |t| + t.string "email_address", null: false + t.string "password_digest", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.boolean "admin", default: false + t.index ["email_address"], name: "index_users_on_email_address", unique: true + end + + add_foreign_key "scores", "scoring_criteria" + add_foreign_key "scores", "tartiflettes" + add_foreign_key "sessions", "users" +end diff --git a/db/seeds.rb b/db/seeds.rb new file mode 100644 index 0000000..7fb3253 --- /dev/null +++ b/db/seeds.rb @@ -0,0 +1,41 @@ +# This file should ensure the existence of records required to run the application in every environment (production, +# development, test). The code here should be idempotent so that it can be executed at any point in every environment. +# The data can then be loaded with the bin/rails db:seed command (or created alongside the database with db:setup). +# +# Example: +# +# ["Action", "Comedy", "Drama", "Horror"].each do |genre_name| +# MovieGenre.find_or_create_by!(name: genre_name) +# end + +User.create!( + email_address: "wtt@marius-peter.com", + password: "password", + password_confirmation: "password", + admin: true +) +puts "Seeded admin account" + +(1..8).each do |id| + Tartiflette.create!(scoring_id: id) +end +puts "Seeded tartiflettes" + +{ visuel: [ "présence de la pastille", + "croûte dorée", + "lardons apparents" ], + texture: [ "pommes de terre fondantes", + "lardons grillés", + "oignons biens cuits" ], + goût: [ "reblochon savoureux", + "lardons appétants", + "vin blanc équilibré" ], + special: [ "on en reveut !", + "quelqu'un cherche à dépasser les maestros...", + "on reconnaît la patte du tartifleur" ] +}.each do |category, names| + names.each do |name| + ScoringCriterium.create!(name: name, category: category) + end +end +puts "Seeded scoring criteria" |