import { request } from '../../lib/api' import type { RTask, RTaskList, RTaskQueue } from '../../lib/types' const NS = '/recruiting' const body = (v: unknown) => ({ body: JSON.stringify(v) }) export const taskApi = { queue: (assignee?: string, includeClosed?: boolean) => { const s = new URLSearchParams() if (assignee) s.set('assignee', assignee) if (includeClosed) s.set('include_closed', 'true') const qs = s.toString() return request(`${NS}/tasks/queue${qs ? `?${qs}` : ''}`) }, list: (p: { candidate_id?: string; requisition_id?: string; application_id?: string }) => { const s = new URLSearchParams() if (p.candidate_id) s.set('candidate_id', p.candidate_id) if (p.requisition_id) s.set('requisition_id', p.requisition_id) if (p.application_id) s.set('application_id', p.application_id) const qs = s.toString() return request(`${NS}/tasks${qs ? `?${qs}` : ''}`) }, create: (v: Record) => request(`${NS}/tasks`, { method: 'POST', ...body(v) }), // completed_at is absent by design: the database stamps it from the status, so reopening clears it. update: (id: string, v: Record) => request(`${NS}/tasks/${encodeURIComponent(id)}`, { method: 'PATCH', ...body(v) }), setTimeZone: (time_zone: string) => request<{ time_zone: string }>(`${NS}/time-zone`, { method: 'POST', ...body({ time_zone }) }), }