import 'package:equatable/equatable.dart';

abstract class ClockInEvent extends Equatable {
  const ClockInEvent();

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

class ClockInPageLoaded extends ClockInEvent {}

class DateSelected extends ClockInEvent {
  final DateTime date;

  const DateSelected(this.date);

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

class CheckInRequested extends ClockInEvent {
  final String shiftId;
  final String? notes;

  const CheckInRequested({required this.shiftId, this.notes});

  @override
  List<Object?> get props => [shiftId, notes];
}

class CheckOutRequested extends ClockInEvent {
  final String? notes;
  final int? breakTimeMinutes;

  const CheckOutRequested({this.notes, this.breakTimeMinutes});

  @override
  List<Object?> get props => [notes, breakTimeMinutes];
}

class CheckInModeChanged extends ClockInEvent {
  final String mode;

  const CheckInModeChanged(this.mode);

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