mirror of
https://github.com/DorkSquadRR/DorkNet.git
synced 2026-10-26 07:28:45 -07:00
4edf25b2d5
Targets Rec Room 2020.12.18 client.
Re-import after adding:
- DorkNet.ClientMod/dorknet-clientmod.json.template — config schema
the launcher's manifest-driven patcher renders into UserData/.
- tools/build-patcher-zip.ps1 — produces the dorknet-clientpatch-{key}.zip
Release asset the launcher fetches.
- .github/workflows/release.yml — auto-publishes both Release assets
on v1-december-* tag push.
Scrubbed via maintainer-side scrub-for-public.ps1: same drop rules as
the prior import, plus build-patcher-zip.ps1 added to the tools/
allow-list so it survives the scrub.
32 lines
1.2 KiB
C#
32 lines
1.2 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
|
|
namespace DorkNet.Server.Data.Entities;
|
|
|
|
/// <summary>
|
|
/// Per-thread metadata for chat: name (for group chats), creator, and
|
|
/// timestamps. Rows here are sparse — a two-person DM doesn't need
|
|
/// one unless the players want a custom thread name. Group chats
|
|
/// always have a row so the member set + name are persisted.
|
|
/// </summary>
|
|
public class ChatThreadEntity
|
|
{
|
|
public long Id { get; set; }
|
|
|
|
/// <summary>Canonical thread key (matches <c>ChatMessageEntity.ThreadKey</c>).
|
|
/// Format: <c>dm:<low>:<high></c> for DMs,
|
|
/// <c>group:<guid></c> for group chats, <c>room:<id></c> for room-wide.</summary>
|
|
[MaxLength(96)]
|
|
public string ThreadKey { get; set; } = string.Empty;
|
|
|
|
/// <summary>Optional custom name. DMs default to empty (watch renders
|
|
/// "Chat with <username>" client-side); group chats persist a
|
|
/// name set via <c>PUT thread/{id}/rename</c>.</summary>
|
|
[MaxLength(128)]
|
|
public string Name { get; set; } = string.Empty;
|
|
|
|
public long CreatorPlayerId { get; set; }
|
|
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
|
|
}
|