using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Lada.Framework.Data.Enums
{
    /// <summary>
    /// Trạng thái đơn hàng
    /// </summary>
    public enum OrderStatus
    {
        [Description("Tạo mới")]
        New = 1,
        [Description("Hủy")]
        Cancelled = 8,


        [Description("Đã nhận hàng")]
        Received = 3,

        [Description("Lấy thất bại")]
        PickupFail = 11,

        [Description("Đã giao hàng")]
        Delivered = 55,
        [Description("Giao thất bại")]
        DeliveryFail = 51,

        [Description("Đã trả về")]
        Returned = 63,
        [Description("Trả vể thất bại")]
        ReturnFail = 61,


        [Description("Chờ trả về")]
        WaitToReturn = 16,

        [Description("Không xác định")] //Với các đơn chưa xác định ở trạng thái gì
        Unknown = 99,


    }

    /// <summary>
    /// Trạng thái vật lý của đơn hàng
    /// </summary>
    public enum OrderPhysicalStatus
    {
        [Description("Chờ lấy hàng")]
        WaitToPickup = 1,
        [Description("Đã hủy")]
        Cancelled = 8,


        [Description("Triển khai lấy hàng")]
        AssignedPickup = 11,

        [Description("Đang đi lấy hàng")]
        OnPicking = 12,

        [Description("Lấy hàng thành công")]
        Picked = 13,
        [Description("Lấy hàng thất bại")]
        PickFailed = 14,

        [Description("Nhập vào kho")]
        Inbound = 20,
        [Description("Xuất khỏi kho")]
        Outbound = 30,


        [Description("Triển khai giao hàng")]
        OutboundForDelivery = 51,
        [Description("Đang giao hàng")]
        OnDelivery = 53,
        [Description("Giao thành công")]
        Delivered = 55,


        [Description("Triển khai trả hàng")]
        OutboundForReturn = 61,
        [Description("Đang trả hàng")]
        OnReturn = 62,
        [Description("Đã trả về đối tác")]
        Returned = 63,

        [Description("Thất lạc")]
        Lost = 77,
        [Description("Hàng hỏng")]
        Damage = 78,
        [Description("Lưu kho")]
        Storage = 79,

        [Description("Không xác định")] //Với các đơn chưa xác định ở trạng thái gì
        Unknown = 99,
    }
}
