import 'package:krow_core/core.dart';

/// Represents the arguments required for the CreateHubUseCase.
///
/// Encapsulates the name and address of the hub to be created.
class CreateHubArguments extends UseCaseArgument {
  /// The name of the hub.
  final String name;

  /// The physical address of the hub.
  final String address;

  final String? placeId;
  final double? latitude;
  final double? longitude;
  final String? city;
  final String? state;
  final String? street;
  final String? country;
  final String? zipCode;

  /// Creates a [CreateHubArguments] instance.
  ///
  /// Both [name] and [address] are required.
  const CreateHubArguments({
    required this.name,
    required this.address,
    this.placeId,
    this.latitude,
    this.longitude,
    this.city,
    this.state,
    this.street,
    this.country,
    this.zipCode,
  });

  @override
  List<Object?> get props => <Object?>[
    name,
    address,
    placeId,
    latitude,
    longitude,
    city,
    state,
    street,
    country,
    zipCode,
  ];
}
