import { createActionGroup, emptyProps, props } from '@ngrx/store';
import { PaginationMeta } from '../../../models/api.model';
import { HrShift, CreateHrShift, UpdateHrShift } from '../../../models/hr-shift.model';

export const HrShiftsActions = createActionGroup({
  source: 'HR Shifts',
  events: {
    'Load HR Shifts': props<{
      page?: number;
      perPage?: number;
      forceReload?: boolean;
    }>(),
    'Load HR Shifts Success': props<{ shifts: HrShift[]; meta: PaginationMeta }>(),
    'Load HR Shifts Failure': props<{ error: string }>(),
    'Create HR Shift': props<{ shift: CreateHrShift }>(),
    'Create HR Shift Success': props<{ shift: HrShift }>(),
    'Create HR Shift Failure': props<{ error: string }>(),
    'Update HR Shift': props<{ id: number; shift: UpdateHrShift }>(),
    'Update HR Shift Success': props<{ shift: HrShift }>(),
    'Update HR Shift Failure': props<{ error: string }>(),
    'Delete HR Shift': props<{ id: number }>(),
    'Delete HR Shift Success': props<{ id: number }>(),
    'Delete HR Shift Failure': props<{ error: string }>(),
    'Clear HR Shifts Error': emptyProps(),
  },
});
