namespace TrackQrApi.Models;

public enum ShortLinkStatus
{
    Active,
    Disabled
}

public class ShortLink
{
    public Guid Id { get; set; }
    public Guid WorkspaceId { get; set; }
    public Guid? ProjectId { get; set; }
    public Guid? DomainId { get; set; }
    public required string Slug { get; set; }
    public required string DestinationUrl { get; set; }
    public string? Title { get; set; }
    public ShortLinkStatus Status { get; set; } = ShortLinkStatus.Active;
    public DateTime? ExpiresAt { get; set; }
    public string? PasswordHash { get; set; }
    public DateTime CreatedAt { get; set; }
    public DateTime UpdatedAt { get; set; }
    public DateTime? DeletedAt { get; set; } // Soft delete

    // Navigation properties
    public Workspace Workspace { get; set; } = null!;
    public Project? Project { get; set; }
    public Domain? Domain { get; set; }
    public ICollection<QRCodeDesign> QRCodeDesigns { get; set; } = [];
    public ICollection<Event> Events { get; set; } = [];
}