targo-backend/src/modules/timesheets/dtos/timesheet-period.dto.ts

70 lines
1.5 KiB
TypeScript

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;
}