using Nest;
using Org.BouncyCastle.Asn1.Mozilla;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using ZeroD.Util;

namespace LifePayment.Domain.Shared
{
    public static class LifePaymentConstant
    {
        public const string 区域信息缓存key = "AreaCacheKey";

        public const string 区域信息缓存key2 = "AreaCacheKey2";

        public const string 扫码登录二维码路径 = "HumanResourcesServices/Account/LoginQrcode/";

        public const string 用户默认密码 = "81812333";

        public const string 小程序Token缓存key = "WxAccessTokenCacheKey";

        public const string 微信公众号Token缓存key = "WxCgiAccessTokenCacheKey";

        public const string WeChatHttpClientName = "WeChatHttpClientName";

        public static string 微信小程序获取Token = "/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}";

        public const string 微信小程序创建二维码 = "/wxa/getwxacodeunlimit?access_token={0}";

        public const string 微信接口获取公众号文章 = "/cgi-bin/freepublish/batchget?access_token={0}";

        public const string 微信小程序身份会话信息 = "/sns/jscode2session?grant_type=authorization_code&appid={0}&secret={1}&js_code={2}";

        public const string 微信公众号获取access_token = "/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code";

        public const string PhoneMessageName = "PhoneMessage";

        public const string SMStemplate404 = "未找到该短信模板";

        public const string SendFailed = "短信发送失败";

        public const int 登录验证码失效 = -10000;

        public const string WxPayHttpClientName = "WxPayHttpClientName";

        public const string WxPayCertificates = "/v3/certificates";

        public const string PayTransactionsNative = "/v3/pay/transactions/native";

        public const string PayJsApi = "/v3/pay/transactions/jsapi";

        public const string PayTransactions = "/v3/pay/transactions";

        public const string PayTransactionsH5 = "/v3/pay/transactions/h5";

        public const string WxPayDomesticRefunds = "/v3/refund/domestic/refunds";

        public const string WxPayTradeBillApply = "/v3/fund-app/mch-transfer/elecsign/out-bill-no";

        public const string WxPayTradeBillQuery = "/v3/fund-app/mch-transfer/elecsign/out-bill-no/{out_bill_no}";

        public const string WxRechargeNotifySectionUrl = "/api/WxPayNotify/WxRechargeNotify";

        public const string WxPayDomesticRefundsNotifySectionUrl = "/api/WxPayNotify/WxPayDomesticRefundsNotify";

        public const string AliRechargeNotifySectionUrl = "/api/AliPayNotify/AliRechargeNotify";

        public const string SystemName = "系统";

        public const string OrderContactSaveUrl = "/Resource/OrderContact/";

        public const string DateFormate = "yyyy-MM-dd";

        public static class CategoryType
        {
            public const int 行业配套 = 1;

            public const int 行业服务 = 0;

            public const int 甲方需求 = 2;

            public const int 行业资讯 = 3;

        }

        public static class CategoryName
        {
            public const string 行业资讯 = "行业资讯";

            public const string 卓玥学社 = "卓玥学社";

        }

        public static class CooperApplyType
        {
            public const string 平台合作 = "平台合作";
            public const string 行业资讯 = "行业资讯";

            public const string 行业资讯合作 = "行业资讯合作";

        }

        public static class UserType
        {
            public const int 企业用户 = 1;

            public const int 个人用户 = 2;
        }
        public static class AuthType
        {
            public const int 人资公司 = 10;
            public const int 行业配套服务公司 = 20;
            public const int 用工单位 = 30;
            public const int 行业机构 = 40;
        }

        public static class AreaLayerType
        {
            public static int 省 = 1;

            public static int 市 = 2;

            public static int 区县 = 3;

            public static int 镇 = 4;
        }

        public static class NamingType
        {
            public static int å…¶ä»– = 0;

            public static int 省级 = 1;

            public static int 市级 = 2;

            public static int 区县级 = 3;
        }

        public static class UserAttestationStatus
        {
            public static int 未提交 = -20;

            public static int 驳回 = -10;

            public static int 待审核 = 0;

            public static int 完善中 = 1;

            public static int 已完善 = 2;

            public static int 提交待审核 = 9;

            public static int 通过 = 10;

        }

        public static class OperateType
        {
            public static int 平台自营 = 1;

            public static int 客户自营 = 2;

            public static int 采集 = 3;
        }

        public static class ProductStatus
        {
            public static int 已下架 = -20;

            public static int 驳回 = -10;

            public static int 保存 = -1;

            public static int 提交待审核 = 0;

            public static int 通过 = 10;
        }

        /// <summary>
        /// -20 驳回 1初始状态 10未提交 20待审核 30 进行中 40 下架 50 系统下架
        /// </summary>
        public static class ParkOrHrStatus
        {
            /// <summary>
            /// 初始状态
            /// </summary>
            public static int Init = 1;

