package com.sundot.airport.exam.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sundot.airport.exam.common.model.BaseEntity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <b>功能名：</b>DailyTaskConfig<br>
 * <b>说明：</b> 每日答题任务配置表 <br>
 * <b>著作权：</b> Copyright (C) 2025 SUNDOT CORPORATION<br>
 * <b>修改履历：
 *
 * @author Simon Lin
 */
@TableName("edu_cs_daily_task_config")
public class DailyTaskConfig extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 业务主键
     */
    private String dtcId;

    /**
     * 配置名称
     */
    private String dtcName;

    /**
     * 适用角色ID（多个用逗号分隔，如：101,102,103，对应sys_role表的role_id）
     */
    private String dtcRoles;

    /**
     * 适用部门ID（多个用逗号分隔）
     */
    private String dtcDeptIds;

    /**
     * 每日套数
     */
    private Integer dtcDailySets;

    /**
     * 每套题量
     */
    private Integer dtcQuestionsPerSet;

    /**
     * 答题时间限制（秒）
     */
    private Integer dtcTimeLimit;

    /**
     * 总分
     */
    private BigDecimal dtcTotalScore;

    /**
     * 启用状态（0停用 1启用）
     */
    private Boolean dtcEnableStatus;

    /**
     * 生效开始日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dtcStartDate;

    /**
     * 生效结束日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dtcEndDate;

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

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getDtcId() {
        return dtcId;
    }

    public void setDtcId(String dtcId) {
        this.dtcId = dtcId;
    }

    public String getDtcName() {
        return dtcName;
    }

    public void setDtcName(String dtcName) {
        this.dtcName = dtcName;
    }

    public String getDtcRoles() {
        return dtcRoles;
    }

    public void setDtcRoles(String dtcRoles) {
        this.dtcRoles = dtcRoles;
    }

    public String getDtcDeptIds() {
        return dtcDeptIds;
    }

    public void setDtcDeptIds(String dtcDeptIds) {
        this.dtcDeptIds = dtcDeptIds;
    }

    public Integer getDtcDailySets() {
        return dtcDailySets;
    }

    public void setDtcDailySets(Integer dtcDailySets) {
        this.dtcDailySets = dtcDailySets;
    }

    public Integer getDtcQuestionsPerSet() {
        return dtcQuestionsPerSet;
    }

    public void setDtcQuestionsPerSet(Integer dtcQuestionsPerSet) {
        this.dtcQuestionsPerSet = dtcQuestionsPerSet;
    }

    public Integer getDtcTimeLimit() {
        return dtcTimeLimit;
    }

    public void setDtcTimeLimit(Integer dtcTimeLimit) {
        this.dtcTimeLimit = dtcTimeLimit;
    }

    public BigDecimal getDtcTotalScore() {
        return dtcTotalScore;
    }

    public void setDtcTotalScore(BigDecimal dtcTotalScore) {
        this.dtcTotalScore = dtcTotalScore;
    }

    public Boolean getDtcEnableStatus() {
        return dtcEnableStatus;
    }

    public void setDtcEnableStatus(Boolean dtcEnableStatus) {
        this.dtcEnableStatus = dtcEnableStatus;
    }

    public Date getDtcStartDate() {
        return dtcStartDate;
    }

    public void setDtcStartDate(Date dtcStartDate) {
        this.dtcStartDate = dtcStartDate;
    }

    public Date getDtcEndDate() {
        return dtcEndDate;
    }

    public void setDtcEndDate(Date dtcEndDate) {
        this.dtcEndDate = dtcEndDate;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    @Override
    public String toString() {
        return "DailyTaskConfig{" +
                "id=" + id +
                ", dtcId='" + dtcId + '\'' +
                ", dtcName='" + dtcName + '\'' +
                ", dtcRoles='" + dtcRoles + '\'' +
                ", dtcDeptIds='" + dtcDeptIds + '\'' +
                ", dtcDailySets=" + dtcDailySets +
                ", dtcQuestionsPerSet=" + dtcQuestionsPerSet +
                ", dtcTimeLimit=" + dtcTimeLimit +
                ", dtcTotalScore=" + dtcTotalScore +
                ", dtcEnableStatus=" + dtcEnableStatus +
                ", dtcStartDate=" + dtcStartDate +
                ", dtcEndDate=" + dtcEndDate +
                ", remark='" + remark + '\'' +
                '}';
    }
}
