import type { WorkHourDayContext, WorkHour, WorkHourEntryPayload, WeeklyWorkHourSummary } from './dto/work-hour' import { extractItems } from '~/utils/api' export const listWorkHoursByDate = async (workDate: string) => { const api = useApi() const data = await api.get( '/work_hours', { 'workDate[after]': workDate, 'workDate[before]': workDate }, { toast: false } ) return extractItems(data) } export const bulkUpsertWorkHours = async (payload: { workDate: string entries: WorkHourEntryPayload[] }) => { const api = useApi() return api.post<{ processed: number created: number updated: number deleted: number }>( '/work-hours/bulk-upsert', payload, { toastSuccessMessage: 'Horaires enregistrés.', toastErrorMessage: "Impossible d'enregistrer les horaires." } ) } export const updateWorkHourValidation = async ( id: number, isValid: boolean, options?: { toast?: boolean } ) => { const api = useApi() return api.patch( `/work_hours/${id}`, { isValid }, { toast: options?.toast ?? true, toastSuccessMessage: isValid ? 'Ligne validée.' : 'Validation retirée.', toastErrorMessage: 'Impossible de mettre à jour la validation.' } ) } export const getWeeklyWorkHourSummary = async (weekStart: string) => { const api = useApi() return api.get( '/work-hours/weekly-summary', { weekStart }, { toast: false } ) } export const getWorkHourDayContext = async (workDate: string) => { const api = useApi() return api.get( '/work-hours/day-context', { workDate }, { toast: false } ) }