using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LeanCloud.Realtime
{
///
/// 消息接口
/// 所有消息必须实现这个接口
///
public interface IAVIMMessage
{
///
/// Serialize this instance.
///
/// The serialize.
string Serialize();
///
/// Validate the specified msgStr.
///
/// The validate.
/// Message string.
bool Validate(string msgStr);
///
/// Deserialize the specified msgStr.
///
/// The deserialize.
/// Message string.
IAVIMMessage Deserialize(string msgStr);
///
/// Gets or sets the conversation identifier.
///
/// The conversation identifier.
string ConversationId { get; set; }
///
/// Gets or sets from client identifier.
///
/// From client identifier.
string FromClientId { get; set; }
///
/// Gets or sets the identifier.
///
/// The identifier.
string Id { get; set; }
///
/// Gets or sets the server timestamp.
///
/// The server timestamp.
long ServerTimestamp { get; set; }
///
/// Gets or sets the rcp timestamp.
///
/// The rcp timestamp.
long RcpTimestamp { get; set; }
long UpdatedAt { get; set; }
#region mention features.
///
/// Gets or sets a value indicating whether this mention all.
///
/// true if mention all; otherwise, false.
bool MentionAll { get; set; }
///
/// Gets or sets the mention list.
///
/// The mention list.
IEnumerable MentionList { get; set; }
#endregion
}
}