package com.hys.app.model.system.dos;

import com.baomidou.mybatisplus.annotation.*;
import com.hys.app.model.system.enums.AuditStatusEnum;
import com.hys.app.model.system.enums.MessageCodeEnum;
import com.hys.app.model.system.enums.SmsTemplateServiceTypeEnum;
import com.hys.app.model.system.enums.SmsTemplateTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;

import javax.validation.constraints.NotEmpty;
import java.io.Serializable;


/**
 * 短信模板实体
 *
 * @author zhangsong
 * @version v1.0
 * @since v7.3.0
 * 2021-01-26 16:04:22
 */
@TableName("es_sms_template")
@ApiModel
@Data
public class SmsTemplate implements Serializable {

    private static final long serialVersionUID = 6526154401398092L;

    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(hidden = true)
    private Long id;
    /**
     * es_sms_platform表的beanid
     */
    @ApiModelProperty(name = "bean_id", value = "es_sms_platform表的beanid")
    private String beanId;
    /**
     * 模板业务类型
     *
     * @see SmsTemplateServiceTypeEnum
     */
    @ApiModelProperty(name = "service_type", value = "模板业务类型")
    private String serviceType;
    /**
     * 模板业务编号
     *
     * @see MessageCodeEnum
     */
    @ApiModelProperty(name = "service_code", value = "模板业务编号")
    private String serviceCode;
    /**
     * 模板名称
     */
    @ApiModelProperty(name = "template_name", value = "模板名称")
    private String templateName;
    /**
     * 模板内容
     */
    @NotEmpty(message = "模板内容不能为空")
    @ApiModelProperty(name = "template_content", value = "模板内容", required = true)
    private String templateContent;
    /**
     * 短信模板code(第三方返回的)
     */
    @ApiModelProperty(name = "template_code", value = "短信模板code(第三方返回的)")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String templateCode;
    /**
     * 短信类型
     *
     * @see SmsTemplateTypeEnum
     */
    @NotEmpty(message = "短信类型不能为空")
    @ApiModelProperty(name = "template_type", value = "短信类型")
    private String templateType;
    /**
     * 申请说明
     */
    @ApiModelProperty(name = "remark", value = "申请说明")
    private String remark;
    /**
     * 短信模板审核工单号(第三方返回的)
     */
    @ApiModelProperty(name = "order_id", value = "短信模板审核工单号(第三方返回的)")
    private String orderId;
    /**
     * 模板审核状态
     *
     * @see AuditStatusEnum
     */
    @ApiModelProperty(name = "audit_status", value = "模板审核状态")
    private String auditStatus;
    /**
     * 启用状态
     */
    @ApiModelProperty(name = "enable_status", value = "启用状态")
    private String enableStatus;
    /**
     * 审核未通过原因
     */
    @ApiModelProperty(name = "fail_reason", value = "审核未通过原因")
    private String failReason;
    /**
     * 创建时间
     */
    @ApiModelProperty(name = "create_time", value = "创建时间")
    private Long createTime;
}