From fe52089c3890bd0ad078fec3a3beb52a5243d21a Mon Sep 17 00:00:00 2001 From: Christophe Robillard Date: Sat, 14 Mar 2026 15:52:29 +0100 Subject: [PATCH] add custom modes --- app/models/mode.rb | 3 +++ db/migrate/20260314144625_create_modes.rb | 11 +++++++++++ db/schema.rb | 12 +++++++++++- spec/factories/modes.rb | 8 ++++++++ spec/models/mode_spec.rb | 5 +++++ 5 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 app/models/mode.rb create mode 100644 db/migrate/20260314144625_create_modes.rb create mode 100644 spec/factories/modes.rb create mode 100644 spec/models/mode_spec.rb diff --git a/app/models/mode.rb b/app/models/mode.rb new file mode 100644 index 0000000..5b84d24 --- /dev/null +++ b/app/models/mode.rb @@ -0,0 +1,3 @@ +class Mode < ApplicationRecord + belongs_to :user +end diff --git a/db/migrate/20260314144625_create_modes.rb b/db/migrate/20260314144625_create_modes.rb new file mode 100644 index 0000000..1f4fa8a --- /dev/null +++ b/db/migrate/20260314144625_create_modes.rb @@ -0,0 +1,11 @@ +class CreateModes < ActiveRecord::Migration[8.0] + def change + create_table :modes do |t| + t.string :label + t.string :color + t.references :user, null: false, foreign_key: true + + t.timestamps + end + end +end diff --git a/db/schema.rb b/db/schema.rb index db0c294..c9c1891 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,16 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[8.0].define(version: 2026_02_26_101258) do +ActiveRecord::Schema[8.0].define(version: 2026_03_14_144625) do + create_table "modes", force: :cascade do |t| + t.string "label" + t.string "color" + t.integer "user_id", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["user_id"], name: "index_modes_on_user_id" + end + create_table "moods", force: :cascade do |t| t.string "mode" t.datetime "recorded_at" @@ -52,6 +61,7 @@ ActiveRecord::Schema[8.0].define(version: 2026_02_26_101258) do t.index ["email_address"], name: "index_users_on_email_address", unique: true end + add_foreign_key "modes", "users" add_foreign_key "moods", "users" add_foreign_key "rfid_tags", "users" add_foreign_key "sessions", "users" diff --git a/spec/factories/modes.rb b/spec/factories/modes.rb new file mode 100644 index 0000000..76d5eb6 --- /dev/null +++ b/spec/factories/modes.rb @@ -0,0 +1,8 @@ +FactoryBot.define do + factory :mode do + label { "MyString" } + slug { "MyString" } + color { "MyString" } + user { nil } + end +end diff --git a/spec/models/mode_spec.rb b/spec/models/mode_spec.rb new file mode 100644 index 0000000..b32c2dc --- /dev/null +++ b/spec/models/mode_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe Mode, type: :model do + pending "add some examples to (or delete) #{__FILE__}" +end