export class ShiftDto { date: string; type: string; start_time: string; end_time : string; comment: string; is_approved: boolean; is_remote: boolean; } export class ExpenseDto { type: string; amount: number; mileage: number; comment: string; total_mileage: number; total_expense: number; is_approved: boolean; supervisor_comment: string; } export type DayShiftsDto = ShiftDto[]; export class DetailedShifts { shifts: DayShiftsDto; regular_hours: number; evening_hours: number; overtime_hours: number; emergency_hours: number; comment: string; short_date: string; break_durations?: number; } export class DayExpensesDto { expense: ExpenseDto[] = []; mileage: ExpenseDto[] = []; per_diem: ExpenseDto[] = []; on_call: ExpenseDto[] = []; } export class WeekDto { is_approved: boolean; shifts: { sun: DetailedShifts; mon: DetailedShifts; tue: DetailedShifts; wed: DetailedShifts; thu: DetailedShifts; fri: DetailedShifts; sat: DetailedShifts; } expenses: { sun: DayExpensesDto; mon: DayExpensesDto; tue: DayExpensesDto; wed: DayExpensesDto; thu: DayExpensesDto; fri: DayExpensesDto; sat: DayExpensesDto; } } export class TimesheetPeriodDto { weeks: WeekDto[]; employee_full_name: string; }