import { ServiceArea } from '@secondcloset/types/src/_common'; import { AppointmentOrShipment } from './appointment'; type RouteItem = { appointment_id: string; type: string; status: string; number: string; date: string; timerange: string; stop_duration: number; timezone: string; sequence: number; total_weight: number; total_items_count: number; estimated_duration_seconds?: number; delivery_type: Exclude; delivery_service_level: Exclude; coordinates: { lat: number; lng: number; }; }; export type RouteAnalysisStatisticsAppointment = Omit & { appointment_id: string | "warehouse-id" | "depot"; type: number; is_pickup?: boolean; stop_duration: number; arrival_eta?: string; departure_eta?: string; mapbox_arrival_eta?: string; mapbox_departure_eta?: string; travel_distance_in_meters?: number; actual_travel_distance_in_meters?: number; actual_travel_duration_in_seconds?: number; total_duration_in_seconds?: number; travel_duration_in_seconds?: number; skip_prediction?: boolean; date?: string; number?: string; status?: string; sequence?: number; timezone?: string; timerange?: string; coordinates?: { lat: number; lng: number; }; total_weight?: number; delivery_type?: string; total_items_count?: number; delivery_service_level?: string; estimated_duration_seconds?: number | null; service_area?: { name?: ServiceArea; }; start_time?: string | null; end_time?: string | null; organization_id?: string; organization_name?: string | null; failed_reason?: string | null; incomplete_at?: string | null; }; type RouteAnalysisStatistics = { appointments: RouteAnalysisStatisticsAppointment[]; total_duration_in_seconds: number; total_travel_distance_in_meters: number; total_weight: number; total_items_count: number; route_polyline?: number[][]; }; export type RouteAnalysis = { id: string; external_route_id: string; analysis: RouteAnalysisStatistics; analysis_snapshot: RouteAnalysisStatistics; analysis_snapshot_planning?: RouteAnalysisStatistics | null; }; export type RouteAnalysisMap = { [routeID: string]: RouteAnalysis; }; export type RouteAnalysisTotal = { id: string; external_route_id: string; total_duration_in_seconds: number; total_travel_distance_in_meters: number; total_weight_in_grams: number; total_items_count: number; total_stops_count: number; created_at: string; updated_at: string; route_progress_info?: { completed_appointments: number; failed_appointments: number; total_appointments: number; }; }; export type RouteAnalysisTotalMap = { [routeID: string]: RouteAnalysisTotal; }; export type RoutePolyline = { external_route_id: string; route_polyline: number[][] | null; }; export type RoutePolylineMap = { [routeID: string]: RoutePolyline; }; export {};