package enums

import "github.com/UpmeshLTD/urus-aio/infrastructure/db/entities"

var (
	FlashExpressStatus = struct {
		FulfillmentRequestSent string
		CourierStaffAssigned   string
		PickedUp               string
		InTransit              string
		OnDelivery             string
		Detained               string
		Delivered              string
		ProblematicProcessing  string
		Returned               string
		Closed                 string
		Cancelled              string
	}{
		FulfillmentRequestSent: entities.CourierShipmentStatusFulfillmentRequestSent,
		CourierStaffAssigned:   entities.CourierShipmentStatusCourierStaffAssigned,
		PickedUp:               "1",
		InTransit:              "2",
		OnDelivery:             "3",
		Detained:               "4",
		Delivered:              "5",
		ProblematicProcessing:  "6",
		Returned:               "7",
		Closed:                 "8",
		Cancelled:              "9",
	}

	FlashExpressMapOrderStatus = map[string]entities.ShipmentStatus{
		FlashExpressStatus.FulfillmentRequestSent: entities.ShipmentStatusFulfillmentRequestSent, // Fulfillment request sent
		FlashExpressStatus.CourierStaffAssigned:   entities.ShipmentStatusCourierStaffAssigned,   // Courier staff assigned
		FlashExpressStatus.PickedUp:               entities.ShipmentStatusPickedUp,               // Picked up
		FlashExpressStatus.InTransit:              entities.ShipmentStatusOnDelivery,             // In transit
		FlashExpressStatus.OnDelivery:             entities.ShipmentStatusOnDelivery,             // On Delivery
		FlashExpressStatus.Detained:               entities.ShipmentStatusOnDelivery,             // Detained
		FlashExpressStatus.Delivered:              entities.ShipmentStatusDelivered,              // Delivered
		FlashExpressStatus.ProblematicProcessing:  entities.ShipmentStatusOnDelivery,             // Problematic Processing
		FlashExpressStatus.Returned:               entities.ShipmentStatusFailedDelivery,         // Returned
		FlashExpressStatus.Closed:                 entities.ShipmentStatusFailedDelivery,         // Closed
		FlashExpressStatus.Cancelled:              entities.ShipmentStatusCancelled,              // Cancelled
	}

	FlashExpressCourierStatus = struct {
		PendingAssign string
		PendingPickup string
		PickedUp      string
		Transferred   string
		Cancelled     string
	}{
		PendingAssign: "0",
		PendingPickup: "1",
		PickedUp:      "2",
		Transferred:   "3",
		Cancelled:     "4",
	}
)
