import 'package:equatable/equatable.dart';
import 'package:krow/features/shifts/domain/blocs/complete_dialog/shift_complete_dialog_state.dart';

abstract class CompleteDialogEvent extends Equatable {
  @override
  List<Object?> get props => [];
}

class InitializeCompleteDialog extends CompleteDialogEvent {
  final DateTime? minLimit;
  final int breakDurationInMinutes;

  InitializeCompleteDialog(
      {this.minLimit, required this.breakDurationInMinutes});

  @override
  List<Object?> get props => [minLimit];
}

class SelectBreakStatus extends CompleteDialogEvent {
  final BreakStatus status;

  SelectBreakStatus(this.status);

  @override
  List<Object?> get props => [status];
}

class SelectReason extends CompleteDialogEvent {
  final String reason;

  SelectReason(this.reason);

  @override
  List<Object?> get props => [reason];
}

class ChangeStartTime extends CompleteDialogEvent {
  final DateTime startTime;

  ChangeStartTime(this.startTime);

  @override
  List<Object?> get props => [startTime];
}

class ChangeEndTime extends CompleteDialogEvent {
  final DateTime endTime;

  ChangeEndTime(this.endTime);

  @override
  List<Object?> get props => [endTime];
}

class ChangeAdditionalReason extends CompleteDialogEvent {
  final String additionalReason;

  ChangeAdditionalReason(this.additionalReason);

  @override
  List<Object?> get props => [additionalReason];
}
