package com.ruoyi.ss.channel.domain;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.domain.ValidGroup;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NonNull;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * 充值渠道对象 e_channel
 *
 * @author ruoyi
 * @date 2024-04-15
 */
@Data
public class Channel extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @NotNull(message = "渠道id不能为空", groups = {ValidGroup.Update.class})
    private Long channelId;

    /** 渠道名称 */
    @Excel(name = "渠道名称")
    private String name;

    /** 渠道代码 */
    @Excel(name = "渠道代码")
    private String code;

    /** 充值渠道类型：1-平台渠道；2-商户专属 */
    @Excel(name = "充值渠道类型")
    private String type;

    /** 是否启用 */
    @Excel(name = "是否启用")
    private Boolean enabled;

    /** 成本率% */
    @Excel(name = "成本率%")
    @Min(value = 0, message = "成本率不允许低于0", groups = {ValidGroup.Update.class, ValidGroup.Create.class})
    private BigDecimal costRate;

    @ApiModelProperty("渠道图片")
    private String picture;

    /** merchantId */
    private String merchantId;

    /** apiV3Key */
    private String apiV3Key;

    /** 通知回调地址 */
    private String notifyUrl;

    /** 密钥所在位置 */
    private String privateKeyPath;

    /** 证书序列号 */
    private String merchantSerialNumber;

    /** 退款回调地址 */
    private String refundNotifyUrl;

    /** appid */
    private String appid;

    private String developerId;

    /** 门店Id */
    private String shopId;

    private String httpUrl;

    private String signKey;

    /** 终端sn */
    private String sn;

    /** 平台:1-微信；2-支付宝  */
    private String platform;

    /** 应用私钥  */
    private String privateKey;

    /** 应用公钥证书路径  */
    private String appCertPath;

    /** 支付宝公钥证书路径  */
    private String alipayPublicCertPath;

    /** 支付宝根证书路径平台  */
    private String rootCertPath;

    /** AES秘钥  */
    private String aesPrivateKey;

}
