From 20ff7d17640f58e0b6dff047a7022340b9ca40f6 Mon Sep 17 00:00:00 2001 From: Trevor Vallender Date: Fri, 29 Dec 2023 12:16:30 +0000 Subject: [PATCH] Add diary entries --- app/models/diary_entry.rb | 11 ++++++++++ .../20231229114804_create_diary_entries.rb | 17 +++++++++++++++ db/schema.rb | 18 +++++++++++++++- test/fixtures/diary_entries.yml | 21 +++++++++++++++++++ test/models/diary_entry_test.rb | 4 ++++ 5 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 app/models/diary_entry.rb create mode 100644 db/migrate/20231229114804_create_diary_entries.rb create mode 100644 test/fixtures/diary_entries.yml create mode 100644 test/models/diary_entry_test.rb diff --git a/app/models/diary_entry.rb b/app/models/diary_entry.rb new file mode 100644 index 0000000..03eb3e4 --- /dev/null +++ b/app/models/diary_entry.rb @@ -0,0 +1,11 @@ +class DiaryEntry < ApplicationRecord + belongs_to :user + + validates :date, + :pain_level, + :energy_level, + :mental_alertness_level, + :work_stress_level, + :life_stress_level, + presence: true +end diff --git a/db/migrate/20231229114804_create_diary_entries.rb b/db/migrate/20231229114804_create_diary_entries.rb new file mode 100644 index 0000000..c74fd8b --- /dev/null +++ b/db/migrate/20231229114804_create_diary_entries.rb @@ -0,0 +1,17 @@ +class CreateDiaryEntries < ActiveRecord::Migration[7.1] + def change + create_table :diary_entries do |t| + t.text :notes, null: false, default: '' + t.date :date, null: false + t.references :user, null: false, foreign_key: true + t.integer :pain_level, null: false + t.integer :energy_level, null: false + t.integer :mental_alertness_level, null: false + t.integer :work_stress_level, null: false + t.integer :life_stress_level, null: false + t.integer :sleep_quality_level, null: false + + t.timestamps + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 3bb4496..bd3f7b7 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.1].define(version: 2023_12_29_114145) do +ActiveRecord::Schema[7.1].define(version: 2023_12_29_114804) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -63,6 +63,21 @@ ActiveRecord::Schema[7.1].define(version: 2023_12_29_114145) do t.index ["user_id"], name: "index_blog_posts_on_user_id" end + create_table "diary_entries", force: :cascade do |t| + t.text "notes", default: "", null: false + t.date "date", null: false + t.bigint "user_id", null: false + t.integer "pain_level", null: false + t.integer "energy_level", null: false + t.integer "mental_alertness_level", null: false + t.integer "work_stress_level", null: false + t.integer "life_stress_level", null: false + t.integer "sleep_quality_level", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["user_id"], name: "index_diary_entries_on_user_id" + end + create_table "exercise_types", force: :cascade do |t| t.text "name", null: false t.text "unit", null: false @@ -128,6 +143,7 @@ ActiveRecord::Schema[7.1].define(version: 2023_12_29_114145) do add_foreign_key "active_storage_attachments", "active_storage_blobs", column: "blob_id" add_foreign_key "active_storage_variant_records", "active_storage_blobs", column: "blob_id" add_foreign_key "blog_posts", "users" + add_foreign_key "diary_entries", "users" add_foreign_key "exercises", "exercise_types" add_foreign_key "microposts", "users" end diff --git a/test/fixtures/diary_entries.yml b/test/fixtures/diary_entries.yml new file mode 100644 index 0000000..9dd43f5 --- /dev/null +++ b/test/fixtures/diary_entries.yml @@ -0,0 +1,21 @@ +one: + user: tsvallender + date: 2023-12-29 + notes: Oh, what a day + exercise: one + pain_level: 10 + energy_level: 10 + mental_alertness_level: 10 + work_stress_level: 10 + life_stress_level: 10 + +two: + user: tsvallender + date: 2023-12-28 + notes: Wow + exercise: two + pain_level: 1 + energy_level: 1 + mental_alertness_level: 1 + work_stress_level: 1 + life_stress_level: 1 diff --git a/test/models/diary_entry_test.rb b/test/models/diary_entry_test.rb new file mode 100644 index 0000000..c3eeb16 --- /dev/null +++ b/test/models/diary_entry_test.rb @@ -0,0 +1,4 @@ +require "test_helper" + +class DiaryEntryTest < ActiveSupport::TestCase +end