import 'package:equatable/equatable.dart';

/// The status of a [Hub].
enum HubStatus {
  /// Fully operational.
  active,

  /// Closed or inactive.
  inactive,

  /// Not yet ready for operations.
  underConstruction,
}

/// Represents a branch location or operational unit within a [Business].
class Hub extends Equatable {

  const Hub({
    required this.id,
    required this.businessId,
    required this.name,
    required this.address,
    this.nfcTagId,
    required this.status,
  });
  /// Unique identifier.
  final String id;

  /// The parent [Business].
  final String businessId;

  /// Display name of the hub (e.g. "Downtown Branch").
  final String name;

  /// Physical address of this hub.
  final String address;

  /// Unique identifier of the NFC tag assigned to this hub.
  final String? nfcTagId;

  /// Operational status.
  final HubStatus status;

  @override
  List<Object?> get props => <Object?>[id, businessId, name, address, nfcTagId, status];
}
