package com.qmth.distributed.print.business.entity;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.distributed.print.business.enums.MessageEnum;
import com.qmth.teachcloud.common.base.BaseEntity;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;

/**
 * @Description: 短信消息表
 * @Author: CaoZixuan
 * @Date: 2021-04-28
 */
@TableName("basic_message")
public class BasicMessage extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "学校id")
    @JsonSerialize(using = ToStringSerializer.class)
    @TableField("school_id")
    private Long schoolId;

    @ApiModelProperty(value = "机构id")
    @JsonSerialize(using = ToStringSerializer.class)
    @TableField(value = "org_id", updateStrategy = FieldStrategy.IGNORED)
    private Long orgId;

    /**
     * 用户ID
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @TableField("user_id")
    private Long userId;

    /**
     * 用户名称
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @TableField("user_name")
    private String userName;

    /**
     * 手机号
     */
    @TableField("mobile_number")
    private String mobileNumber;

    /**
     * 试卷编号
     */
    @TableField("paper_number")
    private String paperNumber;

    /**
     * 课程代码
     */
    @TableField("course_code")
    private String courseCode;

    /**
     * 业务id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @TableField("business_id")
    private Long businessId;

    /**
     * 业务操作
     */
    @TableField("business_operate")
    private String businessOperate;

    /**
     * 消息模板代码
     */
    @TableField("template_code")
    private String templateCode;

    /**
     * 变量参数内容
     */
    @TableField("variable_params")
    private String variableParams;

    /**
     * 模板内容
     */
    @TableField("template_content")
    private String templateContent;

    /**
     * 消息类型
     */
    @TableField("message_type")
    private MessageEnum messageType;

    /**
     * 消息发送状态
     */
    @TableField("send_status")
    private String sendStatus;

    /**
     * 消息发送结果
     */
    @TableField("send_result")
    private String sendResult;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;

    /**
     * 失败重发次数
     */
    @TableField("resend_count")
    private Integer resendCount;

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public Long getSchoolId() {
        return schoolId;
    }

    public void setSchoolId(Long schoolId) {
        this.schoolId = schoolId;
    }

    public Long getOrgId() {
        return orgId;
    }

    public void setOrgId(Long orgId) {
        this.orgId = orgId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getMobileNumber() {
        return mobileNumber;
    }

    public void setMobileNumber(String mobileNumber) {
        this.mobileNumber = mobileNumber;
    }

    public String getPaperNumber() {
        return paperNumber;
    }

    public void setPaperNumber(String paperNumber) {
        this.paperNumber = paperNumber;
    }

    public String getCourseCode() {
        return courseCode;
    }

    public void setCourseCode(String courseCode) {
        this.courseCode = courseCode;
    }

    public Long getBusinessId() {
        return businessId;
    }

    public void setBusinessId(Long businessId) {
        this.businessId = businessId;
    }

    public String getBusinessOperate() {
        return businessOperate;
    }

    public void setBusinessOperate(String businessOperate) {
        this.businessOperate = businessOperate;
    }

    public String getTemplateCode() {
        return templateCode;
    }

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

    public String getVariableParams() {
        return variableParams;
    }

    public void setVariableParams(String variableParams) {
        this.variableParams = variableParams;
    }

    public String getTemplateContent() {
        return templateContent;
    }

    public void setTemplateContent(String templateContent) {
        this.templateContent = templateContent;
    }

    public MessageEnum getMessageType() {
        return messageType;
    }

    public void setMessageType(MessageEnum messageType) {
        this.messageType = messageType;
    }

    public String getSendStatus() {
        return sendStatus;
    }

    public void setSendStatus(String sendStatus) {
        this.sendStatus = sendStatus;
    }

    public String getSendResult() {
        return sendResult;
    }

    public void setSendResult(String sendResult) {
        this.sendResult = sendResult;
    }

    public String getRemark() {
        return remark;
    }

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

    public Integer getResendCount() {
        return resendCount;
    }

    public void setResendCount(Integer resendCount) {
        this.resendCount = resendCount;
    }
}
