add game tracker with owned pokemon data and call of duty mastery
All checks were successful
Test and deploy staging / staging (push) Successful in 18s
All checks were successful
Test and deploy staging / staging (push) Successful in 18s
Fold catchemall into /projects/game-tracker (old URL redirects) and add Call of Duty tracking for Black Ops through WWII. - Pokémon catalog is now owned: locations, encounters and per-game evolution methods are built from the pinned PokéAPI snapshot and seeded. - Pokémon you can evolve or breed in a game count as obtainable; mythicals without another route are marked event-only. - Detail dialog with evolution chain and where to find it, location pages with admin notes and pictures, and admin corrections that survive reseeds. - Call of Duty weapons, milestones and Steam achievements per game, with derived Diamond / Dark Matter / Solar / Black Sky / Chrome tiers. - New migration (db:migrate:game-tracker), seeds (db:seed, db:seed:cod) and deploy preflight checks for them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -46,7 +46,25 @@ export const relations = defineRelations(schema, (r) => ({
|
||||
entries: r.many.pokemonGameEntries()
|
||||
},
|
||||
pokemon: {
|
||||
entry: r.many.pokemonGameEntries()
|
||||
entry: r.many.pokemonGameEntries(),
|
||||
encounters: r.many.pokemonEncounters()
|
||||
},
|
||||
pokemonLocations: {
|
||||
encounters: r.many.pokemonEncounters()
|
||||
},
|
||||
pokemonEncounters: {
|
||||
pokemon: r.one.pokemon({
|
||||
from: r.pokemonEncounters.pokemonId,
|
||||
to: r.pokemon.id
|
||||
}),
|
||||
game: r.one.games({
|
||||
from: r.pokemonEncounters.gameId,
|
||||
to: r.games.id
|
||||
}),
|
||||
location: r.one.pokemonLocations({
|
||||
from: r.pokemonEncounters.locationId,
|
||||
to: r.pokemonLocations.id
|
||||
})
|
||||
},
|
||||
pokemonGameEntries: {
|
||||
game: r.one.games({
|
||||
@@ -80,6 +98,28 @@ export const relations = defineRelations(schema, (r) => ({
|
||||
})
|
||||
},
|
||||
|
||||
// ── Game tracker ──────────────────────────────
|
||||
trackerGames: {
|
||||
items: r.many.trackerItems()
|
||||
},
|
||||
trackerItems: {
|
||||
game: r.one.trackerGames({
|
||||
from: r.trackerItems.gameId,
|
||||
to: r.trackerGames.id
|
||||
}),
|
||||
progress: r.many.trackerProgress()
|
||||
},
|
||||
trackerProgress: {
|
||||
item: r.one.trackerItems({
|
||||
from: r.trackerProgress.itemId,
|
||||
to: r.trackerItems.id
|
||||
}),
|
||||
user: r.one.user({
|
||||
from: r.trackerProgress.userId,
|
||||
to: r.user.id
|
||||
})
|
||||
},
|
||||
|
||||
// ── Animaldex ─────────────────────────────────
|
||||
animals: {
|
||||
sightings: r.many.sightings()
|
||||
|
||||
Reference in New Issue
Block a user