package com.trade.service.finance.paymentcollection.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * @description: 入账申请dto
 * @Author: wanglang
 * @Date: 2024/10/22
 * @Version: 1.0
 */
@Data
public class EntryApplyDto {

    @ApiModelProperty(name = "customerUserId", value = "客户id")
    @NotNull(message = "客户id不能为空")
    private Long customerUserId;
    @ApiModelProperty(name = "financierIdentifier", value = "资金方标识")
    @NotBlank(message = "资金方标识不能为空")
    private String financierIdentifier;
    @ApiModelProperty(name = "importerCertNo", value = "进口商统一社会信用代码/注册号")
    @NotBlank(message = "进口商统一社会信用代码不能为空")
    private String importerCertNo;
    @ApiModelProperty(name = "importerEnterpriseName", value = "进口商企业名称")
    @NotBlank(message = "进口商企业名称不能为空")
    private String importerEnterpriseName;
    @ApiModelProperty(name = "agencyCertNo", value = "代理公司统一社会信用代码/注册号")
    @NotBlank(message = "代理公司统一社会信用代码不能为空")
    private String agencyCertNo;
    @ApiModelProperty(name = "agencyEnterpriseName", value = "代理公司企业名称")
    @NotBlank(message = "代理公司企业名称不能为空")
    private String agencyEnterpriseName;
    @ApiModelProperty(name = "contractName", value = "合同名称")
    @NotBlank(message = "合同名称不能为空")
    private String contractName;
    @ApiModelProperty(name = "salesContractNo", value = "合同编号")
    @NotBlank(message = "合同编号不能为空")
    private String salesContractNo;
    @ApiModelProperty(name = "applyAmount", value = "申请金额")
    @NotNull(message = "申请入账金额不能为空")
    private BigDecimal applyAmount;
    @ApiModelProperty(name = "currencyCode", value = "申请币种")
    @NotBlank(message = "申请币种不能为空")
    private String applyCurrency;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @ApiModelProperty(name = "applyEntryDate", value = "入账日期")
    @NotNull(message = "申请入账日期不能为空")
    private LocalDate applyEntryDate;
}
