package org.springblade.yeePay.common;

import lombok.Getter;

/**
 * @author: lianghanqiang
 * @description: YEEPAY 常量
 * @since: 9/6/21 -- 1:41 PM
 */
public interface YeepayApiConstant {

	/**
	 * 入网商户的业务角色：
	 * SETTLED_MERCHANT:入驻商户；
	 * SHARE_MERCHANT：分账接收方（仅允许开通结算产品，到银行账户）
	 */
	@Getter
	enum businessRole {
		/*
		 a. 入驻商户：
		1、只能入驻到特定平台商的下级；2、目前仅支持事业单位/社会团体/企业/个体工商户的签约类型商户；
		*/
		SETTLED_MERCHANT,
		/*
		* 分账接收方：
		1、只能作为特定平台商的下级商户；2、目前仅支持事业单位/社会团体/企业/个体工商户的签约类型商户。
		* */
		SHARE_MERCHANT,
		/*
		* 平台商：
		1、经营线上或者线下交易撮合平台，可入驻上下游；2、目前仅支持事业单位/社会团体/企业的签约类型商户；
		* */
		PLATFORM_MERCHANT,
	}

	/**
	 * 商户签约类型
	 */
	@Getter
	enum signType {

		/*(个体工商户)：一般为个体户、个体工商户、个体经营。*/
		INDIVIDUAL,
		/*(企业)：一般为有限公司、有限责任公司。INSTITUTION(事业单位)：包括国内各级、各类政府机构、事业单位等（如：公安、党 团、司法、交通、旅游、工商税务、市政、医疗、教育、学校等机构）*/
		ENTERPRISE,
		/*(社会团体)*/
		COMMUNITY
	}

	/**
	 * 法人证件类型
	 */
	@Getter
	enum legalLicenceType {
		ID_CARD,    //(法人身份证)
		PASSPORT,    //(护照)
		HM_VISITORPASS,    //(港澳居民往来内地通行证)
		TAIWAN,    //(台胞证)
		SOLDIER,    //(士兵证)
		OFFICERS,    //(军官证)
	}

	/**
	 * 计费策略
	 */
	enum rateType {
		SINGLE_PERCENT, //单笔百分比
		SINGLE_FIXED, //单笔固定值
		FIXED_MIX_PERCENT, //单笔固定值+单笔百分比
		PERCENT_MIX_CAP //单笔百分比+封顶值。
	}

	/**
	 * 手续费承担方
	 */
	enum undertaker {
		SETTLED_MERCHANT,//（入驻商户，即本身）、
		USER,//（用户）
		ORDINARY_MERCHANT,//（标准商户）
		PLATFORM_MERCHANT, //平台商
		SAAS_SERVICE_PROVIDER // 服务商
	}

	/**
	 * 手续费收取方式
	 */
	enum paymentMethod {
		REAL_TIME,//（实收）、
		PREPAID_REAL,//（预付实扣）
		UN_REAL_TIME,//（后收，部分行业商户不支持，以跟商务约定的实际情况为准）
	}

	/**
	 * 结算账户信息---结算方向
	 */
	enum settlementDirection {
		ACCOUNT,//(结算到支付账户)
		BANKCARD //(结算到银行账户，对公账户/单位结算卡账户名称默认为商户签约名称；借记卡/存折账户名称默认为商户经营者/法人姓名。）
	}

	/**
	 * 结算账户信息---银行账户类型
	 */
	enum bankAccountType {
		UNIT_SETTLEMENT_CARD,//(单位结算卡)
		ENTERPRISE_ACCOUNT,//(对公账户)
		DEBIT_CARD,//(借记卡)
		PASSBOOK,//(存折)
		CREDIT_CARD,//贷记卡
		QUASI_CREDIT_CARD,//准贷卡
		PUBLIC_CARD,//对公卡
	}

	/**
	 * 生成聚合订单码---场景
	 */
	enum sceneType {
		ONLINE,//线上
		OFFLINE,//线下
		BAOXIAN,//保险
	}

	/**
	 * 付款码支付---分账订单标记
	 */
	enum fundProcessType {
		DELAY_SETTLE,//需要分账
		REAL_TIME,//不需要分账
	}

	/**
	 * 付款码支付---支付方式类型
	 */
	enum payWayType {
		MERCHANT_SCAN,//付款码支付
		USER_SCAN,//用户扫码
		MINI_PROGRAM,//小程序支付
		WECHAT_OFFIACCOUNT,//微信公众号
		ALIPAY_LIFE,//支付宝生活号
		JS_PAY,//JS支付
		SDK_PAY,//SDK支付
		H5_PAY,//H5支付
	}

	/**
	 * 付款码支付---渠道类型
	 */
	enum channelType {
		WECHAT,//微信
		ALIPAY,//支付宝
		UNIONPAY,//银联云闪付
		APPLEPAY,//苹果闪付
	}

	/**
	 * 付款码支付---是否限制贷记卡
	 */
	enum limitCredit {
		Y,//仅借记卡可以支付
		N,//借贷记卡均可支付
	}

