export class PayPeriodOverviewDto {
	pay_period_no: number;
	pay_year: number;
	period_start: string;
	period_end: string;
	payday: string;
	label: string;
	employees_overview: EmployeePeriodOverviewDto[];
}

export class EmployeePeriodOverviewDto {
	email: string;
	employee_first_name: string;
	employee_last_name: string;
	supervisor?: {
		first_name: string;
		last_name: string;
		email: string;
	} | null;
	is_active: boolean;
	regular_hours: number;
	other_hours: {
		evening_hours: number;
		emergency_hours: number;
		overtime_hours: number;
		sick_hours: number;
		holiday_hours: number;
		vacation_hours: number;
	};
    weekly_hours: number[];
	total_hours: number;
	expenses: number;
	mileage: number;
	is_approved: boolean;
}

export class PayPeriodBundleDto {
	current: PayPeriodDto;
	periods: PayPeriodDto[];
}

export class PayPeriodDto {
	pay_period_no: number;
	period_start: string;
	period_end: string;
	payday: string;
	pay_year: number;
	label: string;
}

export type Overview = {
	period_start: string;
	period_end: string;
	payday: string;
	period_no: number;
	pay_year: number;
	label: string;
	options?: options;
}

export type options = {
	filtered_employee_ids?: number[];
	seed_names?: Map<number, { first_name: string, last_name: string, email: string }>
}