import 'package:equatable/equatable.dart'; import 'package:city_repository/city_repository.dart'; class Region extends Equatable { final String name; final List cities; const Region({ required this.name, required this.cities, }); static const empty = Region(name: '', cities: []); Region copyWith({ String? name, List? cities, }) { return Region( name: name ?? this.name, cities: cities ?? this.cities, ); } bool get isEmpty => this == Region.empty; bool get isNotEmpty => this != Region.empty; Region toEntity() { return Region(name: name, cities: cities); } static Region fromEntity(RegionEntity entity) { return Region( name: entity.name, cities: entity.cities.map((city) => City.fromEntity(city)).toList(), ); } @override List get props => [name, cities]; }