part of 'create_shift_details_bloc.dart';

@immutable
sealed class CreateShiftDetailsEvent {}

class CreateShiftInitializeEvent extends CreateShiftDetailsEvent {
  final ShiftEntity shift;

  CreateShiftInitializeEvent(this.shift);
}

class CreateShiftAddressSelectEvent extends CreateShiftDetailsEvent {
  final MapPlace? place;
  final FullAddress? address;

  CreateShiftAddressSelectEvent({this.place, this.address});
}

class CreateShiftAddressQueryChangedEvent extends CreateShiftDetailsEvent {
  final String query;

  CreateShiftAddressQueryChangedEvent(this.query);
}

class CreateShiftSelectContactEvent extends CreateShiftDetailsEvent {
  final BusinessMemberModel contact;

  CreateShiftSelectContactEvent(this.contact);
}

class CreateShiftRemoveContactEvent extends CreateShiftDetailsEvent {
  final BusinessMemberModel contact;

  CreateShiftRemoveContactEvent(this.contact);
}

class CreateEventAddRoleEvent extends CreateShiftDetailsEvent {
  CreateEventAddRoleEvent();
}

class DeleteRoleDeleteEvent extends CreateShiftDetailsEvent {
  final String id;

  DeleteRoleDeleteEvent(this.id);
}

class ExpandShiftEvent extends CreateShiftDetailsEvent {
  ExpandShiftEvent();
}

class ValidationFailedEvent extends CreateShiftDetailsEvent {
  final ShiftValidationState validationState;

  ValidationFailedEvent(this.validationState);
}
