import { ShiftAssignedShiftStatus } from '../../types/shiftManagement/assignedShiftStatus';
import { ShiftAssignedShiftType } from '../../types/shiftManagement/assignedShiftType';
import { ShiftAssignedShiftSource } from '../../types/shiftManagement/source';
import { Shift } from './shift';
import { ShiftAssignedDay } from './shiftAssignedDay';
import { ShiftAssignedTimeSlotForCreation } from './shiftAssignedTimeSlot';

export class RawShiftAssignedShiftForCreation {
    instanceId!: number;
    source!: ShiftAssignedShiftSource;
    shiftCode?: string | null;
    shiftVersion?: number | null;
    shiftRotationId?: string | null;
    shiftRotationDayPosition?: number | null;
    timeSlots?: ShiftAssignedTimeSlotForCreation[];
    shift?: Shift;
    status!: ShiftAssignedShiftStatus;
    type!: ShiftAssignedShiftType;
}

export class ShiftAssignedShiftForCreation extends RawShiftAssignedShiftForCreation {
    assignedDayId!: number;
}

export class ShiftAssignedShift extends ShiftAssignedShiftForCreation {
    id!: number;
    shiftAssignedDay?: ShiftAssignedDay;
}
