2026-02-05 15:09:14 +01:00
|
|
|
import { api } from './client'
|
|
|
|
|
import type {
|
2026-02-05 19:26:49 +01:00
|
|
|
EncounterDetail,
|
2026-02-05 15:09:14 +01:00
|
|
|
CreateEncounterInput,
|
|
|
|
|
UpdateEncounterInput,
|
2026-02-05 19:26:49 +01:00
|
|
|
Evolution,
|
2026-02-08 12:55:11 +01:00
|
|
|
Pokemon,
|
2026-02-05 15:09:14 +01:00
|
|
|
} from '../types/game'
|
|
|
|
|
|
|
|
|
|
export function createEncounter(
|
|
|
|
|
runId: number,
|
2026-02-14 16:41:24 +01:00
|
|
|
data: CreateEncounterInput
|
2026-02-05 19:26:49 +01:00
|
|
|
): Promise<EncounterDetail> {
|
2026-02-05 15:09:14 +01:00
|
|
|
return api.post(`/runs/${runId}/encounters`, data)
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-16 20:39:41 +01:00
|
|
|
export function updateEncounter(id: number, data: UpdateEncounterInput): Promise<EncounterDetail> {
|
2026-02-05 15:09:14 +01:00
|
|
|
return api.patch(`/encounters/${id}`, data)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function deleteEncounter(id: number): Promise<void> {
|
|
|
|
|
return api.del(`/encounters/${id}`)
|
|
|
|
|
}
|
2026-02-05 19:26:49 +01:00
|
|
|
|
2026-02-16 20:39:41 +01:00
|
|
|
export function fetchEvolutions(pokemonId: number, region?: string): Promise<Evolution[]> {
|
2026-02-07 20:05:07 +01:00
|
|
|
const params = region ? `?region=${encodeURIComponent(region)}` : ''
|
|
|
|
|
return api.get(`/pokemon/${pokemonId}/evolutions${params}`)
|
2026-02-05 19:26:49 +01:00
|
|
|
}
|
2026-02-08 12:55:11 +01:00
|
|
|
|
|
|
|
|
export function fetchForms(pokemonId: number): Promise<Pokemon[]> {
|
|
|
|
|
return api.get(`/pokemon/${pokemonId}/forms`)
|
|
|
|
|
}
|
2026-02-08 13:14:43 +01:00
|
|
|
|
2026-02-14 16:41:24 +01:00
|
|
|
export function bulkRandomizeEncounters(
|
|
|
|
|
runId: number
|
|
|
|
|
): Promise<{ created: unknown[]; skippedRoutes: number }> {
|
2026-02-08 13:14:43 +01:00
|
|
|
return api.post(`/runs/${runId}/encounters/bulk-randomize`, {})
|
|
|
|
|
}
|