package org.dromara.elevator.domain.bo;

import org.dromara.elevator.domain.EWorkElevatorCabin;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

/**
 * 工作记录轿厢信息业务对象 e_work_elevator_cabin
 *
 * @author ym
 * @date 2024-10-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = EWorkElevatorCabin.class, reverseConvertGenerate = false)
public class EWorkElevatorCabinBo extends BaseEntity {

    /**
     * 主键id
     */
    @NotNull(message = "主键id不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 电梯编号
     */
    @NotBlank(message = "电梯编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String elevatorNum;

    /**
     * 工作id
     */
    @NotNull(message = "工作id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long workId;

    /**
     * 维保计划id
     */
    @NotNull(message = "维保计划id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long maintenancePlanId;

    /**
     * 轿厢照明、风扇、应急照明状态
     */
    @NotNull(message = "轿厢照明、风扇、应急照明状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer fanLightState;

    /**
     * 轿厢照明、风扇、应急照明备注
     */
    @NotBlank(message = "轿厢照明、风扇、应急照明备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String fanLightRemark;

    /**
     * 轿厢检修开关、停止装置状态
     */
    @NotNull(message = "轿厢检修开关、停止装置状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer switchDeviceState;

    /**
     * 轿厢检修开关、停止装置备注
     */
    @NotBlank(message = "轿厢检修开关、停止装置备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String switchDeviceRemark;

    /**
     * 轿内报警装置、对讲系统状态
     */
    @NotNull(message = "轿内报警装置、对讲系统状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer alarmIntercomState;

    /**
     * 轿内报警装置、对讲系统备注
     */
    @NotBlank(message = "轿内报警装置、对讲系统备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String alarmIntercomRemark;

    /**
     * 轿内显示、指令按钮、IC卡系统状态
     */
    @NotNull(message = "轿内显示、指令按钮、IC卡系统状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer displayButtonCardState;

    /**
     * 轿内显示、指令按钮、IC卡系统备注
     */
    @NotBlank(message = "轿内显示、指令按钮、IC卡系统备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String displayButtonCardRemark;

    /**
     * 轿门防撞击保护装置（安全触板光幕、光电等）状态
     */
    @NotNull(message = "轿门防撞击保护装置（安全触板光幕、光电等）状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer protectorState;

    /**
     * 轿门防撞击保护装置（安全触板光幕、光电等）备注
     */
    @NotBlank(message = "轿门防撞击保护装置（安全触板光幕、光电等）备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String protectorRemark;

    /**
     * 轿门门锁电气触点状态
     */
    @NotNull(message = "轿门门锁电气触点状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer doorLockContactState;

    /**
     * 轿门门锁电气触点备注
     */
    @NotBlank(message = "轿门门锁电气触点备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String doorLockContactRemark;

    /**
     * 轿门运行状态
     */
    @NotNull(message = "轿门运行状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer doorOperationStete;

    /**
     * 轿门运行备注
     */
    @NotBlank(message = "轿门运行备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String doorOperationRemark;

    /**
     * 轿厢平层准确度状态
     */
    @NotNull(message = "轿厢平层准确度状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer levelingAccuracyState;

    /**
     * 轿厢平层准确度备注
     */
    @NotBlank(message = "轿厢平层准确度备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String levelingaccuracyRemark;

    /**
     * 层站召唤、层楼显示状态
     */
    @NotNull(message = "层站召唤、层楼显示状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer callDisplayState;

    /**
     * 层站召唤、层楼显示备注
     */
    @NotBlank(message = "层站召唤、层楼显示备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String callDisplayRemark;

    /**
     * 层门地坎状态
     */
    @NotNull(message = "层门地坎状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer landingSillsState;

    /**
     * 层门地坎备注
     */
    @NotBlank(message = "层门地坎备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String landingSillsRemark;

    /**
     * 层门自动关门装置状态
     */
    @NotNull(message = "层门自动关门装置状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer autoCloseState;

    /**
     * 层门自动关门装置备注
     */
    @NotBlank(message = "层门自动关门装置备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String autoCloseRemark;

    /**
     * 层门门锁自动复位状态
     */
    @NotNull(message = "层门门锁自动复位状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer doorLockResetState;

    /**
     * 层门门锁自动复位备注
     */
    @NotBlank(message = "层门门锁自动复位备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String doorLockResetRemark;

    /**
     * 层门门锁电气触点状态
     */
    @NotNull(message = "层门门锁电气触点状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer electricalContactState;

    /**
     * 层门门锁电气触点备注
     */
    @NotBlank(message = "层门门锁电气触点备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String electricalContactRemark;

    /**
     * 层门锁紧元件啮合长度状态
     */
    @NotNull(message = "层门锁紧元件啮合长度状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer componentLengthState;

    /**
     * 层门锁紧元件啮合长度备注
     */
    @NotBlank(message = "层门锁紧元件啮合长度备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String componentLengthRemark;

    /**
     * 减速机润滑油状态
     */
    @NotNull(message = "减速机润滑油状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer gearboxLubricantState;

    /**
     * 减速机润滑油备注
     */
    @NotBlank(message = "减速机润滑油备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String gearboxLubricantRemark;

    /**
     * 制动衬状态
     */
    @NotNull(message = "制动衬状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer brakeLiningState;

    /**
     * 制动衬备注
     */
    @NotBlank(message = "制动衬备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String brakeLiningRemark;

    /**
     * 编码器状态
     */
    @NotNull(message = "编码器状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer encoderState;

    /**
     * 编码器备注
     */
    @NotBlank(message = "编码器备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String encoderRemark;

    /**
     * 选层器动静触点状态
     */
    @NotNull(message = "选层器动静触点状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer movementContactState;

    /**
     * 选层器动静触点备注
     */
    @NotBlank(message = "选层器动静触点备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String movementContactRemark;

    /**
     * 曳引轮槽、悬挂装置状态
     */
    @NotNull(message = "曳引轮槽、悬挂装置状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer wheelGrooveSuspensionState;

    /**
     * 曳引轮槽、悬挂装置备注
     */
    @NotBlank(message = "曳引轮槽、悬挂装置备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String wheelGrooveSuspensionRemark;

    /**
     * 电动机与减速机联轴器状态
     */
    @NotNull(message = "电动机与减速机联轴器状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer couplingState;

    /**
     * 电动机与减速机联轴器备注
     */
    @NotBlank(message = "电动机与减速机联轴器备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String couplingRemark;

    /**
     * 驱动轮、导向轮轴承部状态
     */
    @NotNull(message = "驱动轮、导向轮轴承部状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer bearingState;

    /**
     * 驱动轮、导向轮轴承部备注
     */
    @NotBlank(message = "驱动轮、导向轮轴承部备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String bearingRemark;

    /**
     * 曳引轮槽状态
     */
    @NotNull(message = "曳引轮槽状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer tractionSheaveState;

    /**
     * 曳引轮槽备注
     */
    @NotBlank(message = "曳引轮槽备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String tractionSheaveRemark;

    /**
     * 减速机润滑油状态(年检更换)
     */
    @NotNull(message = "减速机润滑油状态(年检更换)不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer lubricationChangeState;

    /**
     * 减速机润滑油备注(年检更换)
     */
    @NotBlank(message = "减速机润滑油备注(年检更换)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String lubricationChangeRemark;

    /**
     * 控制柜接触器，继电器触点状态
     */
    @NotNull(message = "控制柜接触器，继电器触点状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer relayContactState;

    /**
     * 控制柜接触器，继电器触点备注
     */
    @NotBlank(message = "控制柜接触器，继电器触点备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String relayContactRemark;

    /**
     * 制动器铁芯（柱塞）状态
     */
    @NotNull(message = "制动器铁芯（柱塞）状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer ironCoreState;

    /**
     * 制动器铁芯（柱塞）备注
     */
    @NotBlank(message = "制动器铁芯（柱塞）备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String ironCoreRemark;

    /**
     * 制动器制动能力状态
     */
    @NotNull(message = "制动器制动能力状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer brakeCapacityState;

    /**
     * 制动器制动能力备注
     */
    @NotBlank(message = "制动器制动能力备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String brakeCapacityRemark;

    /**
     * 导电回路绝缘性能测试状态
     */
    @NotNull(message = "导电回路绝缘性能测试状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer isolationState;

    /**
     * 导电回路绝缘性能测试备注
     */
    @NotBlank(message = "导电回路绝缘性能测试备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String isolationRemark;

    /**
     * 限速器安全钳联动试验状态
     */
    @NotNull(message = "限速器安全钳联动试验状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer speedLimiterState;

    /**
     * 限速器安全钳联动试验备注
     */
    @NotBlank(message = "限速器安全钳联动试验备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String speedLimiterRemark;

    /**
     * 部门id
     */
    @NotNull(message = "部门id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long deptId;


}
