using Domains.ApplicantDomain;
namespace Domains.VisaApplicationDomain;
/// Model of visit request
public class VisaApplication : IEntity
{
    /// Unique identifier of 
    public Guid Id { get; private set; } = Guid.NewGuid();
    /// Identifier of the 
    public Guid ApplicantId { get; set; }
    /// Status of application
    public ApplicationStatus Status { get; set; }
    /// 
    /// always null if  is not a non-resident
    public ReentryPermit? ReentryPermit { get; set; }
    /// Country that  wants to visit
    public string DestinationCountry { get; set; } = null!;
    /// List of  that applicant had before
    public List PastVisas { get; set; } = null!;
    /// Permission to enter the destination country of 
    /// always null if  is Schengen
    public PermissionToDestCountry? PermissionToDestCountry { get; set; }
    public List PastVisits { get; set; } = null!;
    /// 
    public VisaCategory VisaCategory { get; set; }
    /// Is for group
    public bool ForGroup { get; set; }
    /// 
    public RequestedNumberOfEntries RequestedNumberOfEntries { get; set; }
    /// When application was created
    public DateTime RequestDate { get; set; }
    /// Valid days requested
    public int ValidDaysRequested { get; set; }
}