using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Nuuru.Server.Models { public enum ReportTargetType { Post, Comment, User, ForumPost, Message } public enum ReportStatus { Pending, Resolved, Dismissed } public class Report { [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public Guid Id { get; set; } = Guid.NewGuid(); public ReportTargetType TargetType { get; set; } [Required] [MaxLength(100)] public string TargetId { get; set; } = string.Empty; [Required] [MaxLength(2000)] public string Reason { get; set; } = string.Empty; public ReportStatus Status { get; set; } = ReportStatus.Pending; public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime? ResolvedAt { get; set; } [MaxLength(2000)] public string? ResolutionNote { get; set; } // Reporter public Guid ReporterId { get; set; } public ApplicationUser Reporter { get; set; } = null!; // Moderator who handled the report (nullable until resolved) public Guid? ModeratorId { get; set; } public ApplicationUser? Moderator { get; set; } } }