using System.ComponentModel;

namespace Lada.Framework.Data.Enums
{
    /// <summary>
    /// Mã ngân hàng
    /// </summary>
    public enum BankCode
    {
        [Description("VPBank")]
        VPBank = 1,
        [Description("Techcombank")]
        Techcombank = 2,
        [Description("Vietcombank")]
        Vietcombank = 3,
        [Description("BIDV")]
        BIDV = 4,
        [Description("Agribank")]
        Agribank = 5,
        [Description("Sacombank")]
        Sacombank = 6,
        [Description("ACB")]
        ACB = 7,
        [Description("MBBank")]
        MBBank = 8,
        [Description("VietinBank")]
        VietinBank = 9,
        [Description("HDBank")]
        HDBank = 10,
        [Description("TPBank")]
        TPBank = 11,
        [Description("SeABank")]
        SeABank = 12,
        [Description("SHB")]
        SHB = 13,
        [Description("VIB")]
        VIB = 14,
        [Description("LienVietPostBank")]
        LienVietPostBank = 15,
        [Description("OCB")]
        OCB = 16,
        [Description("MSB")]
        MSB = 17,
        [Description("Eximbank")]
        Eximbank = 18,
        [Description("NamABank")]
        NamABank = 19,
        [Description("PGBank")]
        PGBank = 20,
        [Description("LVBank")]
        LVBank = 21,
        [Description("NCB")]
        NCB = 22,
        [Description("ABBANK")]
        ABBANK = 23,
        [Description("BacABank")]
        BacABank = 24,
        [Description("PVcomBank")]
        PVcomBank = 25,
        [Description("Vietbank")]
        Vietbank = 26,
        [Description("BVBank")]
        BVBank = 27,
        [Description("VietABank")]
        VietABank = 28,
        [Description("Kienlongbank")]
        Kienlongbank = 29,
        [Description("SAIGONBANK")]
        SAIGONBANK = 30,
        [Description("BAOVIET Bank")]
        BAOVIETBank = 31,
        [Description("Woori")]
        Woori = 32,
        [Description("UOB")]
        UOB = 33,
        [Description("HSBC")]
        HSBC = 34,
        [Description("PBVN")]
        PBVN = 35,
        [Description("SCBVL")]
        SCBVL = 36,
        [Description("SHBVN")]
        SHBVN = 37,
        [Description("ANZVL")]
        ANZVL = 38,
        [Description("CIMB")]
        CIMB = 39,
        [Description("IVB")]
        IVB = 40,
        [Description("VRB")]
        VRB = 41,
        [Description("Co-opBank")]
        CoopBank = 42,
        [Description("HLBVN")]
        HLBVN = 43,
        [Description("VBSP")]
        VBSP = 44,
        [Description("VDB")]
        VDB = 45,
        [Description("Vikki Bank")]
        VikkiBank = 46,
        [Description("MBV")]
        MBV = 47,
        [Description("GPBank")]
        GPBank = 48,
        [Description("VCBNeo")]
        VCBNeo = 49
    }

    /// <summary>
    /// Phân loại ngân hàng
    /// </summary>
    public enum BankType
    {
        [Description("Thương mại Cổ phần")]
        CommercialJointStock = 1,
        [Description("Thương mại Nhà nước")]
        StateCommercial = 2,
        [Description("Ngân hàng chính sách")]
        PolicyBank = 3,
        [Description("100% vốn nước ngoài")]
        ForeignOwned = 4,
        [Description("Ngân hàng Liên doanh")]
        JointVenture = 5,
        [Description("NH Hợp tác xã")]
        Cooperative = 6
    }

    /// <summary>
    /// Trạng thái tài khoản ngân hàng
    /// </summary>
    public enum BankAccountStatus
    {
        [Description("Hoạt động")]
        Active = 1,
        [Description("Tạm khóa")]
        Suspended = 2,
        [Description("Đóng")]
        Closed = 3,
        [Description("Chờ kích hoạt")]
        PendingActivation = 4
    }

    /// <summary>
    /// Trạng thái xử lý giao dịch
    /// </summary>
    public enum TransactionProcessStatus
    {
        [Description("Chưa xử lý")]
        Pending = 1,
        [Description("Đã xử lý")]
        Processed = 2,
        [Description("Lỗi")]
        Error = 3,
        [Description("Bỏ qua")]
        Skipped = 4,
        [Description("Trùng lặp")]
        Duplicate = 5
    }

    /// <summary>
    /// Trạng thái import sao kê
    /// </summary>
    public enum ImportStatus
    {
        [Description("Đang xử lý")]
        Processing = 1,
        [Description("Thành công")]
        Success = 2,
        [Description("Thất bại")]
        Failed = 3,
        [Description("Thành công có cảnh báo")]
        SuccessWithWarnings = 4,
        [Description("Đã hủy")]
        Cancelled = 5
    }

    /// <summary>
    /// Loại giao dịch ngân hàng
    /// </summary>
    public enum BankTransactionType
    {
        [Description("Chuyển khoản đến")]
        TransferIn = 1,
        [Description("Chuyển khoản đi")]
        TransferOut = 2,
        [Description("Rút tiền")]
        Withdrawal = 3,
        [Description("Nộp tiền")]
        Deposit = 4,
        [Description("Phí dịch vụ")]
        ServiceFee = 5,
        [Description("Lãi tiền gửi")]
        Interest = 6,
        [Description("Thanh toán hóa đơn")]
        BillPayment = 7,
        [Description("Khác")]
        Other = 8
    }
}
