package org.dromara.elevator.domain.bo;

import org.dromara.elevator.domain.EMaintenanceInfo;
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.*;
import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 维保单位基础信息;业务对象 e_maintenance_info
 *
 * @author zy
 * @date 2024-07-26
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = EMaintenanceInfo.class, reverseConvertGenerate = false)
public class EMaintenanceInfoBo extends BaseEntity {

    /**
     * 主键id
     */
    private Long id;

    /**
     * 组织id
     */
    private String organizationId;

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

    /**
     * 维保单位
     */
    @NotBlank(message = "维保单位不能为空", groups = { AddGroup.class, EditGroup.class })
    private String name;

    /**
     * 营业执照名称
     */
    @NotBlank(message = "营业执照名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String licenseName;

    /**
     * 地址
     */
    @NotBlank(message = "地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String address;

    /**
     * 行政区域
     */
    private String areaCode;

    /**
     * 经度
     */
    private BigDecimal lng;

    /**
     * 纬度
     */
    private BigDecimal lat;

    /**
     * 维保负责人
     */
    @NotBlank(message = "维保负责人不能为空", groups = { AddGroup.class, EditGroup.class })
    private String principal;

    /**
     * 维保负责人手机
     */
    @NotBlank(message = "维保负责人手机不能为空", groups = { AddGroup.class, EditGroup.class })
    private String principalPhone;

    /**
     * 资质有效期
     */
    private LocalDate validDate;

    /**
     * 资质证书编号
     */
    private String certificateNumber;

    /**
     * 资质等级
     */
    private String level;

    /**
     * 组织机构代码
     */
    private String institutionCode;

    /**
     * 许可信息
     */
    private String licence;

    /**
     * 24 小时值班电话
     */
    @NotBlank(message = "24 小时值班电话不能为空", groups = { AddGroup.class, EditGroup.class })
    private String telephone;

    /**
     * 法人代表
     */
    private String legal;

    /**
     * 法人手机
     */
    private String legalPhone;

    /**
     * 应急救援负责人
     */
    private String urgency;

    /**
     * 应急救援负责人手机
     */
    private String urgencyPhone;

    /**
     * 备注
     */
    private String remark;

    /**
     * 部门id
     */
    private Long deptId;

}
