using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.Threading.Tasks;
using Model = Discord.API.Message;
namespace Discord.Rest
{
///
/// Represents a REST-based message.
///
public abstract class RestMessage : RestEntity, IMessage, IUpdateable
{
private long _timestampTicks;
private ImmutableArray _reactions = ImmutableArray.Create();
///
public IMessageChannel Channel { get; }
///
/// Gets the Author of the message.
///
public IUser Author { get; }
///
public MessageSource Source { get; }
///
public string Content { get; private set; }
///
public DateTimeOffset CreatedAt => SnowflakeUtils.FromSnowflake(Id);
///
public virtual bool IsTTS => false;
///
public virtual bool IsPinned => false;
///
public virtual bool IsSuppressed => false;
///
public virtual DateTimeOffset? EditedTimestamp => null;
///
/// Gets a collection of the 's on the message.
///
public virtual IReadOnlyCollection Attachments => ImmutableArray.Create();
///
/// Gets a collection of the 's on the message.
///
public virtual IReadOnlyCollection