using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using LightlessSync.API.Dto.Chat; namespace LightlessSyncShared.Models; /// /// Stores metadata about chat reports submitted by users. /// 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; } }