using System.ComponentModel;

namespace GameMessage.Const
{
    /// <summary>
    /// 角色
    /// </summary>
    public enum OrderRoleType
    {
        [Description("未知")]
        Unknow = 0,
        [Description("用户")]
        User = 1, // 用户
        [Description("公会")]
        Club = 2, // 公会
    }
    
    /// <summary>
    /// 订单状态
    /// </summary>
    public enum OrderState
    {
        Open = 1, // 打开状态
        Paying = 2, // 支付中
        Completed = 3, // 支付完成
        Refunding = 4, // 退款中
        Refunded = 5, // 已退款
        Authing = 6, // 支付授权中
        Exception = 99, // 异常订单
    }

    /// <summary>
    /// 业务相关支付渠道
    /// </summary>
    public enum PaymentChannel
    {
        Unknow = 0,
        Alipay_H5Web = 1, // 支付宝手机网站支付
        WeChat_JSAPI = 2, // 微信内手机网站支付
        Agent_H5Web = 3, // 代付手机网站支付
        AliPay_App = 4, // 支付宝app支付
        WeChat_App = 5, // 微信app支付
        Huawei_App = 6, // 华为app支付
        Apple_App = 7, // 苹果app支付
        QR_PC = 8, // PC扫码支付
        WeChat_MiniGame = 9, // 微信小游戏支付
        ZG_WeChat_JSAPI = 10, // 中钢微信支付支付 (作废)
        Lakala_Cashier = 11, // 拉卡拉聚合支付
        ZG_QR_App = 12, // 中钢App扫码支付 （作废）
        Lakala_Mini = 13, // 拉卡拉小程序
        CMB_Wechat_App = 14, // 招行-微信app
        CMB_Wechat_JSAPI = 15, // 招行-微信JsApi
        CMB_CloudPay = 16, // 招行-云闪付
        CMB_ZFBWap = 17, // 招行-支付宝手机网站支付
        CMB_ZFBApp = 18, // 招行-支付宝app支付
        CMB_QRCode = 19, // 招行-收款码
        CMB_Wechat_MiniApp = 20, // 招行-小程序
        HM_JSAPI = 21, // 河马付 - JsApi
        Lakala_QFW_Mini = 22, // 拉卡拉全方位平台小程序
        Lakala_QFW_Cashier  = 23, // 拉卡拉全方位聚合支付
        XiaoMi = 24,    //小米支付
        Vivo = 25,      //Vivo支付
    }

    /// <summary>
    /// 支付渠道类型
    /// </summary>
    public enum ChannelType
    {
        Alipay = 1,
        WeChat = 2,
        Huawei = 3,
        Apple = 4,
        ZG = 5, // 中钢
        Lakala = 6, // 拉卡拉
        MiniGame = 7, // 小游戏
        CMB = 8, // 招行
        HM = 9, // 河马支付
        XiaoMi = 10, //小米支付
        
        SandBox = 99, // 沙盒
    }
    
    /// <summary>
    /// 支付来源类型
    /// </summary>
    public enum ChannelOriginType
    {
        Unknown = 0,
        WxService = 1, // 微信服务号
        PC = 2, // PC端
        Android = 3, // 安卓
        IOS = 4, // Apple
        WebGL = 5, // WebGL
        MiniGame = 6, // 微信小游戏
    }


    public class PayNameMapUtil
    {
        public static string GetChannelOriginTypeName(ChannelOriginType type)
        {
            switch (type)
            {
                case ChannelOriginType.WxService:
                    return "微信服务号";
                case ChannelOriginType.PC:
                    return "PC端";
                case ChannelOriginType.Android:
                    return "安卓";
                case ChannelOriginType.IOS:
                    return "苹果";
                case ChannelOriginType.WebGL:
                    return "WebGL";
                case ChannelOriginType.MiniGame:
                    return "微信小游戏";
                default:
                    return "未知";
            }
        }
        
        public static string GetChannelTypeName(ChannelType channel)
        { 
            switch (channel)
            {
                case ChannelType.Alipay:
                    return "支付宝";
                case ChannelType.WeChat:
                    return "微信";
                case ChannelType.MiniGame:
                    return "微信小游戏";
                case ChannelType.Huawei:
                    return "华为";
                case ChannelType.Apple:
                    return "苹果";
                case ChannelType.Lakala:
                    return "拉卡拉";
                case ChannelType.CMB:
                    return "招行";
                case ChannelType.HM:
                    return "河马付";
                case ChannelType.SandBox:
                    return "沙盒";
                default:
                    return "未知";
            }
        }
    }
}