import type { Employee } from './employee' import type { ContractType, TrackingMode } from './contract' export type WorkHour = { id: number employee: Employee workDate: string morningFrom?: string | null morningTo?: string | null afternoonFrom?: string | null afternoonTo?: string | null eveningFrom?: string | null eveningTo?: string | null isPresentMorning?: boolean isPresentAfternoon?: boolean dayHoursMinutes?: number | null nightHoursMinutes?: number | null workshopHoursMinutes?: number | null hasBreakfast?: boolean hasLunch?: boolean hasDinner?: boolean hasOvernight?: boolean isSiteValid?: boolean isValid?: boolean updatedAt?: string | null } export type WorkHourEntryPayload = { employeeId: number morningFrom?: string | null morningTo?: string | null afternoonFrom?: string | null afternoonTo?: string | null eveningFrom?: string | null eveningTo?: string | null isPresentMorning?: boolean isPresentAfternoon?: boolean dayHoursMinutes?: number | null nightHoursMinutes?: number | null workshopHoursMinutes?: number | null hasBreakfast?: boolean hasLunch?: boolean hasDinner?: boolean hasOvernight?: boolean } export type WeeklyWorkHourDailySummary = { date: string dayMinutes: number nightMinutes: number workshopMinutes?: number totalMinutes: number present?: number | null hasAbsence?: boolean absenceLabel?: string | null absenceColor?: string | null hasNightBasket?: boolean hasBreakfast?: boolean hasLunch?: boolean hasDinner?: boolean hasOvernight?: boolean } export type WeeklyWorkHourRowSummary = { employeeId: number firstName: string lastName: string siteName?: string | null contractName?: string | null contractType?: ContractType | null trackingMode?: TrackingMode | null daily: WeeklyWorkHourDailySummary[] weeklyDayMinutes: number weeklyNightMinutes: number weeklyWorkshopMinutes?: number weeklyTotalMinutes: number weeklyPresenceCount?: number weeklyOvertimeTotalMinutes?: number weeklyOvertime25Minutes?: number weeklyOvertime50Minutes?: number weeklyRecoveryMinutes?: number weeklyNightBasketCount?: number isDriver?: boolean weeklyBreakfastCount?: number weeklyLunchCount?: number weeklyDinnerCount?: number weeklyOvernightCount?: number hasContractForWeek?: boolean } export type WeeklyWorkHourSummary = { weekStart: string weekEnd: string days: string[] rows: WeeklyWorkHourRowSummary[] } export type WorkHourDayContextRow = { employeeId: number hasContractAtDate: boolean absenceLabel?: string | null absenceColor?: string | null absenceHalf?: 'AM' | 'PM' | null absentMorning: boolean absentAfternoon: boolean creditedMinutes: number creditedPresenceUnits: number isDriverContract?: boolean hasFormation?: boolean formationLabel?: string | null } export type WorkHourDayContext = { workDate: string rows: WorkHourDayContextRow[] } export type DriverHourRow = { workHourId: number | null dayHours: string nightHours: string workshopHours: string hasBreakfast: boolean hasLunch: boolean hasDinner: boolean hasOvernight: boolean isSiteValid: boolean isValid: boolean updatedAt: string | null }