            /// <summary>
            /// 0 未开通
            /// </summary>
            public static int NotOpen = 0;

            /// <summary>
            /// 10 草稿
            /// </summary>
            public static int ToBeReviewed = 10;

            /// <summary>
            /// 20 办理中
            /// </summary>
            public static int Conducting = 20;

            /// <summary>
            ///  30通过
            /// </summary>
            public static int Pass = 30;

            /// <summary>
            /// -20 驳回
            /// </summary>
            public static int Reject = -20;

            /// <summary>
            /// 下架
            /// </summary>
            public static int OffShelf = 40;

            /// <summary>
            /// 系统下架
            /// </summary>
            public static int SystemOffShelf = 50;


        }
        public static class AdvertiseStatus
        {
            public static int 下架 = -10;

            public static int 提交 = 0;

            public static int 上架 = 10;
        }

        public static class InformationStatus
        {
            /// <summary>
            /// (已废弃)
            /// </summary>
            public static int 已下架 = -20;

            public static int 驳回 = -10;

            /// <summary>
            /// (已废弃)
            /// </summary>
            public static int 保存 = -1;

            public static int 提交待审核 = 0;

            public static int 接收待采用 = 1;// 仅采集的资讯

            public static int 通过 = 10;
        }

        public static class InformationIntroInfoType
        {
            /// <summary>
            /// 文本
            /// </summary>
            public static int Text = 0;

            /// <summary>
            /// 图片
            /// </summary>
            public static int Pic = 1;

            /// <summary>
            /// 视频
            /// </summary>
            public static int Video = 2;

            /// <summary>
            /// 富文本
            /// </summary>
            public static int RichText = 3;

            /// <summary>
            /// 微信的内容
            /// </summary>
            public static int WXContent = 4;
        }

        public static class InformationDefault
        {
            public const string DefaultCoverUrl = "https://parkmanagement.oss-cn-hangzhou.aliyuncs.com/12333/assets/icon-default-cover.png";

            public const string DefaultAuthor = "佚名";

        }

        public static class ImplementAreaType
        {
            public static int 全国 = 0;

            public static int 省份 = 1;
        }

        public static class AdvertisePriceStatus
        {
            public static int 已下架 = -10;

            public static int 显示中 = 10;
        }

        public static class UserWithdrawStatus
        {
            public static int 驳回 = -10;

            public static int 打款中 = 10;

            public static int 已完成 = 20;
        }

        public static class PeriodType
        {
            public static int 天 = 1;

            public static int 周 = 7;

            public static int 月 = 30;

            public static int å­£ = 90;

            public static int å¹´ = 365;
        }

        public static class CommentStatus
        {
            public static int 驳回 = -10;

            public static int 提交待审核 = 0;

            public static int 通过 = 10;
        }

        public static class WxMiniAppLoginStatus
        {
            public static int 登录过期 = -10;

            public static int 登录初始 = 0;

            public static int 登录确认 = 10;
        }

        public static class PurchasedProductStatus
        {
            public static int 申请退款驳回 = -30;

            public static int 退款成功 = -20;

            public static int 申请退款 = -10;

            public static int 待确认验收 = 0;

            public static int 确认验收 = 10;

            public static int 交易完成 = 20;
        }

        public static class AdvertisePayType
        {
            public static int 付费 = 0;

            public static int 免费 = 1;
        }

        public static class InformationApplyStatus
        {
            public static int 报名中 = 0;

            public static int 进行中 = 10;

            public static int 已结束 = 20;
        }

        public static class AmountTransferOIType
        {
            public static int 支出 = -1;

            public static int æ”¶å…¥ = 1;
        }

        public static class AmountTransferType
        {
            public static int 产品退款 = -1;

            public static int 产品购买 = 1;

            public static int 资讯打赏 = 2;

            public static int 产品广告投放 = 3;

            public static int 资讯广告投放 = 4;
        }

        public static class RechargeStatus
        {
            public const int 获取充值码失败 = -100;

            public const int 支付失败 = -40;

            public const int 转入退款 = -30;

            public const int 已撤销 = -20;

            public const int 交易关闭 = -10;

            public const int 未支付 = 0;

            public const int 支付中 = 10;

            public const int 支付成功 = 20;

            public const int 交易结束 = 30;
        }

        public static class WxPayStatus
        {
            public const string 支付失败 = "PAYERROR";

            public const string 转入退款 = "REFUND";

            public const string 已撤销 = "REVOKED";

            public const string 交易关闭 = "CLOSED";

            public const string 未支付 = "NOTPAY";

            public const string 支付中 = "USERPAYING";

            public const string 支付成功 = "SUCCESS";
        }

        public static class WxPayRefundStatus
        {
            public const string 退款成功 = "SUCCESS";

