part of 'shift_details_bloc.dart';

@immutable
sealed class ShiftDetailsEvent {
  const ShiftDetailsEvent();
}

class ShiftDetailsInitialEvent extends ShiftDetailsEvent {
  final ShiftEntity shift;

  const ShiftDetailsInitialEvent({required this.shift});
}

class StaffGeofencingUpdate extends ShiftDetailsEvent {
  const StaffGeofencingUpdate({required this.isInRange});

  final bool isInRange;
}

class ShiftUpdateTimerEvent extends ShiftDetailsEvent {
  const ShiftUpdateTimerEvent();
}

class ShiftCompleteEvent extends ShiftDetailsEvent {
  const ShiftCompleteEvent();
}

class ShiftClockInEvent extends ShiftDetailsEvent {
  const ShiftClockInEvent();
}

class ShiftConfirmEvent extends ShiftDetailsEvent {
  const ShiftConfirmEvent();
}

class ShiftDeclineEvent extends ShiftDetailsEvent {
  final String? reason;
  final String? additionalReason;

  const ShiftDeclineEvent(this.reason, this.additionalReason);
}

class ShiftCancelEvent extends ShiftDetailsEvent {
  final String? reason;
  final String? additionalReason;

  const ShiftCancelEvent(this.reason, this.additionalReason);
}

class ShiftRefreshEvent extends ShiftDetailsEvent {
  final ShiftEntity shift;

  const ShiftRefreshEvent(this.shift);
}

class ShiftCheckGeocodingEvent extends ShiftDetailsEvent {
  const ShiftCheckGeocodingEvent();
}

class ShiftErrorWasShownEvent extends ShiftDetailsEvent {
  const ShiftErrorWasShownEvent();
}
