package cn.com.ty.lift.business.maintenance.dao.entity.model.request;

import cn.com.ty.lift.business.maintenance.dao.entity.MaintenanceRecord;
import cn.com.ty.lift.common.model.PageRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.*;
import java.time.LocalDate;
import java.util.List;

/**
 * @author bieao
 * @date 2020/1/6
 * @description 保养信息请求
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class MaintenanceRecordRequest extends PageRequest {
    /**
     * 公司ID
     */
    @NotNull(message = "公司ID不能为空")
    @Min(value = 1, message = "维保公司ID有误")
    private Long mtCompanyId;
    /**
     * 电梯ID
     */
    @NotNull(message = "电梯ID不能为空")
    @Min(value = 1, message = "电梯ID有误")
    private Long liftId;

    /**
     * 项目ID
     */
    @NotNull(message = "项目ID不能为空")
    @Min(value = 1, message = "项目ID有误")
    private Long projectId;

    /**
     * 维保工ID
     */
    @NotNull(message = "维保工ID不能为空")
    @Min(value = 1, message = "维保工ID有误")
    private Long workerId;

    /**
     * 保养记录ID
     */
    @NotNull(message = "保养记录ID不能为空")
    @Min(value = 1, message = "保养记录ID有误")
    private Long id;

    /**
     * 用户ID
     */
    @NotNull(message = "用户ID不能为空")
    @Min(value = 1, message = "用户ID有误")
    private Long userId;

    /**
     * 维保计划状态
     */
    @NotBlank(message = "维保计划状态不能为空")
    private String status;

    /**
     * 维保工经纬度
     */
    @NotBlank(message = "维保工经纬度不能为空")
    private String coordinate;

    /**
     * 当前日期
     */
    @NotNull(message = "当前日期不能为空")
    private LocalDate currentTime;

    /**
     * 开始日期
     */
    @NotNull(message = "开始日期不能为空")
    private LocalDate beginTime;

    /**
     * 当前用户角色
     */
    private String currentRoleCode;


    /**
     * 是否能查看到项目组其他维保工的任务
     */
    private String look;

    /**
     * 期数 1-24
     */
    @NotNull(message = "期数不能为空")
    @Min(value = 1, message = "期数最小值为1")
    @Max(value = 24, message = "期数最大值为24")
    private Integer periods;


    /**
     * 结束日期
     */
    @NotNull(message = "结束日期不能为空")
    private LocalDate endTime;

    /**
     * 保养图片列表
     */
    @NotEmpty(message = "保养单列表不能为空")
    private List<String> recordImageList;

    /**
     * 保养信息
     */
    @NotNull(message = "保养信息不能为空")
    private MaintenanceRecord record;
}
