mirror of
https://github.com/JogmansonReal/Radicade.git
synced 2026-10-25 23:18:56 -07:00
Radicade Public Code
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.Json;
|
||||
using RadicadeServer.Extensions;
|
||||
|
||||
namespace RadicadeServer.RecNet.Messages
|
||||
{
|
||||
public class ChatThread
|
||||
{
|
||||
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public long chatThreadId { get; set; }
|
||||
public string chatThreadName { get; set; } = null!;
|
||||
public long lastReadMessageId { get; set; }
|
||||
public string messages { get; set; } = null!;
|
||||
public string playerIds { get; set; } = null!;
|
||||
|
||||
public string? favoritedBy { get; set; }
|
||||
|
||||
public List<long> GetFavoritedBy() =>
|
||||
string.IsNullOrWhiteSpace(favoritedBy) ? new List<long>() : favoritedBy.FromJson<List<long>>() ?? new List<long>();
|
||||
|
||||
public void SetFavoritedBy(IEnumerable<long> playerIds)
|
||||
{
|
||||
favoritedBy = playerIds.Distinct().OrderBy(x => x).ToList().ToJson();
|
||||
}
|
||||
|
||||
public List<long>? GetPlayerIds()
|
||||
{
|
||||
return playerIds.FromJson<List<long>>();
|
||||
}
|
||||
public List<ChatMessage>? GetMessages()
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(messages)) return new List<ChatMessage>();
|
||||
if (messages.TrimStart().StartsWith("{", StringComparison.Ordinal))
|
||||
{
|
||||
var message = messages.FromJson<ChatMessage>();
|
||||
return message == null ? new List<ChatMessage>() : new List<ChatMessage> { message };
|
||||
}
|
||||
return messages.FromJson<List<ChatMessage>>();
|
||||
}
|
||||
public string AddMessage(ChatMessage message)
|
||||
{
|
||||
var messages = GetMessages() ?? new List<ChatMessage>();
|
||||
messages.Add(message);
|
||||
return messages.ToJson();
|
||||
}
|
||||
public string AddPlayer(long player)
|
||||
{
|
||||
var players = GetPlayerIds() ?? new List<long>();
|
||||
players.Add(player);
|
||||
return players.ToJson(); ;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user