package com.bonus.material.settlement.domain.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * 区间费用查询DTO
 *
 * @author system
 * @date 2024-12-30
 */
@Data
@ApiModel("区间费用查询DTO")
@Accessors(chain = true)
public class PeriodCostQueryDto {

    @ApiModelProperty(value = "开始日期", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd")
    @NotNull(message = "开始日期不能为空")
    private Date startDate;

    @ApiModelProperty(value = "结束日期", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd")
    @NotNull(message = "结束日期不能为空")
    private Date endDate;

    @ApiModelProperty(value = "协议ID列表")
    private List<Long> agreementIds;

    @ApiModelProperty(value = "协议ID")
    private Long agreementId;

    @ApiModelProperty(value = "往来单位ID列表")
    private List<Long> unitIds;

    @ApiModelProperty(value = "工程标段ID列表")
    private List<Long> projectIds;

    @ApiModelProperty(value = "机具规格ID列表")
    private List<Long> typeIds;

    @ApiModelProperty(value = "结算状态 0-未结算 1-已结算")
    private String settlementStatus;

    @ApiModelProperty(value = "协议编号")
    private String agreementCode;

    @ApiModelProperty(value = "往来单位名称")
    private String unitName;

    @ApiModelProperty(value = "工程标段名称")
    private String projectName;

    @ApiModelProperty(value = "结算管理类型 1工器具 2安全工器具")
    private Integer sltManageType;

    @ApiModelProperty(value = "数据所属组织ID")
    private Long companyId;
}
