package cn.iocoder.yudao.module.asset.controller.admin.contract.vo;

import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDate;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;

/**
 * 车辆租赁合同分页查询 Request VO
 *
 * @author 芋道源码
 */
@Schema(description = "管理后台 - 车辆租赁合同分页查询 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ContractPageReqVO extends PageParam {

    @Schema(description = "合同编码", example = "HT-2026-001")
    private String contractCode;

    @Schema(description = "合同类型（1=试用 2=正式）", example = "1")
    private Integer contractType;

    @Schema(description = "项目名称（模糊搜索）", example = "张江高科技园区")
    private String projectName;

    @Schema(description = "客户ID", example = "1")
    private Long customerId;

    @Schema(description = "客户名称（模糊搜索）", example = "上海某某科技")
    private String customerName;

    @Schema(description = "审批状态（0=草稿 1=审批中 2=审批通过 3=审批拒绝 4=已撤回）", example = "0")
    private Integer approvalStatus;

    @Schema(description = "合同状态（0=草稿 1=待生效 2=进行中 3=已到期 4=已终止 5=已续签）", example = "0")
    private Integer contractStatus;

    @Schema(description = "生效日期", example = "[2026-01-01, 2026-12-31]")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private LocalDate[] startDate;

    @Schema(description = "结束日期", example = "[2026-01-01, 2026-12-31]")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private LocalDate[] endDate;

    @Schema(description = "业务部门ID", example = "1")
    private Long businessDeptId;

    @Schema(description = "签约公司", example = "嘉兴羚牛")
    private String signingCompany;

    @Schema(description = "业务负责人ID", example = "1")
    private Long businessManagerId;

    @Schema(description = "创建人", example = "admin")
    private String creator;

}
