package com.cool.store.dto.wallet;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;


/**
 * 门店签约人账户
 * @Author suzhuhong
 * @Date 2025/11/13 16:54
 * @Version 1.0
 */
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AccountInfoDTO {

    @ApiModelProperty(value = "结算卡业务类型 枚举值：1：对公 2：对私", required = true)
    private Integer accountType;

    @ApiModelProperty(value = "工商类型 1.企业 2.个体工商户 3.自然人", required = true)
    private Integer businessType;

    @ApiModelProperty(value = "钱包类型 1.平安 2.网商", required = true)
    private Integer walletType;

    @ApiModelProperty(value = "营业执照号码")
    private String licenseNo;

    @ApiModelProperty(value = "工商注册名称")
    private String licenseName;

    @ApiModelProperty(value = "法人姓名,用于实名认证企业的法人姓名")
    private String legalName;

    @ApiModelProperty(value = "法人证件号码")
    private String legalNo;

    @ApiModelProperty(value = "法人联系电话(企业与个体户必传)")
    private String legalPhone;

    @ApiModelProperty(value = "法人银行卡号")
    private String legalAccountCardNo;

    @ApiModelProperty(value = "法人银行预留手机号")
    private String legalAccountPhone;

    @ApiModelProperty(value = "法人银行卡开户支行")
    private String legalBankNo;

    @ApiModelProperty(value = "法人银行卡开户支行名称")
    private String legalBankName;

    @ApiModelProperty(value = "门店编号", required = true)
    private String storeSn;

    @ApiModelProperty(value = "账户编号", required = true)
    private String accountNo;

    @ApiModelProperty(value = "账户名称", required = true)
    private String accountName;

    @ApiModelProperty(value = "账户别名", required = true)
    private String accountAliasName;

    @ApiModelProperty(value = "结算银行卡号", required = true)
    private String accountCardNo;

    @ApiModelProperty(value = "结算卡银行预留手机号", required = true)
    private String accountPhone;

    @ApiModelProperty(value = "开户支行名称", required = true)
    private String bankName;

    @ApiModelProperty(value = "开户支行号", required = true)
    private String bankNo;

    @ApiModelProperty(value = "开户总行名称")
    private String headBankName;

    @ApiModelProperty(value = "账户状态 1-待提交 2-待鉴权 3-鉴权中 4-开通 5-失败", required = true)
    private Integer accountStatus;

    @ApiModelProperty(value = "账户总余额", required = true)
    private String totalAmount;

    @ApiModelProperty(value = "冻结金额", required = true)
    private String freezeAmount;

    @ApiModelProperty(value = "可提现余额(平安账户此字段金额等于账户余额，网商账户充值金额只能用于协议代扣，无法用于提现，所以网商账户可提现余额可能小于账户余额）", required = true)
    private String withdrawAmount;

    @ApiModelProperty(value = "打标状态 0-未打标 1-已打标", required = true)
    private Integer labelingStatus;

    @ApiModelProperty(value = "是否签约人账户 0-否 1-是", required = true)
    private Integer isLegal;

    @ApiModelProperty(value = "失败原因(仅网商在创建失败或激活失败时返回)")
    private String errMsg;

    @ApiModelProperty(value = "法人和签约人的关系 myself-本人 parent-父母 children-子女 landlord-房东 friend-朋友 bro_and_sister-兄弟姐妹 partner-合伙人 couple-夫妻")
    private String relation;

    @ApiModelProperty(value = "网商激活短链（平安不返回），调用重新发送后会变")
    private String activityUrl;

    @ApiModelProperty(value = "crm门店id")
    private String outStoreId;

}
