Add frontend API client and TanStack Query hooks
Install @tanstack/react-query, create a fetch-based API client with typed functions for all endpoints, and add query/mutation hooks for games, pokemon, runs, and encounters. Includes Vite dev proxy for /api and QueryClientProvider setup. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -29,6 +29,8 @@ export interface RouteEncounter {
|
||||
pokemonId: number
|
||||
encounterMethod: string
|
||||
encounterRate: number
|
||||
minLevel: number
|
||||
maxLevel: number
|
||||
}
|
||||
|
||||
export type EncounterStatus = 'caught' | 'fainted' | 'missed'
|
||||
@@ -57,6 +59,42 @@ export interface NuzlockeRun {
|
||||
completedAt: string | null
|
||||
}
|
||||
|
||||
export interface RunDetail extends NuzlockeRun {
|
||||
game: Game
|
||||
encounters: EncounterDetail[]
|
||||
}
|
||||
|
||||
export interface EncounterDetail extends Encounter {
|
||||
pokemon: Pokemon
|
||||
route: Route
|
||||
}
|
||||
|
||||
export interface CreateRunInput {
|
||||
gameId: number
|
||||
name: string
|
||||
rules?: NuzlockeRules
|
||||
}
|
||||
|
||||
export interface UpdateRunInput {
|
||||
name?: string
|
||||
status?: RunStatus
|
||||
rules?: NuzlockeRules
|
||||
}
|
||||
|
||||
export interface CreateEncounterInput {
|
||||
routeId: number
|
||||
pokemonId: number
|
||||
nickname?: string
|
||||
status: EncounterStatus
|
||||
catchLevel?: number
|
||||
}
|
||||
|
||||
export interface UpdateEncounterInput {
|
||||
nickname?: string
|
||||
status?: EncounterStatus
|
||||
faintLevel?: number
|
||||
}
|
||||
|
||||
// Re-export for convenience
|
||||
import type { NuzlockeRules } from './rules'
|
||||
export type { NuzlockeRules }
|
||||
|
||||
Reference in New Issue
Block a user