import { BaseRepositoryPort } from '@humand-packages/common';
import { GridFilterRequest } from '../../../business/interfaces/shiftManagement/gridFiltersInterface';
import { ShiftAssignedShift, ShiftAssignedShiftForCreation } from '../../../business/models/shiftManagement/shiftAssignedShift';

export default abstract class ShiftAssignmentRepositoryPort extends BaseRepositoryPort {
    abstract bulkCreateShiftAssignedShifts(shiftAssignedShifts: ShiftAssignedShiftForCreation[]): Promise<ShiftAssignedShift[]>;
    abstract deleteAssignedShift(assignedShiftId: number, instanceId: number): Promise<number>;
    abstract bulkDeleteShiftAssignedShifts(instanceId: number, filters: GridFilterRequest): Promise<void>;
    abstract bulkUpdateShiftAssignedShiftsAssignedDay(
        instanceId: number,
        updates: Array<{ shiftAssignedShiftId: number; newAssignedDayId: number }>,
    ): Promise<void>;
}
