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 Statuses
const (
	BookingPendingPickup        = "Pending_Pickup"          // customer requested pickup, delivery details not yet known
	BookingCreated              = "Created"
	BookingMilerAssigned        = "Miler_Assigned"
	BookingPickupScheduled      = "Pickup_Scheduled"
	BookingPickedUp             = "Picked_Up"
	BookingConvertedConsignment = "Converted_To_Consignment"
	BookingCancelled            = "Cancelled"
)

// Consignment Statuses
const (
	ConsignmentCreated           = "Created"
	ConsignmentInwardedAtHub     = "Inwarded_at_Hub"
	ConsignmentTripsheetLoaded   = "Tripsheet_Loaded"
	ConsignmentInTransit         = "In_Transit"
	ConsignmentOutForDelivery    = "Out_for_Delivery"
	ConsignmentDelivered         = "Delivered"
	ConsignmentRTOInitiated      = "RTO_Initiated"
	ConsignmentReturnedToSender  = "Returned_to_Sender"
	ConsignmentMissing           = "Missing"
	ConsignmentDamaged           = "Damaged"
)

// 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"
)