            public const string 退款关闭 = "CLOSED";

            public const string 退款处理中 = "PROCESSING";

            public const string 退款异常 = "ABNORMAL";

        }
        public static class ThumbsUpStatus
        {
            public const int 取消 = 0;

            public const int 点赞 = 1;
        }

        public static class TagsType
        {
            //public const int 产品 = 0;
            //public const int 资讯 = 1;
            public const int 普通 = 1;
            public const int 自定义 = 2;
            public const int 产品快捷评价 = 3;
        }

        public static class RechargeType
        {
            public const int 微信 = 10;

            public const int 支付宝 = 20;

            public const int 线下 = 30;
        }

        public static class MessageType
        {
            public const int 产品关注 = 1;
            public const int 产品付款 = 2;
            public const int 资讯打赏 = 3;
            public const int 产品验收 = 4;
            public const int 产品评价 = 5;
            public const int 产品退款 = 6;
            public const int 实名认证审核通过无需开票 = 7;
            public const int 实名认证审核通过需要开票 = 8;
            public const int 实名认证审核不通过 = 9;
            public const int 实名认证发票已开具 = 10;
            public const int 实名认证即将到期 = 11;
            public const int 用户认证失效 = 12;
            public const int 投保成功 = 13;
            public const int 投保失败 = 14;
            public const int 人员批增 = 15;
            public const int 批量退保 = 16;
            public const int 保险即将到期 = 17;
            public const int 钱包开户 = 18;
            public const int 对单转账成功 = 19;
            public const int 对单转账审核未通过 = 20;
            public const int 对单转账失败 = 21;
            public const int 钱包充值成功 = 22;
            public const int 钱包充值失败 = 23;
            public const int 批量转账成功 = 24;
            public const int 批量转账审核未通过 = 25;
            public const int 批量转账失败 = 26;
            public const int 扣款提醒 = 40;
            public const int 我有人审核未通过 = 50;
            public const int 我有订单审核未通过 = 60;
            public const int 我有订单申请 = 61;
            public const int 乙方收到协议确认邀请 = 70;
            public const int 甲方收到协议签约邀请 = 71;
            public const int 合同签约成功 = 72;
            public const int 合同签约失败 = 73;
            public const int 甲方到期支付提醒 = 74;
            public const int 乙方确认费用明细提醒 = 75;
            public const int 乙方上传发票提醒 = 76;
            public const int 甲方确认发票提醒 = 77;
            public const int 乙方发薪提醒 = 78;
            public const int 甲方上传费用明细提醒 = 79;
            public const int 线下支付审核成功 = 80;
            public const int 线下支付审核未通过 = 87;
            public const int 投保批单审核通过 = 81;
            public const int 投保批单审核驳回 = 82;
            public const int 投保批单成功 = 83;
            public const int 投保批单支付失败 = 84;
            public const int 投保审核成功 = 85;
            public const int 投保审核失败 = 86;
            public const int 投保支付失败 = 88;
        }

        public static class AliPayStatus
        {
            public const string 超时关闭 = "TRADE_CLOSED";

            public const string 等待付款 = "WAIT_BUYER_PAY";

            public const string 支付成功 = "TRADE_SUCCESS";

            public const string 交易结束 = "TRADE_FINISHED";
        }

        public static class AlipayOrderStatus
        {
            public const string 退票 = "REFUND";

            public const string 处理中 = "DEALING";

            public const string 支付成功 = "SUCCESS";

            public const string 支付失败 = "FAIL";
        }

        public static Dictionary<string, int> AliPayStatusDic = new Dictionary<string, int>()
        {
              { AliPayStatus.超时关闭, RechargeStatus.交易关闭 },
              { AliPayStatus.等待付款, RechargeStatus.支付中 },
              { AliPayStatus.支付成功, RechargeStatus.支付成功 },
              { AliPayStatus.交易结束, RechargeStatus.交易结束 },
        };

        public static Dictionary<string, int> WxPayStatusDic = new Dictionary<string, int>()
        {
              { WxPayStatus.支付失败, RechargeStatus.支付失败 },
              { WxPayStatus.转入退款, RechargeStatus.转入退款 },
              { WxPayStatus.已撤销, RechargeStatus.已撤销 },
              { WxPayStatus.交易关闭, RechargeStatus.交易关闭 },
              { WxPayStatus.未支付, RechargeStatus.未支付 },
              { WxPayStatus.支付中, RechargeStatus.支付中 },
              { WxPayStatus.支付成功, RechargeStatus.支付成功 },
        };


