namespace PowderCoating.Core.Entities;

/// <summary>
/// Temporarily stores registration form data while the user completes a Stripe checkout.
/// Keyed by a GUID token that is embedded in the Stripe success/cancel URLs so no session
/// cookie is required to survive the cross-origin redirect.
/// Does NOT inherit BaseEntity — no CompanyId, no soft-delete, no tenant filter.
/// </summary>
public class PendingRegistrationSession
{
    public int Id { get; set; }

    /// <summary>GUID token embedded in the Stripe success/cancel URLs.</summary>
    public string Token { get; set; } = string.Empty;

    public string CompanyName { get; set; } = string.Empty;
    public string? CompanyPhone { get; set; }
    public string FirstName { get; set; } = string.Empty;
    public string LastName { get; set; } = string.Empty;
    public string Email { get; set; } = string.Empty;
    public int Plan { get; set; }
    public bool IsAnnual { get; set; }

    public DateTime CreatedAt { get; set; } = DateTime.UtcNow;

    /// <summary>Set to true once the registration is successfully completed.</summary>
    public bool IsCompleted { get; set; }
}
