package com.ym.mec.biz.dal.entity;

import com.ym.mec.biz.dal.enums.ImSendTypeEnum;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;

public class ImSendGroupMessage {

    private Long id;

    @ApiModelProperty(value = "消息内容")
    private String messageContent;

    @ApiModelProperty(value = "发送人")
    @NotBlank(message = "发送人不能为空")
    private String senderId;

    @ApiModelProperty(value = "附加字段")
    private String extra;

    @ApiModelProperty(value = "目标用户（群组）")
    @NotNull(message = "目标用户（群组）不能为空")
    private String targetIds;

    @ApiModelProperty(value = "文件地址")
    private String fileUrl;

    @ApiModelProperty(value = "文件名称")
    private String fileName;

    @ApiModelProperty(value = "文件大小")
    private Long fileSize;

    @ApiModelProperty(value = "消息发送类型即时 NOW、定时发送 TIMING")
    private String sendType = "TIMING";

    @ApiModelProperty(value = "消息类型(IMG,FILE)")
    private ImSendTypeEnum messageType;

    @ApiModelProperty(value = "是否发送")
    private Boolean sendFlag = false;

    @ApiModelProperty(value = "定时发送时间")
    private Date sendTime;

    @ApiModelProperty(value = "创建人")
    private String operator;

    @ApiModelProperty(value = "0带表系统消息，1代表普通群消息。默认1")
    private Integer isIncludeSender = 1;

    private String objectName;

    private Date createTime;

    private Date updateTime;

    public Integer getIsIncludeSender() {
        return isIncludeSender;
    }

    public void setIsIncludeSender(Integer isIncludeSender) {
        this.isIncludeSender = isIncludeSender;
    }

    public String getObjectName() {
        return objectName;
    }

    public void setObjectName(String objectName) {
        this.objectName = objectName;
    }

    public String getSendType() {
        return sendType;
    }

    public void setSendType(String sendType) {
        this.sendType = sendType;
    }

    public String getOperator() {
        return operator;
    }

    public void setOperator(String operator) {
        this.operator = operator;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Long getId() {
        return id;
    }

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

    public Boolean getSendFlag() {
        return sendFlag;
    }

    public void setSendFlag(Boolean sendFlag) {
        this.sendFlag = sendFlag;
    }

    public Date getSendTime() {
        return sendTime;
    }

    public void setSendTime(Date sendTime) {
        this.sendTime = sendTime;
    }

    public String getFileName() {
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    public ImSendTypeEnum getMessageType() {
        return messageType;
    }

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

    public String getMessageContent() {
        return messageContent;
    }

    public void setMessageContent(String messageContent) {
        this.messageContent = messageContent;
    }

    public String getSenderId() {
        return senderId;
    }

    public void setSenderId(String senderId) {
        this.senderId = senderId;
    }

    public String getExtra() {
        return extra;
    }

    public void setExtra(String extra) {
        this.extra = extra;
    }

    public String getTargetIds() {
        return targetIds;
    }

    public void setTargetIds(String targetIds) {
        this.targetIds = targetIds;
    }

    public String getFileUrl() {
        return fileUrl;
    }

    public void setFileUrl(String fileUrl) {
        this.fileUrl = fileUrl;
    }

    public Long getFileSize() {
        return fileSize;
    }

    public void setFileSize(Long fileSize) {
        this.fileSize = fileSize;
    }
}
