package constants // Miler Availability Statuses const ( MilerOffline = "Offline" MilerAvailable = "Available" MilerAssigned = "Assigned" MilerOnPickup = "On_Pickup" MilerAtCustomer = "At_Customer" MilerPickedUp = "Picked_Up" MilerOnDelivery = "On_Delivery" MilerBreak = "Break" MilerBlocked = "Blocked" ) // Booking sources — where a booking originated. Left as their stored literals: // "CRM_Console" predates the outward express rename and is an existing DB value. const ( BookingSourceCustomerApp = "Customer_App" BookingSourceExpress = "CRM_Console" ) // App (B2C) Customer Statuses const ( CustomerStatusActive = "Active" CustomerStatusBlocked = "Blocked" CustomerStatusDeleted = "Deleted" ) // Booking Statuses const ( BookingPendingPickup = "Pending_Pickup" // customer requested pickup, delivery details not yet known BookingCreated = "Created" BookingMilerAssigned = "Miler_Assigned" BookingPickupScheduled = "Pickup_Scheduled" BookingArrivedAtPickup = "Arrived_At_Pickup" // miler is at the pickup point, parcel not yet collected BookingPickedUp = "Picked_Up" BookingConvertedConsignment = "Converted_To_Consignment" BookingCancelled = "Cancelled" ) // Consignment Statuses const ( ConsignmentCreated = "Created" ConsignmentInwardedAtHub = "Inwarded_at_Hub" // ConsignmentCollectedByMiler is the intermediate state for a hyperlocal // parcel: the miler has collected it but has NOT yet started the final-mile // run. It sits between pickup and Out_for_Delivery so the console can tell // "collected, waiting to leave" apart from "actively delivering" — before // this existed a hyperlocal pickup jumped straight to Out_for_Delivery and // looked active the instant it was collected. StartDelivery moves it on. ConsignmentCollectedByMiler = "Collected_By_Miler" ConsignmentTripsheetLoaded = "Tripsheet_Loaded" ConsignmentInTransit = "In_Transit" ConsignmentOutForDelivery = "Out_for_Delivery" ConsignmentDelivered = "Delivered" ConsignmentRTOInitiated = "RTO_Initiated" ConsignmentReturnedToSender = "Returned_to_Sender" ConsignmentMissing = "Missing" ConsignmentDamaged = "Damaged" ) // Machine-readable error codes returned to the miler app in the "code" field of // 4xx responses, so the client can branch on a stable identifier instead of // parsing human-readable messages. Add here, never inline. const ( ErrInvalidInput = "INVALID_INPUT" ErrBookingNotFound = "BOOKING_NOT_FOUND" ErrBookingNotAssigned = "BOOKING_NOT_ASSIGNED" ErrConsignmentNotFound = "CONSIGNMENT_NOT_FOUND" ErrConsignmentNotAssigned = "CONSIGNMENT_NOT_ASSIGNED" ErrInvalidState = "INVALID_STATE" // action not allowed from the entity's current status ErrAlreadyPickedUp = "ALREADY_PICKED_UP" // pre-pickup action attempted after pickup ErrOtpRequired = "OTP_REQUIRED" ErrOtpInvalid = "OTP_INVALID" ErrIdempotencyInProgress = "IDEMPOTENCY_IN_PROGRESS" // an identical keyed request is still running ErrEmailInUse = "EMAIL_IN_USE" ) // Payment Modes const ( PaymentModeCash = "Cash" PaymentModeUPI = "UPI" PaymentModeCard = "Card" PaymentModeWallet = "Wallet" ) // Payment Statuses const ( PaymentStatusPending = "Pending" PaymentStatusPaid = "Paid" PaymentStatusFailed = "Failed" PaymentStatusRefunded = "Refunded" ) // Assignment Statuses const ( AssignmentAssigned = "Assigned" AssignmentAccepted = "Accepted" AssignmentRejected = "Rejected" AssignmentReassigned = "Reassigned" AssignmentCompleted = "Completed" AssignmentCancelled = "Cancelled" ) // Tripsheet Statuses const ( TripsheetDraft = "Draft" TripsheetReady = "Ready" TripsheetDispatched = "Dispatched" TripsheetArrived = "Arrived" TripsheetCancelled = "Cancelled" ) // Scan Statuses const ( ScanPending = "Pending" ScanLoaded = "Loaded" ScanUnloaded = "Unloaded" ScanDiscrepancy = "Discrepancy" ) // Exception Types const ( ExceptionLost = "Lost" ExceptionDamaged = "Damaged" ExceptionMisrouted = "Misrouted" ExceptionReceiverRefused = "Receiver_Refused" ExceptionMissingContents = "Missing_Contents" ExceptionUndeliverable = "Undeliverable" ) // Exception Statuses const ( ExceptionOpen = "Open" ExceptionUnderInvestigation = "Under_Investigation" ExceptionResolved = "Resolved" ExceptionClosed = "Closed" )