part of 'provider_form_cubit.dart';

// Importa il tuo StoreModel se lo hai

enum ProviderFormStatus { initial, loading, success, failure }

class ProviderFormState extends Equatable {
  final ProviderFormStatus status;
  final ProviderModel provider;

  // Dati di supporto per l'interfaccia
  final List<dynamic>
  availableStores; // Metti List<StoreModel> se hai il modello
  final List<String> selectedStoreIds; // IDs dei negozi in cui è attivo
  final List<ProviderLocationModel>
  localLocations; // Sedi aggiunte prima del salvataggio
  final String? errorMessage;

  const ProviderFormState({
    this.status = ProviderFormStatus.initial,
    required this.provider,
    this.availableStores = const [],
    this.selectedStoreIds = const [],
    this.localLocations = const [],
    this.errorMessage,
  });

  ProviderFormState copyWith({
    ProviderFormStatus? status,
    ProviderModel? provider,
    List<dynamic>? availableStores,
    List<String>? selectedStoreIds,
    List<ProviderLocationModel>? localLocations,
    String? errorMessage,
  }) {
    return ProviderFormState(
      status: status ?? this.status,
      provider: provider ?? this.provider,
      availableStores: availableStores ?? this.availableStores,
      selectedStoreIds: selectedStoreIds ?? this.selectedStoreIds,
      localLocations: localLocations ?? this.localLocations,
      errorMessage: errorMessage ?? this.errorMessage,
    );
  }

  @override
  List<Object?> get props => [
    status,
    provider,
    availableStores,
    selectedStoreIds,
    localLocations,
    errorMessage,
  ];
}
