import 'package:equatable/equatable.dart';

/// Represents a specific job opening within a [EventShift].
///
/// Defines the requirement for a specific [Skill], the quantity needed, and the pay.
class EventShiftPosition extends Equatable {

  const EventShiftPosition({
    required this.id,
    required this.shiftId,
    required this.skillId,
    required this.count,
    required this.rate,
    required this.startTime,
    required this.endTime,
    required this.breakDurationMinutes,
  });
  /// Unique identifier.
  final String id;

  /// The [EventShift] this position is part of.
  final String shiftId;

  /// The [Skill] required for this position.
  final String skillId;

  /// Number of staff needed.
  final int count;

  /// Hourly pay rate.
  final double rate;

  /// Start time of this specific position.
  final DateTime startTime;

  /// End time of this specific position.
  final DateTime endTime;

  /// Deducted break duration in minutes.
  final int breakDurationMinutes;

  @override
  List<Object?> get props => <Object?>[
        id,
        shiftId,
        skillId,
        count,
        rate,
        startTime,
        endTime,
        breakDurationMinutes,
      ];
}