47 lines
1.1 KiB
Dart
47 lines
1.1 KiB
Dart
import 'package:equatable/equatable.dart';
|
|
import '../models/attraction_model.dart';
|
|
|
|
abstract class AttractionsState extends Equatable {
|
|
const AttractionsState();
|
|
|
|
@override
|
|
List<Object?> get props => [];
|
|
}
|
|
|
|
class AttractionsInitial extends AttractionsState {}
|
|
|
|
class AttractionsLoading extends AttractionsState {}
|
|
|
|
class AttractionsLoaded extends AttractionsState {
|
|
final List<Attraction> attractions;
|
|
final List<Attraction> allAttractions; // Keep full list for local filtering
|
|
final List<Category> categories;
|
|
final int? selectedCategoryId;
|
|
final String searchQuery;
|
|
|
|
const AttractionsLoaded({
|
|
required this.attractions,
|
|
required this.allAttractions,
|
|
required this.categories,
|
|
this.selectedCategoryId,
|
|
this.searchQuery = '',
|
|
});
|
|
|
|
@override
|
|
List<Object?> get props => [
|
|
attractions,
|
|
allAttractions,
|
|
categories,
|
|
selectedCategoryId,
|
|
searchQuery,
|
|
];
|
|
}
|
|
|
|
class AttractionsError extends AttractionsState {
|
|
final String message;
|
|
|
|
const AttractionsError(this.message);
|
|
|
|
@override
|
|
List<Object?> get props => [message];
|
|
} |