using System.ComponentModel.DataAnnotations;

namespace JobsMedical.Web.Models;

/// <summary>A user-submitted report against a listing/facility/user (abuse, fake, wrong info).</summary>
public class Report
{
    public int Id { get; set; }

    public ReportTargetType TargetType { get; set; }
    public int TargetId { get; set; }
    [MaxLength(160)] public string? TargetLabel { get; set; }   // snapshot for the admin list

    [Required, MaxLength(500)]
    public string Reason { get; set; } = "";

    public int? ReporterUserId { get; set; }
    [MaxLength(36)] public string? ReporterVisitorId { get; set; }

    public ReportStatus Status { get; set; } = ReportStatus.Open;
    public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
}
