part of 'event_details_bloc.dart';

@immutable
abstract class EventDetailsEvent {}

class EventDetailsInitialEvent extends EventDetailsEvent {

  EventDetailsInitialEvent();
}

class EventDetailsUpdateEvent extends EventDetailsEvent {
  final EventEntity event;

  EventDetailsUpdateEvent(this.event);
}

class OnShiftHeaderTapEvent extends EventDetailsEvent {
  final ShiftState shiftState;

  OnShiftHeaderTapEvent(this.shiftState);
}

class OnRoleHeaderTapEvent extends EventDetailsEvent {
  final PositionState roleState;

  OnRoleHeaderTapEvent(this.roleState);
}

class OnAssignedStaffHeaderTapEvent extends EventDetailsEvent {
  final PositionState roleState;

  OnAssignedStaffHeaderTapEvent(this.roleState);
}

class CompleteEventEvent extends EventDetailsEvent {
  final String? comment;

  CompleteEventEvent({this.comment});
}

class CancelClientEvent extends EventDetailsEvent {
  CancelClientEvent();
}

class CompleteClientEvent extends EventDetailsEvent {
  final String id;
  final String? comment;

  CompleteClientEvent(this.id, {this.comment});
}

class TrackClientClockin extends EventDetailsEvent {
  final StaffContact staffContact;

  TrackClientClockin(this.staffContact);
}

class TrackClientClockout extends EventDetailsEvent {
  final StaffContact staffContact;

  TrackClientClockout(this.staffContact);
}

class NotShowedPositionStaffEvent extends EventDetailsEvent {
  final String positionStaffId;

  NotShowedPositionStaffEvent(this.positionStaffId);
}

class ReplacePositionStaffEvent extends EventDetailsEvent {
  final String positionStaffId;
  final String reason;

  ReplacePositionStaffEvent(this.positionStaffId, this.reason);
}

class CreateEventPostEvent extends EventDetailsEvent {
  CreateEventPostEvent();
}

class DetailsDeleteDraftEvent extends EventDetailsEvent {
  DetailsDeleteDraftEvent();
}

class DetailsPublishEvent extends EventDetailsEvent {
  DetailsPublishEvent();
}

class GeofencingEvent extends EventDetailsEvent {
  final GeofencingDialogState dialogState;

  GeofencingEvent(this.dialogState);
}

class RefreshEventDetailsEvent extends EventDetailsEvent {
  RefreshEventDetailsEvent();
}

class DisablePollingEvent extends EventDetailsEvent {
  DisablePollingEvent();
}

class EnablePollingEvent extends EventDetailsEvent {
  EnablePollingEvent();
}
