/** * Generated by orval v8.5.3 🍺 * Do not edit manually. * Api * CRA (Compte Rendu d'Activité) API * OpenAPI spec version: 0.1.0 */ export interface HealthStatus { status: string; } export interface Project { id: number; code: string; name: string; /** @nullable */ parentProjectId?: number | null; /** @nullable */ client?: string | null; /** @nullable */ category?: string | null; isActive: boolean; createdAt: string; } export interface CreateProjectBody { code: string; name: string; /** @nullable */ parentProjectId?: number | null; /** @nullable */ client?: string | null; /** @nullable */ category?: string | null; } export interface UpdateProjectBody { code?: string; name?: string; /** @nullable */ parentProjectId?: number | null; /** @nullable */ client?: string | null; /** @nullable */ category?: string | null; isActive?: boolean; } export type TimesheetStatus = (typeof TimesheetStatus)[keyof typeof TimesheetStatus]; export const TimesheetStatus = { draft: "draft", submitted: "submitted", validated: "validated", } as const; export interface Timesheet { id: number; year: number; month: number; status: TimesheetStatus; collaborator: string; totalHours: number; createdAt: string; updatedAt: string; } export interface CreateTimesheetBody { year: number; month: number; collaborator: string; } export type UpdateTimesheetBodyStatus = (typeof UpdateTimesheetBodyStatus)[keyof typeof UpdateTimesheetBodyStatus]; export const UpdateTimesheetBodyStatus = { draft: "draft", submitted: "submitted", validated: "validated", } as const; export interface UpdateTimesheetBody { status?: UpdateTimesheetBodyStatus; collaborator?: string; } export type TimesheetDetailStatus = (typeof TimesheetDetailStatus)[keyof typeof TimesheetDetailStatus]; export const TimesheetDetailStatus = { draft: "draft", submitted: "submitted", validated: "validated", } as const; export interface TimeEntry { id: number; timesheetLineId: number; date: string; hours: number; } export interface TimesheetLineWithEntries { id: number; timesheetId: number; projectId: number; projectCode: string; projectName: string; /** @nullable */ client?: string | null; /** @nullable */ category?: string | null; totalHours: number; entries: TimeEntry[]; } export interface TimesheetDetail { id: number; year: number; month: number; status: TimesheetDetailStatus; collaborator: string; totalHours: number; createdAt: string; updatedAt: string; lines: TimesheetLineWithEntries[]; } export interface TimesheetLine { id: number; timesheetId: number; projectId: number; projectCode: string; projectName: string; /** @nullable */ client?: string | null; /** @nullable */ category?: string | null; totalHours: number; } export interface CreateTimesheetLineBody { projectId: number; } export type UpsertTimeEntriesBodyEntriesItem = { timesheetLineId: number; date: string; hours: number; }; export interface UpsertTimeEntriesBody { entries: UpsertTimeEntriesBodyEntriesItem[]; } export interface DashboardSummary { totalHoursThisMonth: number; totalHoursThisYear: number; activeProjects: number; pendingTimesheets: number; validatedTimesheets: number; } export interface MonthlyHours { month: number; totalHours: number; label: string; } export interface ProjectHours { projectId: number; projectCode: string; projectName: string; totalHours: number; } export type ListTimesheetsParams = { year?: number; month?: number; }; export type GetDashboardSummaryParams = { year?: number; }; export type GetMonthlyHoursParams = { year?: number; }; export type GetProjectHoursParams = { year?: number; month?: number; };