Files
LightlessServer/LightlessSyncServer/LightlessSyncShared/Models/ReportedChatMessage.cs
2025-12-17 03:46:23 +09:00

67 lines
1.6 KiB
C#

using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using LightlessSync.API.Dto.Chat;
namespace LightlessSyncShared.Models;
/// <summary>
/// Stores metadata about chat reports submitted by users.
/// </summary>
public class ReportedChatMessage
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ReportId { get; set; }
[Required]
public DateTime ReportTimeUtc { get; set; }
[Required]
public string ReporterUserUid { get; set; } = string.Empty;
public string? ReportedUserUid { get; set; }
[Required]
public ChatChannelType ChannelType { get; set; }
public ushort WorldId { get; set; }
public ushort ZoneId { get; set; }
[Required]
public string ChannelKey { get; set; } = string.Empty;
[Required]
public string MessageId { get; set; } = string.Empty;
public DateTime MessageSentAtUtc { get; set; }
[Required]
public string MessageContent { get; set; } = string.Empty;
public string? SenderHashedCid { get; set; }
public string? SenderDisplayName { get; set; }
public bool SenderWasLightfinder { get; set; }
public string SnapshotJson { get; set; } = string.Empty;
public string? Reason { get; set; }
public string? AdditionalContext { get; set; }
public ulong? DiscordMessageId { get; set; }
public DateTime? DiscordMessagePostedAtUtc { get; set; }
public bool Resolved { get; set; }
public DateTime? ResolvedAtUtc { get; set; }
public string? ResolutionNotes { get; set; }
public string? ResolvedByUserUid { get; set; }
}