package com.ningdatech.pmapi.projectlib.model.req;

import com.ningdatech.basic.model.PagePo;
import com.ningdatech.pmapi.common.enumeration.ExportOptionEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * ProjectLibListReq
 * </p>
 *
 * @author WendyYang
 * @since 14:35 2023/2/1
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("项目列表查询")
@EqualsAndHashCode(callSuper = true)
public class ProjectListReq extends PagePo {

    @ApiModelProperty("区域编码")
    private String regionCode;

    @ApiModelProperty("项目名称")
    private String projectName;

    @ApiModelProperty("申报单位")
    private String buildOrg;
    @ApiModelProperty("申报单位code")
    private String buildOrgCode;

    @ApiModelProperty("项目类型")
    private Integer projectType;

    @ApiModelProperty("预算年度")
    private Integer projectYear;

    @ApiModelProperty("项目阶段")
    private Integer stage;

    @ApiModelProperty("项目状态")
    private Integer status;

    @ApiModelProperty("申报金额")
    private BigDecimal declareAmountMin;

    @ApiModelProperty("申报金额")
    private BigDecimal declareAmountMax;

    @ApiModelProperty("批复金额")
    private BigDecimal approveAmountMin;

    @ApiModelProperty("批复金额")
    private BigDecimal approveAmountMax;

    @ApiModelProperty("创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    private LocalDateTime createOnMin;

    @ApiModelProperty("创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    private LocalDateTime createOnMax;

    @ApiModelProperty("用户ID")
    private Long userId;

    @ApiModelProperty("是否临时增补 0:否 1:是")
    private Integer isTemporaryAugment;

    @ApiModelProperty("项目阶段 多个")
    private List<Integer> stageList;

    @ApiModelProperty("项目状态 多个")
    private List<Integer> statusList;

    @ApiModelProperty("实例code 多个")
    private List<String> instCodes;

    @ApiModelProperty("导出选项")
    private List<ExportOptionEnum> exportOptionList;

    @ApiModelProperty(value = "表格类型",allowableValues = "0,1")
    private Integer tableFlag;
}
