summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Gay <david@davidgay.org>2023-11-02 21:27:28 -0400
committerDavid Gay <david@davidgay.org>2023-11-02 21:27:28 -0400
commit86f9bb8a2c3a8f011ac4b9c8d726e34607ed47c1 (patch)
tree592eb82c117187a18b3de1226e2e4975e34b0f21
parent9940b4b90233f434478721c91d0c48d6c87eb619 (diff)
PokedexEntry model
-rw-r--r--app/models/pokedex_entry.rb7
-rw-r--r--app/models/pokemon.rb2
-rw-r--r--app/models/run.rb1
-rw-r--r--app/models/user.rb3
-rw-r--r--db/migrate/20231103011455_create_pokedex_entries.rb13
-rw-r--r--test/fixtures/pokedex_entries.yml15
-rw-r--r--test/models/pokedex_entry_test.rb7
7 files changed, 47 insertions, 1 deletions
diff --git a/app/models/pokedex_entry.rb b/app/models/pokedex_entry.rb
new file mode 100644
index 0000000..21924ce
--- /dev/null
+++ b/app/models/pokedex_entry.rb
@@ -0,0 +1,7 @@
+class PokedexEntry < ApplicationRecord
+ belongs_to :user
+ belongs_to :run
+ belongs_to :pokemon
+
+ validates :recorded_at, presence: true
+end
diff --git a/app/models/pokemon.rb b/app/models/pokemon.rb
index 7543f64..293281a 100644
--- a/app/models/pokemon.rb
+++ b/app/models/pokemon.rb
@@ -1,3 +1,5 @@
class Pokemon < ApplicationRecord
+ has_many :pokedex_entries, dependent: :restrict_with_error
+
validates :pokedex_num, :name, presence: true
end
diff --git a/app/models/run.rb b/app/models/run.rb
index a763654..472e8c7 100644
--- a/app/models/run.rb
+++ b/app/models/run.rb
@@ -2,6 +2,7 @@ class Run < ApplicationRecord
belongs_to :game
belongs_to :user
has_many :checkpoints, dependent: :destroy
+ has_many :pokedex_entries, dependent: :destroy
validates :title, presence: true
diff --git a/app/models/user.rb b/app/models/user.rb
index 27ff9b2..ed3f425 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -3,6 +3,7 @@ class User < ApplicationRecord
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :rememberable
- has_many :runs, dependent: :restrict_with_error
has_many :checkpoints, through: :runs
+ has_many :pokedex_entries, dependent: :destroy
+ has_many :runs, dependent: :restrict_with_error
end
diff --git a/db/migrate/20231103011455_create_pokedex_entries.rb b/db/migrate/20231103011455_create_pokedex_entries.rb
new file mode 100644
index 0000000..04232b1
--- /dev/null
+++ b/db/migrate/20231103011455_create_pokedex_entries.rb
@@ -0,0 +1,13 @@
+class CreatePokedexEntries < ActiveRecord::Migration[7.1]
+ def change
+ create_table :pokedex_entries do |t|
+ t.references :user, null: false, foreign_key: true
+ t.references :run, null: false, foreign_key: true
+ t.references :pokemon, null: false, foreign_key: true
+ t.timestamp :recorded_at, null: false
+ t.timestamp :recorded_shiny_at
+
+ t.timestamps
+ end
+ end
+end
diff --git a/test/fixtures/pokedex_entries.yml b/test/fixtures/pokedex_entries.yml
new file mode 100644
index 0000000..602f9d9
--- /dev/null
+++ b/test/fixtures/pokedex_entries.yml
@@ -0,0 +1,15 @@
+# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
+
+one:
+ user: one
+ run: one
+ pokemon: one
+ recorded_at: 2023-11-02 21:14:55
+ recorded_shiny_at: 2023-11-02 21:14:55
+
+two:
+ user: two
+ run: two
+ pokemon: two
+ recorded_at: 2023-11-02 21:14:55
+ recorded_shiny_at: 2023-11-02 21:14:55
diff --git a/test/models/pokedex_entry_test.rb b/test/models/pokedex_entry_test.rb
new file mode 100644
index 0000000..5a660d7
--- /dev/null
+++ b/test/models/pokedex_entry_test.rb
@@ -0,0 +1,7 @@
+require "test_helper"
+
+class PokedexEntryTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end