package com.yn.bftl.thirdparty.modules.chinaums.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yn.bftl.thirdparty.modules.chinaums.dto.chinaums.ChinaumsCreateMchDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 二级商户进件DTO
 *
 * @author huabiao
 * @create 2022/12/6  14:04
 **/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "MchCreateDTO", description = "二级商户进件DTO")
public class MchCreateDTO extends ChinaumsCreateMchDTO {

    @ApiModelProperty(value = "营业期限开始时间,格式:yyyy-MM-dd HH:mm:ss", required = true)
    @NotNull
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime businessLicenseStartTime;

    @ApiModelProperty(value = "营业期限结束时间,格式:yyyy-MM-dd HH:mm:ss,有效期必须大于60天", notes = "若为空则为长期有效")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime businessLicenseEndTime;

    @ApiModelProperty(value = "组织机构代码开始时间,格式:yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime organizationCertStartTime;

    @ApiModelProperty(value = "组织机构代码结束时间,格式:yyyy-MM-dd HH:mm:ss,有效期必须大于60天",notes = "若为空则为长期有效")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime organizationCertEndTime;

    @ApiModelProperty(value = "法人证件开始时间,格式:yyyy-MM-dd HH:mm:ss", required = true)
    @NotNull
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime legalPersonIdCardStartTime;

    @ApiModelProperty(value = "法人证件结束时间,格式:yyyy-MM-dd HH:mm:ss,有效期必须大于60天", notes = "若为空则为长期有效")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime legalPersonIdCardEndTime;

    @ApiModelProperty(value = "联系人证件开始时间,格式:yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime contactIdCardStartTime;

    @ApiModelProperty(value = "联系人证件结束时间,格式:yyyy-MM-dd HH:mm:ss", notes = "若为空则为长期有效")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime contactIdCardEndTime;

    @ApiModelProperty(value = "是否填写联系人", required = true)
    @NotNull
    private Boolean isFillContact;

    @ApiModelProperty(value = "营业执照扫描件ID", required = true)
    @NotNull
    private Long businessLicenseCopyId;

    @ApiModelProperty(value = "组织机构代码证件照片ID")
    private Long organizationCertCopyId;

    @ApiModelProperty(value = "税务登记证照片ID")
    private Long taxRegistrationCertCopyId;

    @ApiModelProperty(value = "法人证件人像面照片ID", required = true)
    @NotNull
    private Long legalPersonIdCardCopyId;

    @ApiModelProperty(value = "法人证件国徽面照片ID", required = true)
    @NotNull
    private Long legalPersonIdCardNationalId;

    @ApiModelProperty(value = "联系人身份证人像面照片ID")
    private Long contactIdCardCopyId;

    @ApiModelProperty(value = "联系人证件国徽面照片ID")
    private Long contactIdCardNationalId;

    @ApiModelProperty(value = "开户银行名称",required = true)
    @NotBlank
    private String settleAcctBankName;

}
