Вытащил солюшен на уровень выше, чтобы прощё было дотнетить
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2025-10-05 14:32:06 +03:00
parent fa87a56ad1
commit aae4b28089
242 changed files with 159 additions and 159 deletions

View File

@@ -0,0 +1,11 @@
namespace Domains.VisaApplicationDomain;
public enum ApplicationStatus
{
/// Waits for approve
Pending,
Approved,
Rejected,
/// Closed by applicant
Closed
}

View File

@@ -0,0 +1,17 @@
using Domains.ApplicantDomain;
namespace Domains.VisaApplicationDomain;
/// Visa that <see cref="Applicant"/> already had
/// <remarks>Owned</remarks>
public class PastVisa
{
/// Date of issue
public DateTime IssueDate { get; set; }
/// Name of visa
public string Name { get; set; } = null!;
/// Date when visa expires
public DateTime ExpirationDate { get; set; }
}

View File

@@ -0,0 +1,17 @@
using Domains.ApplicantDomain;
namespace Domains.VisaApplicationDomain;
/// Visit in a Schengen country that <see cref="Applicant"/> already had
/// <remarks>Owned</remarks>
public class PastVisit
{
/// First day of <see cref="PastVisit"/>
public DateTime StartDate { get; set; }
/// Last day of <see cref="PastVisit"/>
public DateTime EndDate { get; set; }
/// Destination country of <see cref="PastVisit"/>
public string DestinationCountry { get; set; } = null!;
}

View File

@@ -0,0 +1,12 @@
namespace Domains.VisaApplicationDomain;
/// Permission to enter the destination country
/// <remarks>Owned</remarks>
public class PermissionToDestCountry
{
/// Date when <see cref="PermissionToDestCountry"/> expires
public DateTime ExpirationDate { get; set; }
/// Issuing authority
public string Issuer { get; set; } = null!;
}

View File

@@ -0,0 +1,12 @@
namespace Domains.VisaApplicationDomain;
/// Permission to enter a country the issuer wants to come from
/// <remarks>Owned</remarks>
public class ReentryPermit
{
/// Number of <see cref="ReentryPermit"/>
public string Number { get; set; } = null!;
/// Date when <see cref="ReentryPermit"/> expires
public DateTime ExpirationDate { get; set; }
}

View File

@@ -0,0 +1,9 @@
namespace Domains.VisaApplicationDomain;
/// Requested number of entries
public enum RequestedNumberOfEntries
{
Many,
One,
Two
}

View File

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

View File

@@ -0,0 +1,8 @@
namespace Domains.VisaApplicationDomain;
/// Category of visa
public enum VisaCategory
{
Transit,
ShortDated
}