import type { Project, ProjectWrite } from './dto/project' import type { HydraCollection } from '~/utils/api' import { extractHydraMembers } from '~/utils/api' export function useProjectService() { const api = useApi() async function getAll(params?: { archived?: boolean }): Promise { const query = params?.archived !== undefined ? `?archived=${params.archived}` : '' const data = await api.get>(`/projects${query}`) return extractHydraMembers(data) } async function getById(id: number): Promise { return api.get(`/projects/${id}`) } async function create(payload: ProjectWrite): Promise { return api.post('/projects', payload as Record, { toastSuccessKey: 'projects.created', }) } async function update(id: number, payload: Partial, options?: { toastSuccessKey?: string }): Promise { return api.patch(`/projects/${id}`, payload as Record, { toastSuccessKey: options?.toastSuccessKey ?? 'projects.updated', }) } async function remove(id: number): Promise { await api.delete(`/projects/${id}`, {}, { toastSuccessKey: 'projects.deleted', }) } return { getAll, getById, create, update, remove } }