استكمال قرار 2026-07-27 (كوميت fff76c9 أرشف الباك إند):
apps/rider → apps/rider-archive-cubit
apps/driver → apps/driver-archive-cubit
dashboards/admin-web → dashboards/admin-web-archive
dashboards/service-web → dashboards/service-web-archive
إعادة تسمية بلا تعديل محتوى. rider/driver كانا إعادة بناء Cubit مبنية على
عقد NestJS المؤرشف. admin-web و service-web نموذجان بملف HTML واحد (164 و
128 سطراً) — يحلّ محلهما siro_admin و siro_service المكتملان.
يُحمل من المؤرشف ولا يُعاد اكتشافه: عقد map-saas المثبَّت بالتجربة في
apps/rider-archive-cubit/lib/core/api/ (x-api-key ترويسة، reverse مصفوفة،
route في points) ودرس مسار FCM.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
34 lines
816 B
Dart
34 lines
816 B
Dart
import 'package:equatable/equatable.dart';
|
|
|
|
/// نقطة توقف أثناء الرحلة.
|
|
class StopModel extends Equatable {
|
|
final double lat;
|
|
final double lng;
|
|
final String? label;
|
|
final String? address;
|
|
|
|
const StopModel({
|
|
required this.lat,
|
|
required this.lng,
|
|
this.label,
|
|
this.address,
|
|
});
|
|
|
|
factory StopModel.fromJson(Map<String, dynamic> j) => StopModel(
|
|
lat: (j['lat'] as num).toDouble(),
|
|
lng: (j['lng'] as num).toDouble(),
|
|
label: j['label'] as String?,
|
|
address: j['address'] as String?,
|
|
);
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
'lat': lat,
|
|
'lng': lng,
|
|
if (label != null) 'label': label,
|
|
if (address != null) 'address': address,
|
|
};
|
|
|
|
@override
|
|
List<Object?> get props => [lat, lng, label, address];
|
|
}
|