import '../../../core/api/api_client.dart'; import 'models/quote_model.dart'; import 'models/stop_model.dart'; /// استخراج الأسعار لكل فئة رحلة. class TariffRepository { final ApiClient _api; TariffRepository(this._api); /// جلب عرض أسعار للمسار المحدد — POST /tariff/quote. /// /// الاستجابة تحتوي `classes[]` بسعر لكل فئة مع breakdown. Future getQuote({ required double pickupLat, required double pickupLng, required String? pickupAddress, required double dropoffLat, required double dropoffLng, required String? dropoffAddress, List? stops, String? vehicleClass, String? scheduledAt, }) async { final data = { 'pickup': { 'lat': pickupLat, 'lng': pickupLng, if (pickupAddress != null) 'address': pickupAddress, }, 'dropoff': { 'lat': dropoffLat, 'lng': dropoffLng, if (dropoffAddress != null) 'address': dropoffAddress, }, }; if (stops != null && stops.isNotEmpty) { data['stops'] = stops.nonNulls.map((s) => s.toJson()).toList(); } if (vehicleClass != null) data['vehicleClass'] = vehicleClass; if (scheduledAt != null) data['scheduledAt'] = scheduledAt; final r = await _api.dio.post('/tariff/quote', data: data); return QuoteModel.fromJson(r.data as Map); } }