
export const orderStatusArrayJson = {
    pending: "1",
    processing: "2",
    packed: "3",
    shipped: "4",
    delivered: "5",
    canceled: "6",
    returned: "7",
    refunded: "8",
    partiallyShipped: "9",
    onHold: "10",
    failed: "11",
    completed: "12",
    pickup: "13",
    partiallyDelivered: "14",
    partiallyCanceled: "15",
    partiallyReturned: "16",
    partiallyRefunded: "17",
};

export const orderStatusArray = [
    { value: orderStatusArrayJson.pending, label: "Pending" },
    { value: orderStatusArrayJson.processing, label: "Processing" },
    { value: orderStatusArrayJson.packed, label: "Packed" },
    { value: orderStatusArrayJson.shipped, label: "Shipped" },
    { value: orderStatusArrayJson.delivered, label: "Delivered" },
    { value: orderStatusArrayJson.canceled, label: "Canceled" },
    { value: orderStatusArrayJson.returned, label: "Returned" },
    { value: orderStatusArrayJson.refunded, label: "Refunded" },
    { value: orderStatusArrayJson.partiallyShipped, label: "Partially Shipped" },
    { value: orderStatusArrayJson.onHold, label: "On Hold" },
    { value: orderStatusArrayJson.failed, label: "Failed" },
    { value: orderStatusArrayJson.completed, label: "Completed" },
    { value: orderStatusArrayJson.pickup, label: "Pickup" },
    { value: orderStatusArrayJson.partiallyDelivered, label: "Partially Delivered" },
    { value: orderStatusArrayJson.partiallyCanceled, label: "Partially Canceled" },
    { value: orderStatusArrayJson.partiallyReturned, label: "Partially Returned" },
    { value: orderStatusArrayJson.partiallyRefunded, label: "Partially Refunded" },
];

export const orderStatusMessages: { [key: string]: string } = {
    [orderStatusArrayJson.pending]: 'Order received successfully!',
    [orderStatusArrayJson.processing]: 'Order is now being processed!',
    [orderStatusArrayJson.packed]: 'Order has been packed!',
    [orderStatusArrayJson.shipped]: 'Order has been shipped!',
    [orderStatusArrayJson.delivered]: 'Order has been delivered!',
    [orderStatusArrayJson.canceled]: 'Order has been canceled!',
    [orderStatusArrayJson.returned]: 'Order has been returned!',
    [orderStatusArrayJson.refunded]: 'Order has been refunded!',
    [orderStatusArrayJson.partiallyShipped]: 'Order has been partially shipped!',
    [orderStatusArrayJson.onHold]: 'Order is on hold!',
    [orderStatusArrayJson.failed]: 'Order has failed!',
    [orderStatusArrayJson.completed]: 'Order has been completed!',
    [orderStatusArrayJson.pickup]: 'Order is ready for pickup!',
    [orderStatusArrayJson.partiallyDelivered]: 'Order has been delivered!',
    [orderStatusArrayJson.partiallyCanceled]: 'Order has been partially canceled!',
    [orderStatusArrayJson.partiallyReturned]: 'Order has been partially returned!',
    [orderStatusArrayJson.partiallyRefunded]: 'Order has been partially refunded!',
};

export const orderProductStatusJson = {
    pending: "1",
    processing: "2",
    packed: "3",
    shipped: "4",
    delivered: "5",
    canceled: "6",
    returned: "7",
    refunded: "8",
    pickup: "13"
};

export const orderProductReturnApplicableStatusArray = [orderProductStatusJson.delivered]

export const orderProductStatusArray = [
    { value: orderProductStatusJson.pending, label: "Pending" },
    { value: orderProductStatusJson.processing, label: "Processing" },
    { value: orderProductStatusJson.packed, label: "Packed" },
    { value: orderProductStatusJson.shipped, label: "Shipped" },
    { value: orderProductStatusJson.delivered, label: "Delivered" },
    { value: orderProductStatusJson.canceled, label: "Cancelled" },
    { value: orderProductStatusJson.returned, label: "Returned" },
    { value: orderProductStatusJson.refunded, label: "Refunded" },
    { value: orderProductStatusJson.pickup, label: "Pickup" }
];

