package com.hotwj.platform.config.companyBasicConfig.domain.bo;

import com.hotwj.platform.config.companyBasicConfig.domain.HotCompanyBasicConfig;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;

/**
 * 企业基础配置业务对象 hot_company_basic_config
 *
 * @author shihongwei
 * @date 2025-12-29
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = HotCompanyBasicConfig.class, reverseConvertGenerate = false)
public class HotCompanyBasicConfigBo extends BaseEntity {

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

    /**
     * 公司ID
     */
    @NotNull(message = "公司ID不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long companyId;

    /**
     * 是否补学 0=关闭 1=开启
     */
    @NotNull(message = "是否补学 0=关闭 1=开启不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long makeUpStudyEnabled;

    /**
     * 禁学区间是否开启 0=关闭 1=开启
     */
    @NotNull(message = "禁学区间是否开启 0=关闭 1=开启不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long forbidPeriodEnabled;

    /**
     * 禁学开始时间
     */
    private String forbidStartTime;

    /**
     * 禁学结束时间
     */
    private String forbidEndTime;

    /**
     * 学习短信提醒是否开启 0=关闭 1=开启
     */
    @NotNull(message = "学习短信提醒是否开启 0=关闭 1=开启不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long studySmsEnabled;

    /**
     * 剩余短信数量
     */
    @NotNull(message = "剩余短信数量不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long remainingSmsCount;

    /**
     * 0=正常, 1=已删除
     */
//    @NotNull(message = "0=正常, 1=已删除不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long isDeleted;

    /**
     * 隐患排查规则（1=周 2=月 3=季度 4=半年 5=年）
     */
    private Long hiddenDangerRole;

    /**
     * 隐患排查规则是否启用（0=否 1=是）
     */
    private Long roleIsEnable;


}
