namespace ChatRoom;
///
/// Client information
///
public class Client
{
///
/// Client ID
///
public int id;
///
/// Client name, can be the same between multiple clients
///
public string name;
///
/// Number of strikes
///
public int strikes = 0;
///
/// Until when is this client blocked from sending messages
///
public DateTime? blockedUntil = null;
}
///
/// Describes the messages status/stage
///
public enum MessageStatus
{
WaitingForModerator,
GivenToModerator,
Approved,
Rejected
}
///
/// Message information
///
public class Message
{
///
/// Message ID
///
public int id;
///
/// Client ID
///
public int clientId;
///
/// Message contents
///
public string contents;
///
/// Does this message need to be censored?
///
public bool needsToBeCensored;
///
/// Message status/stage
///
public MessageStatus status = MessageStatus.WaitingForModerator;
///
/// When was this message sent
///
public DateTime sentAt;
}
public class ChatRoomState
{
///
/// Access lock.
///
public readonly object accessLock = new object();
///
/// Last unique ID value generated.
///
public int lastUniqueId;
///
/// List of all registered clients
///
public List clients = new List();
///
/// List of messages
///
public List messages = new List();
}