        public static Dictionary<int, string> MessageDic = new Dictionary<int, string>()
        {
              { MessageType.产品关注, "【{0}】用户{1}新关注了你的【{2}】{3}" },
              { MessageType.产品付款,"【{0}】用户{1}新购买了你的【{2}】{3}"  },
              { MessageType.资讯打赏, "【{0}】用户{1}打赏了你{2}【{3}】{4}"  },
              { MessageType.产品验收,"【{0}】用户{1}确认验收了你的产品【{2}】{3}"  },
              { MessageType.产品评价, "【{0}】用户{1}评价了你的产品【{2}】{3}" },
              { MessageType.产品退款,"【{0}】用户{1}申请退款了你的产品【{2}】{3}"  },
              { MessageType.实名认证审核通过无需开票,"【{0}】您提交的{1}企业实名信息已通过审核。"  },
              { MessageType.实名认证审核通过需要开票,"【{0}】您提交的{1}企业实名信息已通过审核,平台将在7个工作日内开具认证服务费发票。"  },
              { MessageType.实名认证审核不通过,"【{0}】您提交的{1}企业实名信息审核未通过。未通过理由:{2}。"  },
              { MessageType.实名认证发票已开具,"【{0}】您提交的{1}企业实名认证服务费发票已开具。"  },
              { MessageType.实名认证即将到期,"【{0}】您提交的{1}企业实名认证已进入年审期,为了保证您账号的正常使用,请于{2}前完成年审。"  },
              { MessageType.用户认证失效,"【{0}】您的{1}企业实名信息已失效。"  },
              { MessageType.投保成功,"【保险】您好,{0}创建投保编号:{1}的{2}投保成功,"  },
              { MessageType.投保失败,"【保险】您好,{0}创建投保编号:{1}的{2}已投保失败,"  },
              { MessageType.人员批增,"【保险】您好,{0}创建投保编号:{1}的{2}{3}人{4}。"  },
              { MessageType.批量退保,"【保险】您好,{0}创建投保编号:{1}的{2}{3}人{4}。"  },
              { MessageType.保险即将到期,"【保险】您好,投保编号:{0}的{1}{2}天后即将到期,请您及时投保。"  },
              { MessageType.钱包开户,"您的{0}钱包已开通,"  },
              { MessageType.对单转账成功,"交易流水号:{0},已支付成功"  },
              { MessageType.对单转账审核未通过,"交易流水号:{0},付款审核未通过,原因:{1}"  },
              { MessageType.对单转账失败,"交易流水号:{0},付款失败,原因:{1}"  },
              { MessageType.批量转账成功,"批次号:{0},已支付成功"  },
              { MessageType.批量转账审核未通过,"批次号:{0},付款审核未通过,原因:{1}"  },
              { MessageType.批量转账失败,"批次号:{0},付款失败,原因:{1}"  },
              { MessageType.线下支付审核成功,"交易流水号:{0},您的线下支付请求审核已通过"  },
              { MessageType.线下支付审核未通过,"交易流水号:{0},您的线下支付请求审核未通过"  },
              { MessageType.扣款提醒,"【保险】您好,{0}创建投保编号:{1}的{2}上传{3}人投保成功,实际可投保{4}人,保费:{5}元,请确保账号余额充足,"  },
              { MessageType.钱包充值成功,"充值流水号:{0},已充值成功"  },
              { MessageType.钱包充值失败,"充值流水号:{0},充值失败,原因:{1}"  },
              { MessageType.我有人审核未通过,"【我有人】您发布的{0}信息审核未通过,"  },
              { MessageType.我有订单审核未通过,"【我有订单】您发布的{0}信息审核未通过,"  },
              { MessageType.我有订单申请,"【我有订单】您发布的{0},收到一条申请,"  },
              { MessageType.乙方收到协议确认邀请,"您有一条合作邀约,"  },
              { MessageType.甲方收到协议签约邀请,"合同号:{0},待您签约,"  },
              { MessageType.合同签约成功,"合同号:{0},已签约成功。"  },
              { MessageType.合同签约失败,"合同号:{0},已签约失败,失败原因:{1}"  },
              { MessageType.甲方到期支付提醒,"合同号:{0},待您付款,"  },
              { MessageType.乙方确认费用明细提醒,"合同号:{0},费用明细待确认,"  },
              { MessageType.乙方上传发票提醒,"合同号:{0},发票信息待上传,"  },
              { MessageType.甲方上传费用明细提醒,"合同号:{0},费用明细待上传,"  },
              { MessageType.甲方确认发票提醒,"合同号:{0},发票信息待确认,"  },
              { MessageType.乙方发薪提醒,"合同号:{0},待您发薪,"  },
              { MessageType.投保批单审核通过,"【保险】您好,{0}创建批单编号:{1}的{2}审核通过,"  },
              { MessageType.投保批单审核驳回,"【保险】您好,{0}创建批单编号:{1}的{2}审核驳回,"  },
              { MessageType.投保批单成功,"【保险】您好,{0}创建投保编号:{1}的{2}批单成功,"  },
              { MessageType.投保批单支付失败,"【保险】您好,{0}创建批单编号:{1}的{2}支付失败,"  },
              { MessageType.投保审核成功,"【保险】您好,{0}创建投保编号:{1}的{2}审核通过,"  },
              { MessageType.投保审核失败,"【保险】您好,{0}创建投保编号:{1}的{2}审核驳回,"  },
              { MessageType.投保支付失败,"【保险】您好,{0}创建投保编号:{1}的{2}支付失败,"  },
        };

