import { OptionalNullable } from '@humand-packages/common';
import { DaySummaryScheduleSource } from '../types/scheduleSource';
import { ShiftAssignedDay } from './shiftManagement/shiftAssignedDay';
import { TimeSlot } from './timeTracking/scheduleData';
import { AssignedWorkSchedule, ScheduledDays } from './workSchedule';

export class TimeTrackingDaySummaryScheduleData {
    constructor(properties: OptionalNullable<TimeTrackingDaySummaryScheduleData>) {
        this.timeSlots = properties.timeSlots;
        this.schedule = properties.schedule;
        this.shiftAssignedDay = properties.shiftAssignedDay;
        this.scheduleDay = properties.scheduleDay;
        this.isWorkday = properties.isWorkday;
        this.scheduleSource = properties.scheduleSource;
    }

    isWorkday: boolean;
    schedule: AssignedWorkSchedule | undefined;
    scheduleSource: DaySummaryScheduleSource;
    shiftAssignedDay: ShiftAssignedDay | undefined;
    scheduleDay: ScheduledDays | undefined;
    timeSlots: TimeSlot[] | undefined;
}

export class TimeTrackingDaySummaryScheduleDataForShiftCalendar {
    constructor(properties: OptionalNullable<TimeTrackingDaySummaryScheduleDataForShiftCalendar>) {
        this.timeSlots = properties.timeSlots;
        this.shiftAssignedDayId = properties.shiftAssignedDayId;
        this.isWorkday = properties.isWorkday;
        this.scheduleSource = properties.scheduleSource;
    }

    isWorkday: boolean;
    scheduleSource: DaySummaryScheduleSource;
    shiftAssignedDayId: number | undefined;
    timeSlots: TimeSlot[] | undefined;
}
