import { apiFetch } from "@/lib/auth/api-client"; import { AssignColonyInput, CreateQueenEvaluationInput, UpdateQueenEvaluationInput, CreateQueenInput, Queen, QueenColonyHistoryEntry, QueenEvaluation, QueenLineage, QueenStatus, UpdateQueenInput, } from "./types"; export interface QueenFilter { status?: QueenStatus; } export function fetchQueens(filter: QueenFilter = {}): Promise { const params = new URLSearchParams(); if (filter.status) params.set("status", filter.status); const query = params.toString(); return apiFetch(`/queens${query ? `?${query}` : ""}`); } export function fetchQueen(id: string): Promise { return apiFetch(`/queens/${id}`); } export function fetchQueenHistory(id: string): Promise { return apiFetch(`/queens/${id}/history`); } export function fetchQueenLineage(id: string): Promise { return apiFetch(`/queens/${id}/lineage`); } export function createQueen(input: CreateQueenInput): Promise { return apiFetch("/queens", { method: "POST", body: JSON.stringify(input), }); } export function updateQueen(id: string, input: UpdateQueenInput): Promise { return apiFetch(`/queens/${id}`, { method: "PATCH", body: JSON.stringify(input), }); } export function assignQueenColony(id: string, input: AssignColonyInput): Promise { return apiFetch(`/queens/${id}/assign-colony`, { method: "POST", body: JSON.stringify(input), }); } export function fetchQueenEvaluations(id: string): Promise { return apiFetch(`/queens/${id}/evaluations`); } export function updateQueenEvaluation( evaluationId: string, input: UpdateQueenEvaluationInput, ): Promise { return apiFetch(`/queens/evaluations/${evaluationId}`, { method: "PATCH", body: JSON.stringify(input), }); } export function addQueenEvaluation( id: string, input: CreateQueenEvaluationInput, ): Promise { return apiFetch(`/queens/${id}/evaluations`, { method: "POST", body: JSON.stringify(input), }); }