package com.ccwangluo.ccim.modle;

import androidx.room.Entity;
import androidx.room.Index;
import androidx.room.TypeConverters;

import com.ccwangluo.ccim.database.UserConverter;
import com.google.gson.JsonObject;
@TypeConverters(UserConverter.class)
@Entity(primaryKeys = {"msgId"},indices = {@Index(value = {"msgId"},unique = true)})
public class MessageContent {

    private Long msgId;
    private Long senderUserId;
    private String content;
    private Long createdDate;
    private Long modifiedDate;
    private Long reciveUserId;
    private Long channelId;
    private MessageType msgType = MessageType.MESSAGE_TYPE_TEXT;
    private MessageSourceType msgSrcType = MessageSourceType.MESSAGE_SOURCE_TYPE_PRIVATE;

    private User senderUser;
    private String voiceContent;//音频的语音转文字

    public User getSenderUser() {
        return senderUser;
    }

    public void setSenderUser(User senderUser) {
        this.senderUser = senderUser;
    }

    public String getVoiceContent() {
        return voiceContent;
    }

    public void setVoiceContent(String voiceContent) {
        this.voiceContent = voiceContent;
    }

    public MessageType getMsgType() {
        return msgType;
    }

    public void setMsgType(MessageType msgType) {
        this.msgType = msgType;
    }

    public MessageSourceType getMsgSrcType() {
        return msgSrcType;
    }

    public void setMsgSrcType(MessageSourceType msgSrcType) {
        this.msgSrcType = msgSrcType;
    }

    public enum MessageType{
        MESSAGE_TYPE_TEXT,
        MESSAGE_TYPE_VOICE
    }

    public enum MessageSourceType {
        MESSAGE_SOURCE_TYPE_PRIVATE,
        MESSAGE_SOURCE_TYPE_CHANNEL
    }

    public Long getChannelId() {
        return channelId;
    }

    public void setChannelId(Long channelId) {
        this.channelId = channelId;
    }

    public Long getMsgId() {
        return msgId;
    }

    public void setMsgId(Long msgId) {
        this.msgId = msgId;
    }

    public Long getSenderUserId() {
        return senderUserId;
    }

    public void setSenderUserId(Long senderUserId) {
        this.senderUserId = senderUserId;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public Long getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(Long createdDate) {
        this.createdDate = createdDate;
    }

    public Long getModifiedDate() {
        return modifiedDate;
    }

    public void setModifiedDate(Long modifiedDate) {
        this.modifiedDate = modifiedDate;
    }

    public Long getReciveUserId() {
        return reciveUserId;
    }

    public void setReciveUserId(Long reciveUserId) {
        this.reciveUserId = reciveUserId;
    }
}
