212 lines
12 KiB
C#
212 lines
12 KiB
C#
using System;
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
|
|
|
#nullable disable
|
|
|
|
namespace Infrastructure.Migrations
|
|
{
|
|
/// <inheritdoc />
|
|
public partial class Initial : Migration
|
|
{
|
|
/// <inheritdoc />
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.CreateTable(
|
|
name: "PlaceOfWork",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Name = table.Column<string>(type: "character varying(200)", unicode: false, maxLength: 200, nullable: false),
|
|
Address_Country = table.Column<string>(type: "character varying(70)", unicode: false, maxLength: 70, nullable: false),
|
|
Address_City = table.Column<string>(type: "character varying(70)", unicode: false, maxLength: 70, nullable: false),
|
|
Address_Street = table.Column<string>(type: "character varying(100)", unicode: false, maxLength: 100, nullable: false),
|
|
Address_Building = table.Column<string>(type: "character varying(10)", unicode: false, maxLength: 10, nullable: false),
|
|
PhoneNum = table.Column<string>(type: "character varying(13)", unicode: false, maxLength: 13, nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_PlaceOfWork", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "User",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Role = table.Column<int>(type: "integer", nullable: false),
|
|
Email = table.Column<string>(type: "character varying(254)", unicode: false, maxLength: 254, nullable: false),
|
|
Password = table.Column<string>(type: "character varying(50)", unicode: false, maxLength: 50, nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_User", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Applicant",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Name_FirstName = table.Column<string>(type: "character varying(50)", unicode: false, maxLength: 50, nullable: false),
|
|
Name_Surname = table.Column<string>(type: "character varying(50)", unicode: false, maxLength: 50, nullable: false),
|
|
Name_Patronymic = table.Column<string>(type: "character varying(50)", unicode: false, maxLength: 50, nullable: true),
|
|
Passport_Number = table.Column<string>(type: "character varying(20)", unicode: false, maxLength: 20, nullable: false),
|
|
Passport_Issuer = table.Column<string>(type: "character varying(200)", unicode: false, maxLength: 200, nullable: false),
|
|
Passport_IssueDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
Passport_ExpirationDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
BirthDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
CountryOfBirth = table.Column<string>(type: "character varying(70)", unicode: false, maxLength: 70, nullable: false),
|
|
CityOfBirth = table.Column<string>(type: "character varying(70)", unicode: false, maxLength: 70, nullable: false),
|
|
Citizenship = table.Column<string>(type: "character varying(30)", unicode: false, maxLength: 30, nullable: false),
|
|
CitizenshipByBirth = table.Column<string>(type: "character varying(30)", unicode: false, maxLength: 30, nullable: false),
|
|
Gender = table.Column<int>(type: "integer", nullable: false),
|
|
MaritalStatus = table.Column<int>(type: "integer", nullable: false),
|
|
FatherName_FirstName = table.Column<string>(type: "character varying(50)", unicode: false, maxLength: 50, nullable: false),
|
|
FatherName_Surname = table.Column<string>(type: "character varying(50)", unicode: false, maxLength: 50, nullable: false),
|
|
FatherName_Patronymic = table.Column<string>(type: "character varying(50)", unicode: false, maxLength: 50, nullable: true),
|
|
MotherName_FirstName = table.Column<string>(type: "character varying(50)", unicode: false, maxLength: 50, nullable: false),
|
|
MotherName_Surname = table.Column<string>(type: "character varying(50)", unicode: false, maxLength: 50, nullable: false),
|
|
MotherName_Patronymic = table.Column<string>(type: "character varying(50)", unicode: false, maxLength: 50, nullable: true),
|
|
JobTitle = table.Column<string>(type: "character varying(50)", unicode: false, maxLength: 50, nullable: false),
|
|
PlaceOfWorkId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
IsNonResident = table.Column<bool>(type: "boolean", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Applicant", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Applicant_PlaceOfWork_PlaceOfWorkId",
|
|
column: x => x.PlaceOfWorkId,
|
|
principalTable: "PlaceOfWork",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_Applicant_User_UserId",
|
|
column: x => x.UserId,
|
|
principalTable: "User",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "VisaApplication",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
ApplicantId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Status = table.Column<int>(type: "integer", nullable: false),
|
|
ReentryPermit_Number = table.Column<string>(type: "character varying(25)", unicode: false, maxLength: 25, nullable: true),
|
|
ReentryPermit_ExpirationDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
DestinationCountry = table.Column<string>(type: "character varying(70)", unicode: false, maxLength: 70, nullable: false),
|
|
PermissionToDestCountry_ExpirationDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
PermissionToDestCountry_Issuer = table.Column<string>(type: "character varying(200)", unicode: false, maxLength: 200, nullable: true),
|
|
VisaCategory = table.Column<int>(type: "integer", nullable: false),
|
|
ForGroup = table.Column<bool>(type: "boolean", nullable: false),
|
|
RequestedNumberOfEntries = table.Column<int>(type: "integer", nullable: false),
|
|
RequestDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
ValidDaysRequested = table.Column<int>(type: "integer", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_VisaApplication", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_VisaApplication_Applicant_ApplicantId",
|
|
column: x => x.ApplicantId,
|
|
principalTable: "Applicant",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "PastVisa",
|
|
columns: table => new
|
|
{
|
|
VisaApplicationId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
IssueDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
Name = table.Column<string>(type: "character varying(70)", unicode: false, maxLength: 70, nullable: false),
|
|
ExpirationDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_PastVisa", x => new { x.VisaApplicationId, x.Id });
|
|
table.ForeignKey(
|
|
name: "FK_PastVisa_VisaApplication_VisaApplicationId",
|
|
column: x => x.VisaApplicationId,
|
|
principalTable: "VisaApplication",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "PastVisit",
|
|
columns: table => new
|
|
{
|
|
VisaApplicationId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
StartDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
EndDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
DestinationCountry = table.Column<string>(type: "character varying(70)", unicode: false, maxLength: 70, nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_PastVisit", x => new { x.VisaApplicationId, x.Id });
|
|
table.ForeignKey(
|
|
name: "FK_PastVisit_VisaApplication_VisaApplicationId",
|
|
column: x => x.VisaApplicationId,
|
|
principalTable: "VisaApplication",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Applicant_PlaceOfWorkId",
|
|
table: "Applicant",
|
|
column: "PlaceOfWorkId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Applicant_UserId",
|
|
table: "Applicant",
|
|
column: "UserId",
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_User_Email",
|
|
table: "User",
|
|
column: "Email",
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_VisaApplication_ApplicantId",
|
|
table: "VisaApplication",
|
|
column: "ApplicantId");
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.DropTable(
|
|
name: "PastVisa");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "PastVisit");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "VisaApplication");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Applicant");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "PlaceOfWork");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "User");
|
|
}
|
|
}
|
|
}
|