import 'package:equatable/equatable.dart'; import 'geo_point.dart'; /// مكان من map-saas. حقول الاسم `name`/`name_ar`/`address` — **لا /// `formattedAddress`** (عقد مثبت بـcurl، راجع قرار الخرائط 2026-07-20). class Place extends Equatable { const Place({ required this.id, required this.name, required this.point, this.address = '', this.category = '', }); final String id; final String name; final GeoPoint point; final String address; final String category; factory Place.fromJson(Map json) { return Place( id: json['id']?.toString() ?? '', // العربي أولاً — الواجهة عربية افتراضاً، والإنجليزي احتياط. name: (json['name_ar'] as String?)?.trim().isNotEmpty == true ? json['name_ar'] as String : (json['name'] as String? ?? ''), address: json['address'] as String? ?? '', category: json['category'] as String? ?? '', point: GeoPoint( (json['latitude'] as num).toDouble(), (json['longitude'] as num).toDouble(), ), ); } /// ما يُعرض في حقل العنوان: الاسم، وإن غاب فالعنوان. String get label => name.isNotEmpty ? name : address; @override List get props => [id, name, point, address]; }