package com.sckw.payment.model.vo.req;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.sckw.core.model.base.IdsList;
import jakarta.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @author xucaiqin
 * @date 2023-07-10 17:05:28
 */
@Getter
@Setter
public class LogisticsSendReq implements IdsList {

    private String id;
    /**
     * 托运单位（客户单位）
     */
    @NotNull(message = "客户单位不能为空")
    private String checkEntId;

    /**
     * 名称
     */
    @Size(max = 25, message = "对账表名称不能超过25字")
    @NotBlank(message = "对账表名称不能为空")
    private String name;
    /**
     * 开始日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
//    @NotNull(message = "计划开始日期不能为空")
    private String startTime;
    /**
     * 结束日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
//    @NotNull(message = "计划结束日期不能为空")
    private String endTime;
    /**
     * 实际结算金额
     */
    @NotNull(message = "实际结算金额不能为空")
    @PositiveOrZero(message = "实际结算金额必须大于等于0")
    private BigDecimal settlePrice;
    /**
     * 发票税率（%）
     */
    @NotNull(message = "发票税率（%）不能为空")
    private Integer taxRate;
    /**
     * 交易方式
     */
    @NotNull(message = "付款方式不能为空")
    private String trading;
    /**
     * 总应收/元
     */
    @NotNull(message = "总应收不能为空")
    @PositiveOrZero(message = "总应收必须大于等于0")
    private BigDecimal totalPrice;
    /**
     * 扣款金额
     */
//    @NotNull(message = "扣款金额不能为空")
//    @PositiveOrZero(message = "扣款金额必须大于等于0")
    private BigDecimal deductPrice;
    /**
     * 备注
     */
    @Size(max = 200, message = "备注不能超过200字")
    private String remark;
    /**
     * 承运订单
     */
    @NotEmpty(message = "承运订单不能为空")
    private String ids;

    private LocalDateTime generateTime;
    private Integer status;


}