        public static class OrderStatus
        {
            /// <summary>
            /// 10草稿
            /// </summary>
            public const int Draft = 10;

            /// <summary>
            /// 20待审核
            /// </summary>
            public const int PendingReview = 20;

            /// <summary>
            /// 进行中
            /// </summary>
            public const int Processing = 30;

            /// <summary>
            /// 下架
            /// </summary>
            public const int OffShelf = 40;


            public const int SystemOffShelf = 50;


            public const int Reject = -10;
        }

        public static class Squence
        {
            /// <summary>
            /// 第一个
            /// </summary>
            public const int TheFirst = 1;

            public const int TheSecond = 2;

            public const int TheThird = 3;
        }

        /// <summary>
        /// 更新时间 10 最近一天 20 最近一周 30 最近一月
        /// </summary>
        public static class DateType
        {
            public static int LatestDay = 10;

            public static int LatestWeek = 20;

            public static int LatestMonth = 30;
        }

        public static class ResourceCityType
        {
            public static int 所在城市 = 0;

            public static int 意向输送城市 = 1;
        }

        public static class TableType
        {
            public const int User = 10;

            public const int UserCertification = 11;

            public const int UserCertificationAudit = 12;

            public const int ParkOrHR = 20;

            public const int ParkOrHRAudit = 21;

            public const int ResourceEntity = 30;

            // public const int ResourceAudit = 31;

            public const int Order = 40;

            public const int HeadHunter = 50;

            public const int Training = 60;

            public const int Consult = 70;

            public const int Information = 80;

            public const int AdvertiseBoard = 90;

            public const int AdvertiseOnShow = 100;

            public const int PlatformServicePay = 110;

            public const int SystemNotice = 120;

            public const int WalletAccountOpen = 130;

            public const int WalletSingleTransfer = 131;

            public const int WalletRecharge = 132;

            public const int WalletMain = 133;

            public const int WalletBarchTransfer = 134;

            public const int FirstPartyCompany = 135;

            public const int FirstPartyCompanyAudit = 136;

            public const int IndustryBody = 137;

            public const int IndustryMating = 138;

            public const int WalletBatchTransfer = 141;

            public const int GigWorkerRecharge = 150;

            public const int ParkReward = 142;

            public const int UserServiceStaff = 143;

            public const int EnterpriseMaterial = 144;

            public const int IncentivePayments = 145;

            public const int LgGigWorkerCustomerTemplate = 146;

            public const int LgGigWorkerSignFreeSetting = 151;

            public const int LifePayOrder = 200;

            public const int LifePayChannles = 210;
        }

        public static class LogsSpecies
        {
            public static string Create = "创建";

            public static string Update = "编辑";
            public static string Modify = "修改";

            public static string Audit = "审核";

            public static string AuditPass = "通过";

            public static string AuditDown = "驳回";

            public static string Delete = "删除";

            public static string Disable = "禁用";

            public static string Enable = "启用";

            public static string Up = "系统上架";

            public static string Down = "系统下架";

            public static string OnShelf = "上架";
            public static string OffShelf = "下架";

            public static string Recommended = "推荐";

            public static string CancelRecommended = "取消推荐";

            public static string Certification = "实名认证";
            public static string CertificationPass = "审核通过";
            public static string CertificationDown = "审核驳回";
            public static string CertificationSubmit = "提交";
            public static string MandatoryInvalidation = "强制失效";
            public static string CertificationCreate = "提交实名认证";
            public static string CertificationSuccess = "实名认证成功";
            public static string CertificationFail = "实名认证失败";

            public static string Login = "登录";

            public static string Invoicing = "上传发票";

            public static string Crediting = "入账";

            public static string Credited = "已入账";

            public static string NotCredited = "未支付";

            public static string Resubmit = "重新提交";

            public static string ResetPassword = "重置密码";

            public static string AccountUpdate = "账户编辑";

            public static string ChangeUserPhoneNumberForUser = "用户更换手机号";

            public static string UserChangePassword = "用户修改密码";

            public static string UserForgotPassword = "用户忘记密码";

            public static string Expired = "过期";

            public static string SetDisable = "设置禁用";
            public static string SetEnable = "设置启用";

            public static string UserRegister = "注册";

            public static string ParkOrHRPublish = "人资公司发布";
            public static string ParkOrHRAdminProxyPublish = "人资公司代发";
            public static string Setting = "配置";

