class StoreInfoState {
  final String? logoPath;
  final String storeName;
  final String activityType;
  final String province;
  final String city;
  final String address;
  final String plaque;
  final String postalCode;
  final bool isSubmitting;
  final bool isSuccess;
  final String? errorMessage;
  final double? latitude;
  final double? longitude;
  final String? contactPhone;
  final String? licenseNumber;
  final List<String> workingDays;
  final String? startTime;
  final String? endTime;
  final List<String> features;
  final String? activityTypeId;

  StoreInfoState({
    this.logoPath,
    this.storeName = '',
    this.activityType = '',
    this.province = '',
    this.city = '',
    this.address = '',
    this.plaque = '',
    this.postalCode = '',
    this.isSubmitting = false,
    this.isSuccess = false,
    this.errorMessage,
    this.latitude,
    this.longitude,
    this.contactPhone,
    this.licenseNumber,
    this.workingDays = const [],
    this.startTime,
    this.endTime,
    this.features = const [],
    this.activityTypeId,
  });

  StoreInfoState copyWith({
    String? logoPath,
    String? storeName,
    String? activityType,
    String? province,
    String? city,
    String? address,
    String? plaque,
    String? postalCode,
    bool? isSubmitting,
    bool? isSuccess,
    String? errorMessage,
    double? latitude,
    double? longitude,
    String? contactPhone,
    String? licenseNumber,
    List<String>? workingDays,
    String? startTime,
    String? endTime,
    List<String>? features,
    String? activityTypeId,
  }) {
    return StoreInfoState(
      logoPath: logoPath ?? this.logoPath,
      storeName: storeName ?? this.storeName,
      activityType: activityType ?? this.activityType,
      province: province ?? this.province,
      city: city ?? this.city,
      address: address ?? this.address,
      plaque: plaque ?? this.plaque,
      postalCode: postalCode ?? this.postalCode,
      isSubmitting: isSubmitting ?? this.isSubmitting,
      isSuccess: isSuccess ?? this.isSuccess,
      errorMessage: errorMessage ?? this.errorMessage,
      latitude: latitude ?? this.latitude,
      longitude: longitude ?? this.longitude,
      contactPhone: contactPhone ?? this.contactPhone,
      licenseNumber: licenseNumber ?? this.licenseNumber,
      workingDays: workingDays ?? this.workingDays,
      startTime: startTime ?? this.startTime,
      endTime: endTime ?? this.endTime,
      features: features ?? this.features,
      activityTypeId: activityTypeId ?? this.activityTypeId,
    );
  }

  List<Object?> get props => [
        logoPath,
        storeName,
        activityType,
        province,
        city,
        address,
        plaque,
        postalCode,
        isSubmitting,
        isSuccess,
        errorMessage,
        latitude,
        longitude,
        contactPhone,
        licenseNumber,
        workingDays,
        startTime,
        endTime,
        features,
      ];
}