package com.ruoyi.notification.domain;

import java.util.Date;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 通知模板对象 dc_notification_template
 * 
 * @author ruoyi
 * @date 2025-12-19
 */
public class NotificationTemplate extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 模板ID */
    private Long templateId;

    /** 模板名称 */
    @Excel(name = "模板名称")
    @NotBlank(message = "模板名称不能为空")
    @Size(max = 100, message = "模板名称长度不能超过100个字符")
    private String templateName;

    /** 模板编码 */
    @Excel(name = "模板编码")
    @NotBlank(message = "模板编码不能为空")
    @Size(max = 50, message = "模板编码长度不能超过50个字符")
    private String templateCode;

    /** 通知类型 */
    @Excel(name = "通知类型")
    @NotBlank(message = "通知类型不能为空")
    @Size(max = 50, message = "通知类型长度不能超过50个字符")
    private String notificationType;

    /** 支持渠道 */
    @Excel(name = "支持渠道")
    @NotBlank(message = "支持渠道不能为空")
    @Size(max = 200, message = "支持渠道长度不能超过200个字符")
    private String supportedChannels;

    /** 主题模板 */
    @Excel(name = "主题模板")
    @Size(max = 200, message = "主题模板长度不能超过200个字符")
    private String subjectTemplate;

    /** 内容模板 */
    @Excel(name = "内容模板")
    @NotBlank(message = "内容模板不能为空")
    @Size(max = 2000, message = "内容模板长度不能超过2000个字符")
    private String contentTemplate;

    /** 模板状态 */
    @Excel(name = "模板状态")
    @NotBlank(message = "模板状态不能为空")
    @Size(max = 20, message = "模板状态长度不能超过20个字符")
    private String templateStatus;

    /** 业务类型 */
    @Excel(name = "业务类型")
    @Size(max = 50, message = "业务类型长度不能超过50个字符")
    private String businessType;

    /** 描述 */
    @Excel(name = "描述")
    @Size(max = 500, message = "描述长度不能超过500个字符")
    private String description;

    public void setTemplateId(Long templateId) 
    {
        this.templateId = templateId;
    }

    public Long getTemplateId() 
    {
        return templateId;
    }
    public void setTemplateName(String templateName) 
    {
        this.templateName = templateName;
    }

    public String getTemplateName() 
    {
        return templateName;
    }
    public void setTemplateCode(String templateCode) 
    {
        this.templateCode = templateCode;
    }

    public String getTemplateCode() 
    {
        return templateCode;
    }
    public void setNotificationType(String notificationType) 
    {
        this.notificationType = notificationType;
    }

    public String getNotificationType() 
    {
        return notificationType;
    }
    public void setSupportedChannels(String supportedChannels) 
    {
        this.supportedChannels = supportedChannels;
    }

    public String getSupportedChannels() 
    {
        return supportedChannels;
    }
    public void setSubjectTemplate(String subjectTemplate) 
    {
        this.subjectTemplate = subjectTemplate;
    }

    public String getSubjectTemplate() 
    {
        return subjectTemplate;
    }
    public void setContentTemplate(String contentTemplate) 
    {
        this.contentTemplate = contentTemplate;
    }

    public String getContentTemplate() 
    {
        return contentTemplate;
    }
    public void setTemplateStatus(String templateStatus) 
    {
        this.templateStatus = templateStatus;
    }

    public String getTemplateStatus() 
    {
        return templateStatus;
    }
    public void setBusinessType(String businessType) 
    {
        this.businessType = businessType;
    }

    public String getBusinessType() 
    {
        return businessType;
    }
    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }

    @Override
    public String toString() {
        return "NotificationTemplate{" +
                "templateId=" + templateId +
                ", templateName='" + templateName + '\'' +
                ", templateCode='" + templateCode + '\'' +
                ", notificationType='" + notificationType + '\'' +
                ", supportedChannels='" + supportedChannels + '\'' +
                ", subjectTemplate='" + subjectTemplate + '\'' +
                ", contentTemplate='" + contentTemplate + '\'' +
                ", templateStatus='" + templateStatus + '\'' +
                ", businessType='" + businessType + '\'' +
                ", description='" + description + '\'' +
                '}';
    }
}