            #region 钱包日志

            public static string ApplyBankWalletAccountOpen = "提交开户申请";

            public static string SetBankWalletAccountOpenAcctNo = "填写银行卡号";

            public static string SetBankWalletAccountOpenOpentBankNode = "填写开户行信息";

            public static string SetBankWalletAccountOpenBankCertUrl = "上传凭证";

            public static string AddWalletAccountOpenFollow = "添加回访记录";

            public static string ApplyWalletSingleTransfer = "提交转账申请";

            public static string ApplyWalletRecharge = "提交充值申请";

            public static string CheckWalletRecharge = "充值审批";

            public static string BankAccountManageFreeze = "银行账户冻结";

            public static string AlipayAccountManageUnFreeze = "支付宝账户解结";

            public static string AlipayAccountManageFreeze = "支付宝账户冻结";

            public static string BankAccountManageUnFreeze = "银行账户解结";


            #endregion

            #region 客户管理日志

            public static string UploadEnterpriseMaterial = "上传材料";
            public static string SetUserServiceStaff = "分配服务人员";
            public static string SetUserIndustrialPark = "调整园区";
            public static string Dutiable = "完税登记";
            public static string AddIncentivePayments = "奖励金发放";
            public static string SignSetFree = "电子签赠送";

            #endregion


            public static List<string> CertifiedUserOperateNameList = new List<string>() { UserRegister, Enable, Disable, Create, Certification, ResetPassword, Update };
            public static List<string> PlatformUserOperateNameList = new List<string>() { ParkOrHRPublish, UserRegister, Enable, Disable, Create, ResetPassword, Update, Login };
            public static List<string> UserCertificationAuditOperateNameList = new List<string>() { Certification };
            public static List<string> InformationForManageOperateNameList = new List<string>() { Create, Update, OnShelf, OffShelf, Audit };
            public static List<string> InformationWaitForCheckOperateNameList = new List<string>() { Audit };
            public static List<string> UserCertificationManageOperateNameList = new List<string>() { CertificationCreate, CertificationSuccess, CertificationFail };
            public static List<string> CustomerManageOperateNameList = new List<string>() { UploadEnterpriseMaterial, SetUserServiceStaff, SetUserIndustrialPark, Dutiable, AddIncentivePayments, SignSetFree };
            public static List<string> AccountManageOperateNameList = new List<string>() { BankAccountManageFreeze, AlipayAccountManageUnFreeze, AlipayAccountManageFreeze, BankAccountManageUnFreeze };
        }

        public static class InsuranceNeedPriceStatus
        {
            /// <summary>
            /// 10草稿
            /// </summary>
            public const int Draft = 10;

            /// <summary>
            /// 20待审核
            /// </summary>
            public const int PendingReview = 20;

            /// <summary>
            /// 进行中
            /// </summary>
            public const int Processing = 30;

            /// <summary>
            /// 下架
            /// </summary>
            public const int OffShelf = 40;


            public const int SystemOffShelf = 50;


            public const int Reject = -10;
        }

        public static class ParkOrHRType
        {
            /// <summary>
            /// 园区
            /// </summary>
            public static int Park = 10;

            /// <summary>
            /// 人资企业
            /// </summary>
            public static int HR = 20;
        }
        public static class BelongType
        {
            /// <summary>
            /// 园区
            /// </summary>
            public static int ParkType = 10;

            /// <summary>
            /// 人资企业
            /// </summary>
            public static int CompanyType = 20;


        }

        public static class SearchType
        {
            /// <summary>
            /// 热搜词
            /// </summary>
            public static int HotSearchWords = 10;

            /// <summary>
            /// 服务类型
            /// </summary>
            public static int ServiceType = 20;

            /// <summary>
            /// 工种
            /// </summary>
            public static int TypeOfWork = 30;

            /// <summary>
            /// 园区类型
            /// </summary>
            public static int ParkType = 40;

            /// <summary>
            /// 资讯活动类型
            /// </summary>
            public static int InformationActivityType = 50;

            /// <summary>
            /// 政策颁布机构
            /// </summary>
            public static int PolicyIssuingAgency = 60;

            /// <summary>
            /// 区域管理
            /// </summary>
            public static int RegionalManagement = 70;

            /// <summary>
            /// 产品类型
            /// </summary>
            public static int ProductType = 80;

            /// <summary>
            /// 需求类型
            /// </summary>
            public static int DemandType = 90;

            /// <summary>
            /// 需求范围
            /// </summary>
            public static int DemandRange = 100;

            /// <summary>
            /// 员工福利
            /// </summary>
            public static int EmployeeBenefits = 110;

            /// <summary>
            /// 灵工平台管理提供服务
            /// </summary>
            public static int LingGongService = 120;