export const orderProductStatussMessages: { [key: string]: string } = {
    [orderProductStatusJson.pending]: 'Your product order is pending.',
    [orderProductStatusJson.processing]: 'Your product order is now being processed.',
    [orderProductStatusJson.packed]: 'Your product order has been packed and is ready for shipment.',
    [orderProductStatusJson.shipped]: 'Your product order has been shipped.',
    [orderProductStatusJson.delivered]: 'Your product order has been delivered successfully.',
    [orderProductStatusJson.canceled]: 'Your product order has been canceled.',
    [orderProductStatusJson.returned]: 'Your product has been returned.',
    [orderProductStatusJson.refunded]: 'Your product has been refunded.',
    [orderProductStatusJson.pickup]: 'Your product is ready for pickup.',
};

export const orderProductReturnStatusJson = {
    pending: "1",
    approved: "2",
    refunded: "3",
    received: "4",
    rejected: "5",
};

export const orderReturnStatusMessages: { [key: string]: string } = {
    [orderProductReturnStatusJson.pending]: 'Your product return has been received successfully.',
    [orderProductReturnStatusJson.approved]: 'Your product return request is now approved.',
    [orderProductReturnStatusJson.refunded]: 'Your product return has been successfully refunded.',
    [orderProductReturnStatusJson.rejected]: 'Your product return request has been rejected.',
    [orderProductReturnStatusJson.received]: 'Your product return has been received and is being processed.',
};

export const orderProductReturnStatusArray = [
    { value: orderProductReturnStatusJson.pending, label: "Pending" },
    { value: orderProductReturnStatusJson.approved, label: "Approved" },
    { value: orderProductReturnStatusJson.refunded, label: "Refunded" },
    { value: orderProductReturnStatusJson.received, label: "Received" },
    { value: orderProductReturnStatusJson.rejected, label: "Rejected" },
];

export const orderProductReturnQuantityStatusJson = {
    pending: "1",
    approved: "2",
    refunded: "3",
    received: "4",
    rejected: "5",
};

export const orderProductReturnQuantityStatusArray = [
    { value: orderProductReturnQuantityStatusJson.pending, label: "Pending" },
    { value: orderProductReturnQuantityStatusJson.approved, label: "Approved" },
    { value: orderProductReturnQuantityStatusJson.refunded, label: "Refunded" },
    { value: orderProductReturnStatusJson.received, label: "Received" },
    { value: orderProductReturnQuantityStatusJson.rejected, label: "Rejected" },
];

export const orderStatusMap = orderStatusArray.reduce((map, obj) => {
    map[obj.value] = obj;
    return map;
}, {} as Record<string, { value: string; label: string }>);

export const statusLabels: any = {
    '1': 'Pending',
    '2': 'Processing',
    '3': 'Packed',
    '4': 'Shipped',
    '5': 'Delivered',
    '6': 'Canceled',
    '7': 'Returned',
    '8': 'Refunded',
    '9': 'Partially Shipped',
    '10': 'On Hold',
    '11': 'Failed',
    '12': 'Completed',
    '13': 'Pickup',
};

export const statusStyles: any = {
    '1': 'bg-yellow-200 text-yellow-800',
    '2': 'bg-red-100 text-blue-800',
    '3': 'bg-orange-200 text-orange-800',
    '4': 'bg-purple-200 text-purple-800',
    '5': 'bg-green-200 text-green-800',
    '6': 'bg-red-100 text-red-800',
    '7': 'bg-gray-200 text-gray-800',
    '8': 'bg-green-100 text-teal-800',
    '9': 'bg-green-100 text-indigo-800',
    '10': 'bg-pink-200 text-pink-800',
    '11': 'bg-red-200 text-red-800',
    '12': 'bg-green-200 text-green-800',
    '13': 'bg-red-100 text-blue-800',
    '14': 'bg-green-200 text-blue-800',
};

export const couponTypes = {
    entireOrders: "entire-orders",
    forProduct: "for-product",
    forCategory: "for-category",
    forBrand: "for-brand",
    cashback: "cashback",
}

export const couponDeviceType = {
    desktop: "desktop",
    mobile: "mobile"
}

export const paymentMethods = {
    cashOnDelivery: "cash-on-delivery",
    magnati: "magnati",
    tabby: "tabby",
    tamara: "tamara",
}
