namespace SIGCM.Domain.Entities;

public class Listing
{
    public int Id { get; set; }
    public int CategoryId { get; set; }
    public int OperationId { get; set; }
    public required string Title { get; set; }
    public string? Description { get; set; }
    public decimal Price { get; set; }
    public decimal AdFee { get; set; }
    public string Currency { get; set; } = "ARS";
    public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
    public string Status { get; set; } = "Draft";
    public int? UserId { get; set; }
    public int? ClientId { get; set; }
    public int ViewCount { get; set; }
    public string Origin { get; set; } = "Mostrador";
    public string? OverlayStatus { get; set; }
    public List<string>? ImagesToClone { get; set; }

    // Propiedades para impresión
    public string? PrintText { get; set; }
    public DateTime? PrintStartDate { get; set; }
    public int PrintDaysCount { get; set; }
    public bool IsBold { get; set; }
    public bool IsFrame { get; set; }
    public string PrintFontSize { get; set; } = "normal";
    public string PrintAlignment { get; set; } = "left";

    // Propiedades auxiliares
    public string? CategoryName { get; set; }
    public string? ParentCategoryName { get; set; }
    public string? MainImageUrl { get; set; }

    // Propiedades de Publicación y Gestión
    public DateTime? PublicationStartDate { get; set; } // Fecha inicio solicitada por usuario
    public DateTime? ApprovedAt { get; set; } // Fecha real de aprobación (inicio de contador de días)
    public bool IsFeatured { get; set; }
    public DateTime? FeaturedExpiry { get; set; }
    public bool AllowContact { get; set; } = true;
    public string? CouponCode { get; set; }
    public int UnreadNotesCount { get; set; }
}