import { api } from './client'; import type { User, Character, Monster, CombatResult, CombatLog, CharacterItem, CharacterMaterial, Recipe, CraftJob, Item, } from './types'; // Auth export const authApi = { setSession: (token: string, refreshToken?: string) => api.post('/auth/session', { token, refreshToken }), me: () => api.get('/auth/me'), logout: () => api.post('/auth/logout'), }; // Character export const characterApi = { create: (name: string, stats: Record) => api.post('/characters', { name, ...stats }), me: () => api.get('/characters/me'), }; // Combat export const combatApi = { monsters: () => api.get('/monsters'), start: (monsterId: string, attackType: string) => api.post('/combat/start', { monsterId, attackType }), history: () => api.get('/combat/history'), }; // Items export const itemApi = { catalogue: () => api.get('/items'), inventory: () => api.get('/items/inventory'), equip: (id: string) => api.post(`/items/equip/${id}`), unequip: (slot: 'weapon' | 'armor') => api.post(`/items/unequip/${slot}`), }; // Materials export const materialApi = { inventory: () => api.get('/materials/inventory'), }; // Craft export const craftApi = { recipes: () => api.get('/craft/recipes'), start: (recipeId: string) => api.post('/craft/start', { recipeId }), active: () => api.get('/craft/active'), collect: (jobId: string) => api.post(`/craft/collect/${jobId}`), }; // Forge export const forgeApi = { upgrade: (characterItemId: string) => api.post<{ success: boolean; newForgeLevel: number; item: CharacterItem }>('/forge/upgrade', { characterItemId }), };