            /// <summary>
            /// 机构特色
            /// </summary>
            public static int InstitutionalFeatures = 130;

            /// <summary>
            /// 行业类型
            /// </summary>
            public static int IndustryType = 160;
        }

        public static class ServiceType
        {
            public static int 工种 = 10;

            public static int 人资服务 = 20;

            public static int 园区服务 = 30;
        }

        public static class ParkStyleEnum
        {
            /// <summary>
            /// 园区风采
            /// </summary>
            public static int ParkStyles = 10;

            /// <summary>
            /// 宣传视频
            /// </summary>
            public static int PromotionalVideo = 20;
        }

        public static class ClientId
        {
            public const string Front = "frontend-admin-app-client";
            public const string Back = "backend-admin-app-client";
        }

        /// <summary>
        /// 正则表达式
        /// </summary>
        public static class RegularExpression
        {
            /// <summary>
            /// 登录密码正则表达式
            /// </summary>
            public const string LoginPasswordRegEx = @"^(?![\d]+$)(?![a-z]+$)(?![A-Z]+$)[a-zA-Z\d]{6,16}$";

            /// <summary>
            /// 手机号码正则表达式
            /// </summary>
            public const string PhoneNumberRegEx = @"^1[3-9]\d{9}$";


            /// <summary>
            /// 手机号码+座机正则表达式
            /// </summary>
            public const string PhoneNumberTelRegEx = @"(^(0[0-9]{2,3})?[-\s]?([2-9][0-9]{6,7})+([0-9]{1,4})?$)|(^((\(\d{3}\))|(\d{3}[-\s]))?(1[3-9]\d{9})$)|(^(400)[-\s](\d{3})[-\s](\d{4})(.)(\d{1,4})$)|(^(400)(\d{3})(\d{4}$))";

            /// <summary>
            /// 身份证号正则表达式
            /// </summary>
            public const string IdNumberRegEx = @"^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$";

            /// <summary>
            /// 统一社会信用代码正则表达式
            /// </summary>
            public const string SocietyCreditCodeRegEx = @"^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$";

            /// <summary>
            /// 银行卡正则表达式
            /// </summary>
            public const string BankCardRegEx = @"^\d{14,30}$";

            /// <summary>
            /// 邮箱正则表达式
            /// </summary>
            public const string EmailRegEx = @"^(([^<>()\\[\]\\.,;:\s@""]+(\.[^<>()\\[\]\\.,;:\s@""]+)*)|("".+""))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$";

            /// <summary>
            /// 用户账号正则表达式
            /// </summary>
            public const string UserNameEx = @"^[A-Za-z0-9]{8,13}$";

            /// <summary>
            /// 电费户号正则表达式
            /// </summary>
            public const string ElectricAccountRegEx = @"^.{13}$";
        }

        public static class ResponseCode
        {
            public static int SUCCESS = Constant.SUCCESS;

            public static int Failure = Constant.Failure;

            public static int Refresh = 10;

            public static int RegisterExistsPhoneNumber = 11;
        }

        public static class GenerateUserName
        {
            /// <summary>
            /// 生成用户名中的字符长度
            /// </summary>
            public const int GenerateCharLenght = 2;

            /// <summary>
            /// 用于生成用户名的字符池
            /// </summary>
            public static readonly char[] GenerateUserNameCharPool = {
                                                                        // æ•°å­—
                                                                       // '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
                                                                        // 大写字母
                                                                        'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
                                                                        'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
                                                                        // 小写字母
                                                                        'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
                                                                        'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
                                                                        // 特殊符号
                                                                        //'~', '`', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '-',
                                                                        //'=', '+', '\\', '|', '、', '{', '}', '[', ']', ':', ';', '\'', '"',
                                                                        //'<', '>', '?'
                                                                     };
        }

        public class NormalStatus
        {
            public static int Normal = 1;
            public static int Disable = 0;
        }

        public class SetNormalStatusInput
        {
            public Guid Id { get; set; }

            /// <summary>
            /// 0:禁用 1: 正常
            /// </summary>
            public int Status { get; set; }


        }
        public static string GetInsuranceTypeCodeName(string type)
        {
            switch (type)
            {
                case InsuranceTypeCode.Accident:
                    return "意外险";
                case InsuranceTypeCode.Employer:
                    return "雇主险";
                default:
                    return "";
            }
        }

        public static string GetInsureNumberType(int type)
        {
            switch (type)
            {
                case InsureNumberType.Low:
                    return "1-49";
                case InsureNumberType.Middle:
                    return "50-99";
                case InsureNumberType.Hight:
                    return "100人以上";
                default:
                    return "";
            }
        }

        /// <summary>
        /// 险种编码
        /// </summary>
        public static class InsuranceTypeCode
        {
            /// <summary>
            /// 意外险
            /// </summary>
            public const string Accident = "ACCIDENT";

