import type { UserProfile } from '@/types/mall-types.uts' export type DeliveryOnlineStatus = 'online' | 'resting' | 'busy' export type DeliveryAccountStatus = 'active' | 'disabled' | 'locked' | 'suspended' export type DeliveryCertificateStatus = 'valid' | 'expired' | 'pending' export type DeliveryOrderStatus = 'pending_assignment' | 'pending_accept' | 'accepted' | 'waiting_departure' | 'departed' | 'on_the_way' | 'arrived' | 'checked_in' | 'in_service' | 'serving' | 'pending_confirm' | 'pending_submit' | 'pending_acceptance' | 'completed' | 'rejected' | 'abnormal' | 'terminated' | 'exception_pending' | 'cancelled' | 'settled' | 'archived' export type DeliveryExceptionType = 'cannot_contact_user' | 'user_not_home' | 'family_uncooperative' | 'outside_service_scope' | 'staff_cannot_continue' | 'complaint_dispute' | 'cannot_contact_elder' | 'cannot_enter_home' | 'wrong_address' | 'elder_refuse_service' | 'family_requests_reschedule' | 'safety_risk' | 'elder_health_abnormal' | 'emergency_illness' | 'item_unavailable' | 'other' export type DeliveryLocationType = { latitude: number longitude: number address: string time: string } export type DeliveryTimelineItemType = { id: string title: string time: string description: string } export type DeliveryStatusLogType = { id: string orderId: string fromStatus: DeliveryOrderStatus toStatus: DeliveryOrderStatus operatorRole: string operatorId: string remark: string createdAt: string } export type DeliveryServiceItemType = { id: string name: string required: boolean completed: boolean incompleteReason: string remark: string updatedAt: string } export type DeliveryEvidenceRecordType = { id: string orderId: string phase: string fileType: string name: string url: string localPath: string status: string progress: number retryable: boolean createdAt: string } export type DeliveryHealthMetricsType = { bloodPressure: string heartRate: string bloodSugar: string bloodOxygen: string } export type DeliveryConfirmationType = { method: 'sms_code' | 'signature' | 'none' code: string signatureName: string signatureUrl: string confirmedAt: string } export type DeliveryServiceRecordType = { id: string orderId: string startTime: string endTime: string actualDurationMinutes: number serviceItems: Array serviceContent: Array processNote: string elderStatus: string healthMetrics: DeliveryHealthMetricsType materialsUsed: string abnormalNote: string photos: Array staffRemark: string familyConfirmation: DeliveryConfirmationType createdAt: string updatedAt: string } export type DeliveryAbnormalReportType = { id: string orderId: string type: DeliveryExceptionType description: string occurredAt: string locationText: string images: Array needPlatformIntervention: boolean requestCancelOrder: boolean requestReschedule: boolean createdAt: string } export type DeliveryOrderType = { id: string orderNo: string serviceType: string serviceName: string serviceCategory: string serviceItems: Array serviceContentOptions?: Array elderId: string elderName: string elderNameMasked: string elderGender: string elderAge: number elderPhone: string elderPhoneMasked: string fullElderName: string fullPhone: string contactRelation: string addressSummary: string address: string addressDetail: string fullAddress: string latitude: number longitude: number appointmentTime: string appointmentStartTime: string appointmentEndTime: string duration: number estimatedDuration: number price: number staffIncome: number distance: string actualStartTime: string actualEndTime: string status: DeliveryOrderStatus statusText: string statusTone: string riskTags: Array healthTags: Array careLevel: string needFamilyPresent: boolean needMaterials: boolean remark: string merchantId: string merchantName: string deliveryStaffId: string deliveryStaffName: string acceptTime: string rejectTime?: string departTime: string arriveTime: string checkinTime: string startServiceTime?: string finishTime: string cancelReason: string exceptionType: string exceptionDesc: string evidenceList: Array signatureUrl: string signatureName: string satisfactionStatus: string settlementStatus: string archiveStatus: string createdAt: string updatedAt: string contactName: string contactPhone: string notices: Array timeline: Array statusLog: Array serviceSummary: string progressNote: string distanceKm: string allowCheckinRadiusMeters: number lastLocation: DeliveryLocationType | null trackPoints: Array serviceRecord: DeliveryServiceRecordType | null abnormalReport: DeliveryAbnormalReportType | null } export type DeliveryCertificateType = { id: string name: string status: DeliveryCertificateStatus expireAt: string issuer: string imageUrl: string } export type DeliveryInfoType = { id: string userId: string staffNo: string name: string phone: string role: string status: DeliveryAccountStatus organizationId: string organizationName: string certificates: Array certificateStatus: DeliveryCertificateStatus certificateExpireAt: string onlineStatus: DeliveryOnlineStatus serviceArea: string skills: Array avatarUrl: string todayAccepted: number todayServing: number todayCompleted: number usesMock: boolean } export type DeliveryDashboardType = { pendingAssignmentCount: number pendingAcceptCount: number todayOrderCount: number pendingDepartCount: number servingCount: number completedCount: number exceptionCount: number expectedIncome: number onlineStatus: DeliveryOnlineStatus nextOrder: DeliveryOrderType | null recentOrders: Array } export type DeliveryMessageType = { id: string title: string content: string type: string createdAt: string read: boolean orderId: string } export type DeliveryRecordType = { id: string orderId: string orderNo: string serviceName: string elderName: string elderNameMasked: string status: string statusText: string appointmentStartTime: string appointmentTime: string actualStartTime: string actualEndTime: string staffIncome: number settlementStatus: string acceptanceStatus: string exceptionDesc: string ratingText: string hasServiceRecord: boolean } export type DeliveryLoginPayloadType = { account: string password: string } export type DeliveryLoginResultType = { token: string userInfo: UserProfile deliveryInfo: DeliveryInfoType | null usesMock: boolean } export type DeliveryOrderQueryType = { tab: string keyword: string } export type DeliveryProgressPayloadType = { items: Array progressNote: string serviceSummary: string } export type DeliveryCheckinPayloadType = { location: DeliveryLocationType note: string photos: Array checkinMode: string } export type DeliveryFinishPayloadType = { serviceSummary: string signatureName: string confirmByFamily: boolean } export type DeliveryExceptionPayloadType = { exceptionType: DeliveryExceptionType description: string images: Array occurredAt?: string locationText?: string needPlatformIntervention?: boolean requestCancelOrder?: boolean requestReschedule?: boolean }