//
using System;
using Infrastructure.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace Infrastructure.Migrations
{
[DbContext(typeof(DatabaseContext))]
partial class DatabaseContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.2")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
modelBuilder.Entity("Domains.ApplicantDomain.Applicant", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property("BirthDate")
.HasColumnType("timestamp without time zone");
b.Property("Citizenship")
.IsRequired()
.HasMaxLength(50)
.IsUnicode(false)
.HasColumnType("character varying(50)");
b.Property("CitizenshipByBirth")
.IsRequired()
.HasMaxLength(50)
.IsUnicode(false)
.HasColumnType("character varying(50)");
b.Property("CityOfBirth")
.IsRequired()
.HasMaxLength(70)
.IsUnicode(false)
.HasColumnType("character varying(70)");
b.Property("CountryOfBirth")
.IsRequired()
.HasMaxLength(70)
.IsUnicode(false)
.HasColumnType("character varying(70)");
b.Property("Gender")
.HasColumnType("integer");
b.Property("IsNonResident")
.HasColumnType("boolean");
b.Property("JobTitle")
.IsRequired()
.HasMaxLength(50)
.IsUnicode(false)
.HasColumnType("character varying(50)");
b.Property("MaritalStatus")
.HasColumnType("integer");
b.Property("PlaceOfWorkId")
.HasColumnType("uuid");
b.Property("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("PlaceOfWorkId");
b.HasIndex("UserId")
.IsUnique();
b.ToTable("Applicant");
});
modelBuilder.Entity("Domains.ApplicantDomain.PlaceOfWork", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property("Name")
.IsRequired()
.HasMaxLength(200)
.IsUnicode(false)
.HasColumnType("character varying(200)");
b.Property("PhoneNum")
.IsRequired()
.HasMaxLength(13)
.IsUnicode(false)
.HasColumnType("character varying(13)");
b.HasKey("Id");
b.ToTable("PlaceOfWork");
});
modelBuilder.Entity("Domains.Users.User", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property("Email")
.IsRequired()
.HasMaxLength(254)
.IsUnicode(false)
.HasColumnType("character varying(254)");
b.Property("Password")
.IsRequired()
.HasMaxLength(50)
.IsUnicode(false)
.HasColumnType("character varying(50)");
b.Property("Role")
.HasColumnType("integer");
b.HasKey("Id");
b.HasIndex("Email")
.IsUnique();
b.ToTable("User");
});
modelBuilder.Entity("Domains.VisaApplicationDomain.VisaApplication", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property("ApplicantId")
.HasColumnType("uuid");
b.Property("DestinationCountry")
.IsRequired()
.HasMaxLength(70)
.IsUnicode(false)
.HasColumnType("character varying(70)");
b.Property("ForGroup")
.HasColumnType("boolean");
b.Property("RequestDate")
.HasColumnType("timestamp without time zone");
b.Property("RequestedNumberOfEntries")
.HasColumnType("integer");
b.Property("Status")
.HasColumnType("integer");
b.Property("ValidDaysRequested")
.HasColumnType("integer");
b.Property("VisaCategory")
.HasColumnType("integer");
b.HasKey("Id");
b.HasIndex("ApplicantId");
b.ToTable("VisaApplication");
});
modelBuilder.Entity("Domains.ApplicantDomain.Applicant", b =>
{
b.HasOne("Domains.ApplicantDomain.PlaceOfWork", "PlaceOfWork")
.WithMany()
.HasForeignKey("PlaceOfWorkId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Domains.Users.User", null)
.WithOne()
.HasForeignKey("Domains.ApplicantDomain.Applicant", "UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.OwnsOne("Domains.ApplicantDomain.Name", "FatherName", b1 =>
{
b1.Property("ApplicantId")
.HasColumnType("uuid");
b1.Property("FirstName")
.IsRequired()
.HasMaxLength(50)
.IsUnicode(false)
.HasColumnType("character varying(50)");
b1.Property("Patronymic")
.HasMaxLength(50)
.IsUnicode(false)
.HasColumnType("character varying(50)");
b1.Property("Surname")
.IsRequired()
.HasMaxLength(50)
.IsUnicode(false)
.HasColumnType("character varying(50)");
b1.HasKey("ApplicantId");
b1.ToTable("Applicant");
b1.WithOwner()
.HasForeignKey("ApplicantId");
});
b.OwnsOne("Domains.ApplicantDomain.Name", "MotherName", b1 =>
{
b1.Property("ApplicantId")
.HasColumnType("uuid");
b1.Property("FirstName")
.IsRequired()
.HasMaxLength(50)
.IsUnicode(false)
.HasColumnType("character varying(50)");
b1.Property("Patronymic")
.HasMaxLength(50)
.IsUnicode(false)
.HasColumnType("character varying(50)");
b1.Property("Surname")
.IsRequired()
.HasMaxLength(50)
.IsUnicode(false)
.HasColumnType("character varying(50)");
b1.HasKey("ApplicantId");
b1.ToTable("Applicant");
b1.WithOwner()
.HasForeignKey("ApplicantId");
});
b.OwnsOne("Domains.ApplicantDomain.Name", "Name", b1 =>
{
b1.Property("ApplicantId")
.HasColumnType("uuid");
b1.Property("FirstName")
.IsRequired()
.HasMaxLength(50)
.IsUnicode(false)
.HasColumnType("character varying(50)");
b1.Property("Patronymic")
.HasMaxLength(50)
.IsUnicode(false)
.HasColumnType("character varying(50)");
b1.Property("Surname")
.IsRequired()
.HasMaxLength(50)
.IsUnicode(false)
.HasColumnType("character varying(50)");
b1.HasKey("ApplicantId");
b1.ToTable("Applicant");
b1.WithOwner()
.HasForeignKey("ApplicantId");
});
b.OwnsOne("Domains.ApplicantDomain.Passport", "Passport", b1 =>
{
b1.Property("ApplicantId")
.HasColumnType("uuid");
b1.Property("ExpirationDate")
.HasColumnType("timestamp without time zone");
b1.Property("IssueDate")
.HasColumnType("timestamp without time zone");
b1.Property("Issuer")
.IsRequired()
.HasMaxLength(200)
.IsUnicode(false)
.HasColumnType("character varying(200)");
b1.Property("Number")
.IsRequired()
.HasMaxLength(20)
.IsUnicode(false)
.HasColumnType("character varying(20)");
b1.HasKey("ApplicantId");
b1.ToTable("Applicant");
b1.WithOwner()
.HasForeignKey("ApplicantId");
});
b.Navigation("FatherName")
.IsRequired();
b.Navigation("MotherName")
.IsRequired();
b.Navigation("Name")
.IsRequired();
b.Navigation("Passport")
.IsRequired();
b.Navigation("PlaceOfWork");
});
modelBuilder.Entity("Domains.ApplicantDomain.PlaceOfWork", b =>
{
b.OwnsOne("Domains.ApplicantDomain.Address", "Address", b1 =>
{
b1.Property("PlaceOfWorkId")
.HasColumnType("uuid");
b1.Property("Building")
.IsRequired()
.HasMaxLength(10)
.IsUnicode(false)
.HasColumnType("character varying(10)");
b1.Property("City")
.IsRequired()
.HasMaxLength(70)
.IsUnicode(false)
.HasColumnType("character varying(70)");
b1.Property("Country")
.IsRequired()
.HasMaxLength(70)
.IsUnicode(false)
.HasColumnType("character varying(70)");
b1.Property("Street")
.IsRequired()
.HasMaxLength(100)
.IsUnicode(false)
.HasColumnType("character varying(100)");
b1.HasKey("PlaceOfWorkId");
b1.ToTable("PlaceOfWork");
b1.WithOwner()
.HasForeignKey("PlaceOfWorkId");
});
b.Navigation("Address")
.IsRequired();
});
modelBuilder.Entity("Domains.VisaApplicationDomain.VisaApplication", b =>
{
b.HasOne("Domains.ApplicantDomain.Applicant", null)
.WithMany()
.HasForeignKey("ApplicantId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.OwnsMany("Domains.VisaApplicationDomain.PastVisa", "PastVisas", b1 =>
{
b1.Property("VisaApplicationId")
.HasColumnType("uuid");
b1.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id"));
b1.Property("ExpirationDate")
.HasColumnType("timestamp without time zone");
b1.Property("IssueDate")
.HasColumnType("timestamp without time zone");
b1.Property("Name")
.IsRequired()
.HasMaxLength(70)
.IsUnicode(false)
.HasColumnType("character varying(70)");
b1.HasKey("VisaApplicationId", "Id");
b1.ToTable("PastVisa");
b1.WithOwner()
.HasForeignKey("VisaApplicationId");
});
b.OwnsMany("Domains.VisaApplicationDomain.PastVisit", "PastVisits", b1 =>
{
b1.Property("VisaApplicationId")
.HasColumnType("uuid");
b1.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property("Id"));
b1.Property("DestinationCountry")
.IsRequired()
.HasMaxLength(70)
.IsUnicode(false)
.HasColumnType("character varying(70)");
b1.Property("EndDate")
.HasColumnType("timestamp without time zone");
b1.Property("StartDate")
.HasColumnType("timestamp without time zone");
b1.HasKey("VisaApplicationId", "Id");
b1.ToTable("PastVisit");
b1.WithOwner()
.HasForeignKey("VisaApplicationId");
});
b.OwnsOne("Domains.VisaApplicationDomain.PermissionToDestCountry", "PermissionToDestCountry", b1 =>
{
b1.Property("VisaApplicationId")
.HasColumnType("uuid");
b1.Property("ExpirationDate")
.HasColumnType("timestamp without time zone");
b1.Property("Issuer")
.IsRequired()
.HasMaxLength(200)
.IsUnicode(false)
.HasColumnType("character varying(200)");
b1.HasKey("VisaApplicationId");
b1.ToTable("VisaApplication");
b1.WithOwner()
.HasForeignKey("VisaApplicationId");
});
b.OwnsOne("Domains.VisaApplicationDomain.ReentryPermit", "ReentryPermit", b1 =>
{
b1.Property("VisaApplicationId")
.HasColumnType("uuid");
b1.Property("ExpirationDate")
.HasColumnType("timestamp without time zone");
b1.Property("Number")
.IsRequired()
.HasMaxLength(25)
.IsUnicode(false)
.HasColumnType("character varying(25)");
b1.HasKey("VisaApplicationId");
b1.ToTable("VisaApplication");
b1.WithOwner()
.HasForeignKey("VisaApplicationId");
});
b.Navigation("PastVisas");
b.Navigation("PastVisits");
b.Navigation("PermissionToDestCountry");
b.Navigation("ReentryPermit");
});
#pragma warning restore 612, 618
}
}
}