            /// <summary>
            /// 雇主险
            /// </summary>
            public const string Employer = "EMPLOYER_LIABILITY";
        }
        /// <summary>
        /// 险种编码
        /// </summary>
        public static class InsureNumberType
        {
            /// <summary>
            /// 1~49
            /// </summary>
            public const int Low = 10;

            /// <summary>
            /// 50~99
            /// </summary>
            public const int Middle = 20;

            /// <summary>
            /// 100人以上
            /// </summary>
            public const int Hight = 30;
        }

        public static class RequestCode
        {
            /// <summary>
            /// 单笔代发查询
            /// </summary>
            public const string SingleTransaction = "Sig";

            /// <summary>
            /// 历史余额查询
            /// </summary>

            public const string HistoryBalance = "His";

            /// <summary>
            /// 明细查询
            /// </summary>
            public const string TransactionDetail = "Tra";

            /// <summary>
            /// 批量明细查询
            /// </summary>
            public const string BatchInquiriesRegulators = "Bat";

            /// <summary>
            /// 主账户的关系查询
            /// </summary>
            public const string PrimaryAcctRelationship = "Par";

            /// <summary>
            /// 货币类型
            /// </summary>
            public const string CcyCode = "RMB";

            /// <summary>
            /// 支付编号
            /// </summary>
            public const string StopPayment = "Flw";

            /// <summary>
            /// 查询银行余额
            /// </summary>
            public const string CorAcctBalance = "CAB";

            /// <summary>
            /// 止付代发
            /// </summary>
            public const string SingleApplicationSuspensionPayment = "SSP";

            /// <summary>
            /// 获取电子回单数据
            /// </summary>
            public const string DayHistoryReceiptData = "DHP";

            /// <summary>
            /// 根据电子回单获取File
            /// </summary>
            public const string DayHistoryReceiptFile = "DPF";

            /// <summary>
            /// 银行联行号查询
            /// </summary>
            public const string BankNo = "BNQ";

            /// <summary>
            /// 充值序号
            /// </summary>
            public const string Recharge = "CZ_";

            /// <summary>
            /// 支付宝商户签约
            /// </summary>
            public const string AlipayArgreementNo = "AliNo";

            /// <summary>
            /// 转账Pc
            /// </summary>
            public const string AlipayPagePay = "AliPagePay";

            /// <summary>
            /// 商户自身给记账本充值
            /// </summary>
            public const string AlipayCharge = "AliCharge";

            /// <summary>
            /// 记账本单笔代发到银行卡
            /// </summary>
            public const string AlipayTrans = "AlipayTrans";

            /// <summary>
            /// 记账本单笔代发到支付宝
            /// </summary>
            public const string AlipayToAlipay = "AliPayToAlipay";

            /// <summary>
            /// 批量付款
            /// </summary>
            public const string BatchTransfer = "Bth";

            /// <summary>
            /// 批量付款明细
            /// </summary>
            public const string BatchTransferDetail = "Btd";
        }

        /// <summary>
        /// 银行查询状态
        /// </summary>
        public static class PingAnBankBatchInquiriesStatusCode
        {
            public const string Success = "0000";

        }

        /// <summary>
        /// 止付操作类型  A-止付 D-解除止付
        /// </summary>
        public static class OpType
        {
            public const string StopPayment = "A";

            public const string CanPayment = "D";

        }

        /// <summary>
        /// 操作状态码
        /// </summary>
        public static class SttStatus
        {
            public const string Success = "20";
            public const string Fail = "30";

            public const string Process = "10";


        }

        public static class Wallet
        {
            public const string DefaultBankName = "平安银行";

            public const string SingleTransferRefundUseEx = "退款";

            public const string ExpenseCanNotUseMoneyUseEx = "从不可用余额中扣除";

            public const string WalletRechargeUseEx = "充值";
        }

        public static class FreezeStatus
        {
            public const string Validate = "0";
            public const string InValidate = "1";
        }

        public static class DateTimeFormatStr
        {
            public const string yyyyMMdd = "yyyyMMdd";

            public const string HHmmss = "HHmmss";

            public const string yyyyMM = "yyyyMM";

            public const string ShortDateFormat = "yyyy-MM-dd";
            public const string ShortMonthFormat = "yyyy-MM";
            public const string yyyyMMddHHmm = "yyyy-MM-dd HH:mm";

            public const string yyyyMMddHHmmssfff = "yyyyMMddHHmmssfff";
        }

        public static class BilType
        {
            public const int Day = 1;
            public const int Month = 2;

        }

        public static class DataRange
        {
            public const int PowerPerson = 10;

            public const int PowerAll = 100;

        }

        public static class DataRangePower
        {
            public const string PowerPerson = "_POWERPERSON";

            public const string PowerAll = "_POWERALL";

        }


    }
}