package com.sckw.report.service.param;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.sckw.core.model.page.PageRequest;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.validator.constraints.Range;

import java.time.LocalDate;

/**
 * @desc: 贸易订单对账单列表请求参数
 * @author: yzc
 * @date: 2023-07-20 14:43
 */
@Getter
@Setter
@ToString
public class TradeOrderStatementList extends PageRequest {

    /**
     * 订单类型（1采购订单2销售订单）
     */
    @Range(min = 1, max = 2, message = "非法订单类型")
    @NotNull(message = "订单类型不能为空")
    private Integer orderType;

    /**
     * 采购单位id
     */
    private Long procureEntId;

    /**
     * 计划开始时间（yyyy-MM-dd）
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate startTime;

    /**
     * 计划结束时间（yyyy-MM-dd）
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate endTime;

    /**
     * 交易方式(预付款、货到付款）
     */
    private String trading;

    /**
     * 商品税率
     */
    private String goodsTaxRate;

    /**
     * 商品名称
     */
    private String goodsName;

    /**
     * 排除订单ids
     */
    private String excludeIds;
}
