summaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
authorMarius Peter <marius.peter@tutanota.com>2024-12-29 15:14:43 +0100
committerMarius Peter <marius.peter@tutanota.com>2024-12-29 15:14:43 +0100
commitbe2a93525069de2dfa3c23b0c23e7a9f7ad4c03d (patch)
treeb5493e9d35d024ce7be072ec2168b4a98ba0e63f /db
First commit.
Diffstat (limited to 'db')
-rw-r--r--db/migrate/20241226110255_create_tartiflettes.rb9
-rw-r--r--db/migrate/20241226113752_create_scores.rb11
-rw-r--r--db/migrate/20241226113815_create_scoring_criteria.rb10
-rw-r--r--db/migrate/20241227180909_create_users.rb11
-rw-r--r--db/migrate/20241227180910_create_sessions.rb11
-rw-r--r--db/migrate/20241227181134_add_admin_to_users.rb5
-rw-r--r--db/schema.rb58
-rw-r--r--db/seeds.rb41
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"
Copyright 2019--2025 Marius PETER