	/**
	 * 撤销微信实名认证申请单---报告费
	 */
	enum reportFeeType {
		GONGYI,// 微信公益
		GONGJIAO,//微信公缴
		XIANXIA,// 微信线下
		BAOXIAN,// 微信保险
		XIANSHANG,// 微信线上
		OLDLVZHOU,// 微信老绿洲
		LVZHOU,// 微信绿洲
		XIAOYUAN,// 微信校园
	}

	/**
	 * 充值-网银下单---充值支付方式
	 */
	enum payType {
		B2C,//:个人网银
		B2B,//企业网银
		BANK_TRANSFER,//银行汇款
	}

	/**
	 * 转账-下单--手续费承担方
	 */
	enum feeChargeSide {
		OUTSIDE,//转出方承担,
		INSIDE,//转入方承担(若不传默认转出方承担)
	}

	/**
	 * 提现-下单---到账类型
	 */
	enum receiveType {
		REAL_TIME,//实时
		TWO_HOUR,//2小时到账
		NEXT_DAY,//次日到账（无特殊情况资金于次日上午7点左右到提现银行账户中）
	}

	/**
	 * 提现-下单---终端类型
	 */
	enum terminalType {
		PC,//电脑
		PHONE,//手机
		PAD,//平板
		NFC,//可穿戴设备
		DTV,//数字电视
		MPOS,//条码支付受理终端
		OTHER,//其他
	}

	/**
	 * 小微经营类型
	 */
	enum microBizType {
		MICRO_TYPE_STORE,//门店场所
		MICRO_TYPE_MOBILE,//流动经营/便民服务
		MICRO_TYPE_ONLINE,//线上商品/服务交易
	}


	/**
	 * 提现卡-修改/注销---银行卡操作类型
	 */
	enum bankCardOperateType {
		MODIFY,//修改
		CANCELLED,//注销
	}

	/**
	 * 付款-下单---手续费承担方
	 */
	enum feeSide {
		PAYER,//付款方
		PAYEE,//收款方
	}

	/**
	 * 付款到供应商--申请添加供应商---付款原因类型
	 */
	enum reasonType {
		SHFY,//商户返佣,
		GYSDK,//供应商打款,
		XJDWDK,//下级单位打款,
		QT,//其他
	}

	/**
	 * 付款到供应商--申请添加供应商---供应商类型
	 */
	enum supplierType {
		PERSON,//个人
		BUSINESS,//企业
	}

	/**
	 * 申请极速退款---退款资金来源
	 */
	enum refundAccountType {
		FUND_ACCOUNT,//支付账户余额
	}

	/**
	 * 微信实名认证状态
	 */
	enum applymentState {
		APPLYMENT_STATE_WAITTING_FOR_AUDIT,//审核中
		APPLYMENT_STATE_EDITTING,//编辑中
		APPLYMENT_STATE_WAITTING_FOR_CONFIRM_CONTACT,//待确认联系信息
		APPLYMENT_STATE_WAITTING_FOR_CONFIRM_LEGALPERSON,//待账户验证
		APPLYMENT_STATE_PASSED,//审核通过
		APPLYMENT_STATE_REJECTED,//审核驳回
		APPLYMENT_STATE_FREEZED,//已冻结(该主体已完成过商家注册，无需重复注册)
		APPLYMENT_STATE_CANCELED,//已作废
		COMPLETED,//完成
	}

	/**
	 * 自助结算申请---结算时间范围
	 */
	enum operatePeriod {
		PERIOD,//按照指定的时间区间结算
		ALL,//结算当前全部未结算可结算交易
	}

	/**
	 * 电子回单-下载---交易类型
	 */
	enum tradeType {
		TRANSFER,//企业账户转账
		PAY,//企业付款
		RECHARGE,//企业账户充值
	}

	/**
	 * 资金账单申请---账户类型
	 */
	enum accountType {
		FUND_ACCOUNT,//资金账户
		SETTLE_ACCOUNT,//待结算账户
		DIVIDE_ACCOUNT,//待分账账户
		FEE_ACCOUNT,//手续费账户
		BASIC_ACCOUNT,//基本账户
		SPECIAL_FUND_ACCOUNT,//专款账户
	}

	/**
	 * 账户对账单-下载---账单类型
	 */
	enum bizType {
		UA_PAY,//企业付款
		UA_PAY_REFUND,//企业付款冲退
		UA_WITHDRAW,//企业账户提现
		UA_WITHDRAW_REFUND,//企业账户提现冲退
		UA_TRANSFER,//企业账户转账
		UA_RECHARGE,//企业账户充值
		TOGETHERANDALLOCATE,//集团资金划拨
	}

	/**
	 * ypPromotionInfo 营销收款类型
	 */
	enum ypPromotionInfo {
		/**
		 * 自定义金额立减
		 * 用户支付金额=订单金额-自定义立减金额
		 * 商户入账金额=订单金额
		 */
		CUSTOM_REDUCTION,
		/**
		 * 自定义金额补贴用户
		 * 支付金额=订单金额商户
		 * 入账金额=订单金额+自定义补贴金额
		 */
		CUSTOM_ALLOWANCE
	}

	/**
	 * 公众号配置接口---appId类型
	 */
	enum appIdType {
		OFFICIAL_ACCOUNT,//公众号；
		MINI_PROGRAM//小程序
	}
}
