diff --git a/src/InternshipSystem.Repository/Migrations/20201003202928_init.Designer.cs b/src/InternshipSystem.Repository/Migrations/20201003202928_init.Designer.cs
new file mode 100644
index 0000000..47844d7
--- /dev/null
+++ b/src/InternshipSystem.Repository/Migrations/20201003202928_init.Designer.cs
@@ -0,0 +1,668 @@
+//
+using System;
+using InternshipSystem.Repository;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+namespace InternshipSystem.Repository.Migrations
+{
+ [DbContext(typeof(InternshipDbContext))]
+ [Migration("20201003202928_init")]
+ partial class init
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn)
+ .HasAnnotation("ProductVersion", "3.1.4")
+ .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+ modelBuilder.Entity("InternshipSystem.Core.BranchOffice", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("CompanyId")
+ .HasColumnName("company_id")
+ .HasColumnType("bigint");
+
+ b.Property("Provider")
+ .HasColumnName("provider")
+ .HasColumnType("bigint");
+
+ b.HasKey("Id")
+ .HasName("pk_branch_office");
+
+ b.HasIndex("CompanyId")
+ .HasName("ix_branch_office_company_id");
+
+ b.ToTable("branch_office");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Company", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("Name")
+ .HasColumnName("name")
+ .HasColumnType("text");
+
+ b.Property("Nip")
+ .HasColumnName("nip")
+ .HasColumnType("text");
+
+ b.Property("Provider")
+ .HasColumnName("provider")
+ .HasColumnType("bigint");
+
+ b.HasKey("Id")
+ .HasName("pk_companies");
+
+ b.ToTable("companies");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Course", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("Name")
+ .HasColumnName("name")
+ .HasColumnType("text");
+
+ b.HasKey("Id")
+ .HasName("pk_course");
+
+ b.ToTable("course");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Document", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("Description")
+ .HasColumnName("description")
+ .HasColumnType("text");
+
+ b.Property("InternshipId")
+ .HasColumnName("internship_id")
+ .HasColumnType("bigint");
+
+ b.Property("InternshipId1")
+ .HasColumnName("internship_id1")
+ .HasColumnType("bigint");
+
+ b.Property("RejectionReason")
+ .HasColumnName("rejection_reason")
+ .HasColumnType("text");
+
+ b.Property("Scan")
+ .HasColumnName("scan")
+ .HasColumnType("bytea");
+
+ b.Property("State")
+ .HasColumnName("state")
+ .HasColumnType("integer");
+
+ b.Property("Type")
+ .HasColumnName("type")
+ .HasColumnType("integer");
+
+ b.HasKey("Id")
+ .HasName("pk_document");
+
+ b.HasIndex("InternshipId")
+ .HasName("ix_document_internship_id");
+
+ b.HasIndex("InternshipId1")
+ .HasName("ix_document_internship_id1");
+
+ b.ToTable("document");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Edition", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("uuid");
+
+ b.Property("CourseId")
+ .HasColumnName("course_id")
+ .HasColumnType("bigint");
+
+ b.Property("EditionFinish")
+ .HasColumnName("edition_finish")
+ .HasColumnType("timestamp without time zone");
+
+ b.Property("EditionStart")
+ .HasColumnName("edition_start")
+ .HasColumnType("timestamp without time zone");
+
+ b.Property("ReportingStart")
+ .HasColumnName("reporting_start")
+ .HasColumnType("timestamp without time zone");
+
+ b.HasKey("Id")
+ .HasName("pk_editions");
+
+ b.HasIndex("CourseId")
+ .HasName("ix_editions_course_id");
+
+ b.ToTable("editions");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Entity.Internship.Internship", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("EditionId")
+ .HasColumnName("edition_id")
+ .HasColumnType("uuid");
+
+ b.Property("Grade")
+ .HasColumnName("grade")
+ .HasColumnType("real");
+
+ b.Property("InternshipRegistrationId")
+ .HasColumnName("internship_registration_id")
+ .HasColumnType("bigint");
+
+ b.Property("ReportId")
+ .HasColumnName("report_id")
+ .HasColumnType("bigint");
+
+ b.Property("StudentId")
+ .HasColumnName("student_id")
+ .HasColumnType("bigint");
+
+ b.HasKey("Id")
+ .HasName("pk_internship");
+
+ b.HasIndex("EditionId")
+ .HasName("ix_internship_edition_id");
+
+ b.HasIndex("InternshipRegistrationId")
+ .HasName("ix_internship_internship_registration_id");
+
+ b.HasIndex("ReportId")
+ .HasName("ix_internship_report_id");
+
+ b.HasIndex("StudentId")
+ .HasName("ix_internship_student_id");
+
+ b.ToTable("internship");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Entity.Internship.InternshipRegistration", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("BranchAddressId")
+ .HasColumnName("branch_address_id")
+ .HasColumnType("bigint");
+
+ b.Property("CompanyId")
+ .HasColumnName("company_id")
+ .HasColumnType("bigint");
+
+ b.Property("End")
+ .HasColumnName("end")
+ .HasColumnType("timestamp without time zone");
+
+ b.Property("Start")
+ .HasColumnName("start")
+ .HasColumnType("timestamp without time zone");
+
+ b.Property("State")
+ .HasColumnName("state")
+ .HasColumnType("integer");
+
+ b.Property("TypeId")
+ .HasColumnName("type_id")
+ .HasColumnType("bigint");
+
+ b.HasKey("Id")
+ .HasName("pk_internship_registration");
+
+ b.HasIndex("BranchAddressId")
+ .HasName("ix_internship_registration_branch_address_id");
+
+ b.HasIndex("CompanyId")
+ .HasName("ix_internship_registration_company_id");
+
+ b.HasIndex("TypeId")
+ .HasName("ix_internship_registration_type_id");
+
+ b.ToTable("internship_registration");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Entity.Internship.InternshipSubject", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("Description")
+ .HasColumnName("description")
+ .HasColumnType("text");
+
+ b.Property("DescriptionEng")
+ .HasColumnName("description_eng")
+ .HasColumnType("text");
+
+ b.HasKey("Id")
+ .HasName("pk_internship_subject");
+
+ b.ToTable("internship_subject");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Entity.Internship.InternshipType", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("Description")
+ .HasColumnName("description")
+ .HasColumnType("text");
+
+ b.Property("DescriptionEng")
+ .HasColumnName("description_eng")
+ .HasColumnType("text");
+
+ b.Property("Label")
+ .HasColumnName("label")
+ .HasColumnType("text");
+
+ b.Property("LabelEng")
+ .HasColumnName("label_eng")
+ .HasColumnType("text");
+
+ b.HasKey("Id")
+ .HasName("pk_internship_types");
+
+ b.ToTable("internship_types");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Report", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("Range")
+ .HasColumnName("range")
+ .HasColumnType("integer");
+
+ b.Property("SiteAddress")
+ .HasColumnName("site_address")
+ .HasColumnType("text");
+
+ b.Property("State")
+ .HasColumnName("state")
+ .HasColumnType("integer");
+
+ b.HasKey("Id")
+ .HasName("pk_report");
+
+ b.ToTable("report");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.StaticPage", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("AccessName")
+ .HasColumnName("access_name")
+ .HasColumnType("text");
+
+ b.Property("Content")
+ .HasColumnName("content")
+ .HasColumnType("text");
+
+ b.Property("ContentEng")
+ .HasColumnName("content_eng")
+ .HasColumnType("text");
+
+ b.Property("Title")
+ .HasColumnName("title")
+ .HasColumnType("text");
+
+ b.Property("TitleEng")
+ .HasColumnName("title_eng")
+ .HasColumnType("text");
+
+ b.HasKey("Id")
+ .HasName("pk_static_pages");
+
+ b.ToTable("static_pages");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Student", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("AlbumNumber")
+ .HasColumnName("album_number")
+ .HasColumnType("integer");
+
+ b.Property("Course")
+ .HasColumnName("course")
+ .HasColumnType("text");
+
+ b.Property("Email")
+ .HasColumnName("email")
+ .HasColumnType("text");
+
+ b.Property("FirstName")
+ .HasColumnName("first_name")
+ .HasColumnType("text");
+
+ b.Property("LastName")
+ .HasColumnName("last_name")
+ .HasColumnType("text");
+
+ b.Property("Semester")
+ .HasColumnName("semester")
+ .HasColumnType("integer");
+
+ b.HasKey("Id")
+ .HasName("pk_students");
+
+ b.ToTable("students");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.UglyOrmArtifacts.EditionInternshipType", b =>
+ {
+ b.Property("EditionId")
+ .HasColumnName("edition_id")
+ .HasColumnType("uuid");
+
+ b.Property("InternshipTypeId")
+ .HasColumnName("internship_type_id")
+ .HasColumnType("bigint");
+
+ b.HasKey("EditionId", "InternshipTypeId")
+ .HasName("pk_edition_internship_type");
+
+ b.HasIndex("InternshipTypeId")
+ .HasName("ix_edition_internship_type_internship_type_id");
+
+ b.ToTable("edition_internship_type");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.UglyOrmArtifacts.EditionSubject", b =>
+ {
+ b.Property("EditionId")
+ .HasColumnName("edition_id")
+ .HasColumnType("uuid");
+
+ b.Property("InternshipSubjectId")
+ .HasColumnName("internship_subject_id")
+ .HasColumnType("bigint");
+
+ b.HasKey("EditionId", "InternshipSubjectId")
+ .HasName("pk_edition_subject");
+
+ b.HasIndex("InternshipSubjectId")
+ .HasName("ix_edition_subject_internship_subject_id");
+
+ b.ToTable("edition_subject");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.UglyOrmArtifacts.ProgramSubject", b =>
+ {
+ b.Property("InternshipRegistrationId")
+ .HasColumnName("internship_registration_id")
+ .HasColumnType("bigint");
+
+ b.Property("InternshipSubjectId")
+ .HasColumnName("internship_subject_id")
+ .HasColumnType("bigint");
+
+ b.HasKey("InternshipRegistrationId", "InternshipSubjectId")
+ .HasName("pk_program_subject");
+
+ b.HasIndex("InternshipSubjectId")
+ .HasName("ix_program_subject_internship_subject_id");
+
+ b.ToTable("program_subject");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.BranchOffice", b =>
+ {
+ b.HasOne("InternshipSystem.Core.Company", null)
+ .WithMany("Branches")
+ .HasForeignKey("CompanyId")
+ .HasConstraintName("fk_branch_office_companies_company_id");
+
+ b.OwnsOne("InternshipSystem.Core.BranchAddress", "Address", b1 =>
+ {
+ b1.Property("BranchOfficeId")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b1.Property("Building")
+ .HasColumnName("building")
+ .HasColumnType("text");
+
+ b1.Property("City")
+ .HasColumnName("city")
+ .HasColumnType("text");
+
+ b1.Property("Country")
+ .HasColumnName("country")
+ .HasColumnType("text");
+
+ b1.Property("PostalCode")
+ .HasColumnName("postal_code")
+ .HasColumnType("text");
+
+ b1.Property("Street")
+ .HasColumnName("street")
+ .HasColumnType("text");
+
+ b1.HasKey("BranchOfficeId")
+ .HasName("pk_branch_office");
+
+ b1.ToTable("branch_office");
+
+ b1.WithOwner()
+ .HasForeignKey("BranchOfficeId")
+ .HasConstraintName("fk_branch_address_branch_office_branch_office_id");
+ });
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Document", b =>
+ {
+ b.HasOne("InternshipSystem.Core.Entity.Internship.Internship", null)
+ .WithMany("Approvals")
+ .HasForeignKey("InternshipId")
+ .HasConstraintName("fk_document_internship_internship_id");
+
+ b.HasOne("InternshipSystem.Core.Entity.Internship.Internship", null)
+ .WithMany("Documentation")
+ .HasForeignKey("InternshipId1")
+ .HasConstraintName("fk_document_internship_internship_id1");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Edition", b =>
+ {
+ b.HasOne("InternshipSystem.Core.Course", "Course")
+ .WithMany()
+ .HasForeignKey("CourseId")
+ .HasConstraintName("fk_editions_course_course_id");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Entity.Internship.Internship", b =>
+ {
+ b.HasOne("InternshipSystem.Core.Edition", "Edition")
+ .WithMany("Internships")
+ .HasForeignKey("EditionId")
+ .HasConstraintName("fk_internship_editions_edition_id");
+
+ b.HasOne("InternshipSystem.Core.Entity.Internship.InternshipRegistration", "InternshipRegistration")
+ .WithMany()
+ .HasForeignKey("InternshipRegistrationId")
+ .HasConstraintName("fk_internship_internship_registration_internship_registration_");
+
+ b.HasOne("InternshipSystem.Core.Report", "Report")
+ .WithMany()
+ .HasForeignKey("ReportId")
+ .HasConstraintName("fk_internship_report_report_id");
+
+ b.HasOne("InternshipSystem.Core.Student", "Student")
+ .WithMany()
+ .HasForeignKey("StudentId")
+ .HasConstraintName("fk_internship_students_student_id");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Entity.Internship.InternshipRegistration", b =>
+ {
+ b.HasOne("InternshipSystem.Core.BranchOffice", "BranchAddress")
+ .WithMany()
+ .HasForeignKey("BranchAddressId")
+ .HasConstraintName("fk_internship_registration_branch_office_branch_address_id");
+
+ b.HasOne("InternshipSystem.Core.Company", "Company")
+ .WithMany()
+ .HasForeignKey("CompanyId")
+ .HasConstraintName("fk_internship_registration_companies_company_id");
+
+ b.HasOne("InternshipSystem.Core.Entity.Internship.InternshipType", "Type")
+ .WithMany()
+ .HasForeignKey("TypeId")
+ .HasConstraintName("fk_internship_registration_internship_types_type_id");
+
+ b.OwnsOne("InternshipSystem.Core.Mentor", "Mentor", b1 =>
+ {
+ b1.Property("InternshipRegistrationId")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b1.Property("Email")
+ .HasColumnName("email")
+ .HasColumnType("text");
+
+ b1.Property("FirstName")
+ .HasColumnName("first_name")
+ .HasColumnType("text");
+
+ b1.Property("LastName")
+ .HasColumnName("last_name")
+ .HasColumnType("text");
+
+ b1.Property("PhoneNumber")
+ .HasColumnName("phone_number")
+ .HasColumnType("text");
+
+ b1.HasKey("InternshipRegistrationId")
+ .HasName("pk_internship_registration");
+
+ b1.ToTable("internship_registration");
+
+ b1.WithOwner()
+ .HasForeignKey("InternshipRegistrationId")
+ .HasConstraintName("fk_mentor_internship_registration_internship_registration_id");
+ });
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.UglyOrmArtifacts.EditionInternshipType", b =>
+ {
+ b.HasOne("InternshipSystem.Core.Edition", "Edition")
+ .WithMany("AvailableInternshipTypes")
+ .HasForeignKey("EditionId")
+ .HasConstraintName("fk_edition_internship_type_editions_edition_id")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("InternshipSystem.Core.Entity.Internship.InternshipType", "InternshipType")
+ .WithMany()
+ .HasForeignKey("InternshipTypeId")
+ .HasConstraintName("fk_edition_internship_type_internship_types_internship_type_id")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.UglyOrmArtifacts.EditionSubject", b =>
+ {
+ b.HasOne("InternshipSystem.Core.Edition", "Edition")
+ .WithMany("AvailableSubjects")
+ .HasForeignKey("EditionId")
+ .HasConstraintName("fk_edition_subject_editions_edition_id")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("InternshipSystem.Core.Entity.Internship.InternshipSubject", "Subject")
+ .WithMany()
+ .HasForeignKey("InternshipSubjectId")
+ .HasConstraintName("fk_edition_subject_internship_subject_internship_subject_id")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.UglyOrmArtifacts.ProgramSubject", b =>
+ {
+ b.HasOne("InternshipSystem.Core.Entity.Internship.InternshipRegistration", "Registration")
+ .WithMany("Subjects")
+ .HasForeignKey("InternshipRegistrationId")
+ .HasConstraintName("fk_program_subject_internship_registration_internship_registrat")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("InternshipSystem.Core.Entity.Internship.InternshipSubject", "Subject")
+ .WithMany()
+ .HasForeignKey("InternshipSubjectId")
+ .HasConstraintName("fk_program_subject_internship_subject_internship_subject_id")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/src/InternshipSystem.Repository/Migrations/20201003202928_init.cs b/src/InternshipSystem.Repository/Migrations/20201003202928_init.cs
new file mode 100644
index 0000000..b950b85
--- /dev/null
+++ b/src/InternshipSystem.Repository/Migrations/20201003202928_init.cs
@@ -0,0 +1,468 @@
+using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+namespace InternshipSystem.Repository.Migrations
+{
+ public partial class init : Migration
+ {
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.CreateTable(
+ name: "companies",
+ columns: table => new
+ {
+ id = table.Column(nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ nip = table.Column(nullable: true),
+ name = table.Column(nullable: true),
+ provider = table.Column(nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_companies", x => x.id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "course",
+ columns: table => new
+ {
+ id = table.Column(nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ name = table.Column(nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_course", x => x.id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "internship_subject",
+ columns: table => new
+ {
+ id = table.Column(nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ description = table.Column(nullable: true),
+ description_eng = table.Column(nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_internship_subject", x => x.id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "internship_types",
+ columns: table => new
+ {
+ id = table.Column(nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ label = table.Column(nullable: true),
+ label_eng = table.Column(nullable: true),
+ description = table.Column(nullable: true),
+ description_eng = table.Column(nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_internship_types", x => x.id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "report",
+ columns: table => new
+ {
+ id = table.Column(nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ state = table.Column(nullable: false),
+ range = table.Column(nullable: false),
+ site_address = table.Column(nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_report", x => x.id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "static_pages",
+ columns: table => new
+ {
+ id = table.Column(nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ access_name = table.Column(nullable: true),
+ title = table.Column(nullable: true),
+ title_eng = table.Column(nullable: true),
+ content = table.Column(nullable: true),
+ content_eng = table.Column(nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_static_pages", x => x.id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "students",
+ columns: table => new
+ {
+ id = table.Column(nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ album_number = table.Column(nullable: false),
+ first_name = table.Column(nullable: true),
+ last_name = table.Column(nullable: true),
+ email = table.Column(nullable: true),
+ course = table.Column(nullable: true),
+ semester = table.Column(nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_students", x => x.id);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "branch_office",
+ columns: table => new
+ {
+ id = table.Column(nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ street = table.Column(nullable: true),
+ building = table.Column(nullable: true),
+ city = table.Column(nullable: true),
+ postal_code = table.Column(nullable: true),
+ country = table.Column(nullable: true),
+ provider = table.Column(nullable: false),
+ company_id = table.Column(nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_branch_office", x => x.id);
+ table.ForeignKey(
+ name: "fk_branch_office_companies_company_id",
+ column: x => x.company_id,
+ principalTable: "companies",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Restrict);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "editions",
+ columns: table => new
+ {
+ id = table.Column(nullable: false),
+ edition_start = table.Column(nullable: false),
+ edition_finish = table.Column(nullable: false),
+ reporting_start = table.Column(nullable: false),
+ course_id = table.Column(nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_editions", x => x.id);
+ table.ForeignKey(
+ name: "fk_editions_course_course_id",
+ column: x => x.course_id,
+ principalTable: "course",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Restrict);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "internship_registration",
+ columns: table => new
+ {
+ id = table.Column(nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ company_id = table.Column(nullable: true),
+ branch_address_id = table.Column(nullable: true),
+ start = table.Column(nullable: false),
+ end = table.Column(nullable: false),
+ first_name = table.Column(nullable: true),
+ last_name = table.Column(nullable: true),
+ email = table.Column(nullable: true),
+ phone_number = table.Column(nullable: true),
+ type_id = table.Column(nullable: true),
+ state = table.Column(nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_internship_registration", x => x.id);
+ table.ForeignKey(
+ name: "fk_internship_registration_branch_office_branch_address_id",
+ column: x => x.branch_address_id,
+ principalTable: "branch_office",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Restrict);
+ table.ForeignKey(
+ name: "fk_internship_registration_companies_company_id",
+ column: x => x.company_id,
+ principalTable: "companies",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Restrict);
+ table.ForeignKey(
+ name: "fk_internship_registration_internship_types_type_id",
+ column: x => x.type_id,
+ principalTable: "internship_types",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Restrict);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "edition_internship_type",
+ columns: table => new
+ {
+ edition_id = table.Column(nullable: false),
+ internship_type_id = table.Column(nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_edition_internship_type", x => new { x.edition_id, x.internship_type_id });
+ table.ForeignKey(
+ name: "fk_edition_internship_type_editions_edition_id",
+ column: x => x.edition_id,
+ principalTable: "editions",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "fk_edition_internship_type_internship_types_internship_type_id",
+ column: x => x.internship_type_id,
+ principalTable: "internship_types",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "edition_subject",
+ columns: table => new
+ {
+ edition_id = table.Column(nullable: false),
+ internship_subject_id = table.Column(nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_edition_subject", x => new { x.edition_id, x.internship_subject_id });
+ table.ForeignKey(
+ name: "fk_edition_subject_editions_edition_id",
+ column: x => x.edition_id,
+ principalTable: "editions",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "fk_edition_subject_internship_subject_internship_subject_id",
+ column: x => x.internship_subject_id,
+ principalTable: "internship_subject",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "internship",
+ columns: table => new
+ {
+ id = table.Column(nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ student_id = table.Column(nullable: true),
+ internship_registration_id = table.Column(nullable: true),
+ report_id = table.Column(nullable: true),
+ edition_id = table.Column(nullable: true),
+ grade = table.Column(nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_internship", x => x.id);
+ table.ForeignKey(
+ name: "fk_internship_editions_edition_id",
+ column: x => x.edition_id,
+ principalTable: "editions",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Restrict);
+ table.ForeignKey(
+ name: "fk_internship_internship_registration_internship_registration_",
+ column: x => x.internship_registration_id,
+ principalTable: "internship_registration",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Restrict);
+ table.ForeignKey(
+ name: "fk_internship_report_report_id",
+ column: x => x.report_id,
+ principalTable: "report",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Restrict);
+ table.ForeignKey(
+ name: "fk_internship_students_student_id",
+ column: x => x.student_id,
+ principalTable: "students",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Restrict);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "program_subject",
+ columns: table => new
+ {
+ internship_registration_id = table.Column(nullable: false),
+ internship_subject_id = table.Column(nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_program_subject", x => new { x.internship_registration_id, x.internship_subject_id });
+ table.ForeignKey(
+ name: "fk_program_subject_internship_registration_internship_registrat",
+ column: x => x.internship_registration_id,
+ principalTable: "internship_registration",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ table.ForeignKey(
+ name: "fk_program_subject_internship_subject_internship_subject_id",
+ column: x => x.internship_subject_id,
+ principalTable: "internship_subject",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "document",
+ columns: table => new
+ {
+ id = table.Column(nullable: false)
+ .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+ description = table.Column(nullable: true),
+ scan = table.Column(nullable: true),
+ type = table.Column(nullable: false),
+ state = table.Column(nullable: false),
+ rejection_reason = table.Column(nullable: true),
+ internship_id = table.Column(nullable: true),
+ internship_id1 = table.Column(nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("pk_document", x => x.id);
+ table.ForeignKey(
+ name: "fk_document_internship_internship_id",
+ column: x => x.internship_id,
+ principalTable: "internship",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Restrict);
+ table.ForeignKey(
+ name: "fk_document_internship_internship_id1",
+ column: x => x.internship_id1,
+ principalTable: "internship",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Restrict);
+ });
+
+ migrationBuilder.CreateIndex(
+ name: "ix_branch_office_company_id",
+ table: "branch_office",
+ column: "company_id");
+
+ migrationBuilder.CreateIndex(
+ name: "ix_document_internship_id",
+ table: "document",
+ column: "internship_id");
+
+ migrationBuilder.CreateIndex(
+ name: "ix_document_internship_id1",
+ table: "document",
+ column: "internship_id1");
+
+ migrationBuilder.CreateIndex(
+ name: "ix_edition_internship_type_internship_type_id",
+ table: "edition_internship_type",
+ column: "internship_type_id");
+
+ migrationBuilder.CreateIndex(
+ name: "ix_edition_subject_internship_subject_id",
+ table: "edition_subject",
+ column: "internship_subject_id");
+
+ migrationBuilder.CreateIndex(
+ name: "ix_editions_course_id",
+ table: "editions",
+ column: "course_id");
+
+ migrationBuilder.CreateIndex(
+ name: "ix_internship_edition_id",
+ table: "internship",
+ column: "edition_id");
+
+ migrationBuilder.CreateIndex(
+ name: "ix_internship_internship_registration_id",
+ table: "internship",
+ column: "internship_registration_id");
+
+ migrationBuilder.CreateIndex(
+ name: "ix_internship_report_id",
+ table: "internship",
+ column: "report_id");
+
+ migrationBuilder.CreateIndex(
+ name: "ix_internship_student_id",
+ table: "internship",
+ column: "student_id");
+
+ migrationBuilder.CreateIndex(
+ name: "ix_internship_registration_branch_address_id",
+ table: "internship_registration",
+ column: "branch_address_id");
+
+ migrationBuilder.CreateIndex(
+ name: "ix_internship_registration_company_id",
+ table: "internship_registration",
+ column: "company_id");
+
+ migrationBuilder.CreateIndex(
+ name: "ix_internship_registration_type_id",
+ table: "internship_registration",
+ column: "type_id");
+
+ migrationBuilder.CreateIndex(
+ name: "ix_program_subject_internship_subject_id",
+ table: "program_subject",
+ column: "internship_subject_id");
+ }
+
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropTable(
+ name: "document");
+
+ migrationBuilder.DropTable(
+ name: "edition_internship_type");
+
+ migrationBuilder.DropTable(
+ name: "edition_subject");
+
+ migrationBuilder.DropTable(
+ name: "program_subject");
+
+ migrationBuilder.DropTable(
+ name: "static_pages");
+
+ migrationBuilder.DropTable(
+ name: "internship");
+
+ migrationBuilder.DropTable(
+ name: "internship_subject");
+
+ migrationBuilder.DropTable(
+ name: "editions");
+
+ migrationBuilder.DropTable(
+ name: "internship_registration");
+
+ migrationBuilder.DropTable(
+ name: "report");
+
+ migrationBuilder.DropTable(
+ name: "students");
+
+ migrationBuilder.DropTable(
+ name: "course");
+
+ migrationBuilder.DropTable(
+ name: "branch_office");
+
+ migrationBuilder.DropTable(
+ name: "internship_types");
+
+ migrationBuilder.DropTable(
+ name: "companies");
+ }
+ }
+}
diff --git a/src/InternshipSystem.Repository/Migrations/InternshipDbContextModelSnapshot.cs b/src/InternshipSystem.Repository/Migrations/InternshipDbContextModelSnapshot.cs
new file mode 100644
index 0000000..b43220e
--- /dev/null
+++ b/src/InternshipSystem.Repository/Migrations/InternshipDbContextModelSnapshot.cs
@@ -0,0 +1,666 @@
+//
+using System;
+using InternshipSystem.Repository;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+namespace InternshipSystem.Repository.Migrations
+{
+ [DbContext(typeof(InternshipDbContext))]
+ partial class InternshipDbContextModelSnapshot : ModelSnapshot
+ {
+ protected override void BuildModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn)
+ .HasAnnotation("ProductVersion", "3.1.4")
+ .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+ modelBuilder.Entity("InternshipSystem.Core.BranchOffice", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("CompanyId")
+ .HasColumnName("company_id")
+ .HasColumnType("bigint");
+
+ b.Property("Provider")
+ .HasColumnName("provider")
+ .HasColumnType("bigint");
+
+ b.HasKey("Id")
+ .HasName("pk_branch_office");
+
+ b.HasIndex("CompanyId")
+ .HasName("ix_branch_office_company_id");
+
+ b.ToTable("branch_office");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Company", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("Name")
+ .HasColumnName("name")
+ .HasColumnType("text");
+
+ b.Property("Nip")
+ .HasColumnName("nip")
+ .HasColumnType("text");
+
+ b.Property("Provider")
+ .HasColumnName("provider")
+ .HasColumnType("bigint");
+
+ b.HasKey("Id")
+ .HasName("pk_companies");
+
+ b.ToTable("companies");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Course", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("Name")
+ .HasColumnName("name")
+ .HasColumnType("text");
+
+ b.HasKey("Id")
+ .HasName("pk_course");
+
+ b.ToTable("course");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Document", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("Description")
+ .HasColumnName("description")
+ .HasColumnType("text");
+
+ b.Property("InternshipId")
+ .HasColumnName("internship_id")
+ .HasColumnType("bigint");
+
+ b.Property("InternshipId1")
+ .HasColumnName("internship_id1")
+ .HasColumnType("bigint");
+
+ b.Property("RejectionReason")
+ .HasColumnName("rejection_reason")
+ .HasColumnType("text");
+
+ b.Property("Scan")
+ .HasColumnName("scan")
+ .HasColumnType("bytea");
+
+ b.Property("State")
+ .HasColumnName("state")
+ .HasColumnType("integer");
+
+ b.Property("Type")
+ .HasColumnName("type")
+ .HasColumnType("integer");
+
+ b.HasKey("Id")
+ .HasName("pk_document");
+
+ b.HasIndex("InternshipId")
+ .HasName("ix_document_internship_id");
+
+ b.HasIndex("InternshipId1")
+ .HasName("ix_document_internship_id1");
+
+ b.ToTable("document");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Edition", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("uuid");
+
+ b.Property("CourseId")
+ .HasColumnName("course_id")
+ .HasColumnType("bigint");
+
+ b.Property("EditionFinish")
+ .HasColumnName("edition_finish")
+ .HasColumnType("timestamp without time zone");
+
+ b.Property("EditionStart")
+ .HasColumnName("edition_start")
+ .HasColumnType("timestamp without time zone");
+
+ b.Property("ReportingStart")
+ .HasColumnName("reporting_start")
+ .HasColumnType("timestamp without time zone");
+
+ b.HasKey("Id")
+ .HasName("pk_editions");
+
+ b.HasIndex("CourseId")
+ .HasName("ix_editions_course_id");
+
+ b.ToTable("editions");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Entity.Internship.Internship", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("EditionId")
+ .HasColumnName("edition_id")
+ .HasColumnType("uuid");
+
+ b.Property("Grade")
+ .HasColumnName("grade")
+ .HasColumnType("real");
+
+ b.Property("InternshipRegistrationId")
+ .HasColumnName("internship_registration_id")
+ .HasColumnType("bigint");
+
+ b.Property("ReportId")
+ .HasColumnName("report_id")
+ .HasColumnType("bigint");
+
+ b.Property("StudentId")
+ .HasColumnName("student_id")
+ .HasColumnType("bigint");
+
+ b.HasKey("Id")
+ .HasName("pk_internship");
+
+ b.HasIndex("EditionId")
+ .HasName("ix_internship_edition_id");
+
+ b.HasIndex("InternshipRegistrationId")
+ .HasName("ix_internship_internship_registration_id");
+
+ b.HasIndex("ReportId")
+ .HasName("ix_internship_report_id");
+
+ b.HasIndex("StudentId")
+ .HasName("ix_internship_student_id");
+
+ b.ToTable("internship");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Entity.Internship.InternshipRegistration", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("BranchAddressId")
+ .HasColumnName("branch_address_id")
+ .HasColumnType("bigint");
+
+ b.Property("CompanyId")
+ .HasColumnName("company_id")
+ .HasColumnType("bigint");
+
+ b.Property("End")
+ .HasColumnName("end")
+ .HasColumnType("timestamp without time zone");
+
+ b.Property("Start")
+ .HasColumnName("start")
+ .HasColumnType("timestamp without time zone");
+
+ b.Property("State")
+ .HasColumnName("state")
+ .HasColumnType("integer");
+
+ b.Property("TypeId")
+ .HasColumnName("type_id")
+ .HasColumnType("bigint");
+
+ b.HasKey("Id")
+ .HasName("pk_internship_registration");
+
+ b.HasIndex("BranchAddressId")
+ .HasName("ix_internship_registration_branch_address_id");
+
+ b.HasIndex("CompanyId")
+ .HasName("ix_internship_registration_company_id");
+
+ b.HasIndex("TypeId")
+ .HasName("ix_internship_registration_type_id");
+
+ b.ToTable("internship_registration");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Entity.Internship.InternshipSubject", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("Description")
+ .HasColumnName("description")
+ .HasColumnType("text");
+
+ b.Property("DescriptionEng")
+ .HasColumnName("description_eng")
+ .HasColumnType("text");
+
+ b.HasKey("Id")
+ .HasName("pk_internship_subject");
+
+ b.ToTable("internship_subject");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Entity.Internship.InternshipType", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("Description")
+ .HasColumnName("description")
+ .HasColumnType("text");
+
+ b.Property("DescriptionEng")
+ .HasColumnName("description_eng")
+ .HasColumnType("text");
+
+ b.Property("Label")
+ .HasColumnName("label")
+ .HasColumnType("text");
+
+ b.Property("LabelEng")
+ .HasColumnName("label_eng")
+ .HasColumnType("text");
+
+ b.HasKey("Id")
+ .HasName("pk_internship_types");
+
+ b.ToTable("internship_types");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Report", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("Range")
+ .HasColumnName("range")
+ .HasColumnType("integer");
+
+ b.Property("SiteAddress")
+ .HasColumnName("site_address")
+ .HasColumnType("text");
+
+ b.Property("State")
+ .HasColumnName("state")
+ .HasColumnType("integer");
+
+ b.HasKey("Id")
+ .HasName("pk_report");
+
+ b.ToTable("report");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.StaticPage", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("AccessName")
+ .HasColumnName("access_name")
+ .HasColumnType("text");
+
+ b.Property("Content")
+ .HasColumnName("content")
+ .HasColumnType("text");
+
+ b.Property("ContentEng")
+ .HasColumnName("content_eng")
+ .HasColumnType("text");
+
+ b.Property("Title")
+ .HasColumnName("title")
+ .HasColumnType("text");
+
+ b.Property("TitleEng")
+ .HasColumnName("title_eng")
+ .HasColumnType("text");
+
+ b.HasKey("Id")
+ .HasName("pk_static_pages");
+
+ b.ToTable("static_pages");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Student", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("AlbumNumber")
+ .HasColumnName("album_number")
+ .HasColumnType("integer");
+
+ b.Property("Course")
+ .HasColumnName("course")
+ .HasColumnType("text");
+
+ b.Property("Email")
+ .HasColumnName("email")
+ .HasColumnType("text");
+
+ b.Property("FirstName")
+ .HasColumnName("first_name")
+ .HasColumnType("text");
+
+ b.Property("LastName")
+ .HasColumnName("last_name")
+ .HasColumnType("text");
+
+ b.Property("Semester")
+ .HasColumnName("semester")
+ .HasColumnType("integer");
+
+ b.HasKey("Id")
+ .HasName("pk_students");
+
+ b.ToTable("students");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.UglyOrmArtifacts.EditionInternshipType", b =>
+ {
+ b.Property("EditionId")
+ .HasColumnName("edition_id")
+ .HasColumnType("uuid");
+
+ b.Property("InternshipTypeId")
+ .HasColumnName("internship_type_id")
+ .HasColumnType("bigint");
+
+ b.HasKey("EditionId", "InternshipTypeId")
+ .HasName("pk_edition_internship_type");
+
+ b.HasIndex("InternshipTypeId")
+ .HasName("ix_edition_internship_type_internship_type_id");
+
+ b.ToTable("edition_internship_type");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.UglyOrmArtifacts.EditionSubject", b =>
+ {
+ b.Property("EditionId")
+ .HasColumnName("edition_id")
+ .HasColumnType("uuid");
+
+ b.Property("InternshipSubjectId")
+ .HasColumnName("internship_subject_id")
+ .HasColumnType("bigint");
+
+ b.HasKey("EditionId", "InternshipSubjectId")
+ .HasName("pk_edition_subject");
+
+ b.HasIndex("InternshipSubjectId")
+ .HasName("ix_edition_subject_internship_subject_id");
+
+ b.ToTable("edition_subject");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.UglyOrmArtifacts.ProgramSubject", b =>
+ {
+ b.Property("InternshipRegistrationId")
+ .HasColumnName("internship_registration_id")
+ .HasColumnType("bigint");
+
+ b.Property("InternshipSubjectId")
+ .HasColumnName("internship_subject_id")
+ .HasColumnType("bigint");
+
+ b.HasKey("InternshipRegistrationId", "InternshipSubjectId")
+ .HasName("pk_program_subject");
+
+ b.HasIndex("InternshipSubjectId")
+ .HasName("ix_program_subject_internship_subject_id");
+
+ b.ToTable("program_subject");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.BranchOffice", b =>
+ {
+ b.HasOne("InternshipSystem.Core.Company", null)
+ .WithMany("Branches")
+ .HasForeignKey("CompanyId")
+ .HasConstraintName("fk_branch_office_companies_company_id");
+
+ b.OwnsOne("InternshipSystem.Core.BranchAddress", "Address", b1 =>
+ {
+ b1.Property("BranchOfficeId")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b1.Property("Building")
+ .HasColumnName("building")
+ .HasColumnType("text");
+
+ b1.Property("City")
+ .HasColumnName("city")
+ .HasColumnType("text");
+
+ b1.Property("Country")
+ .HasColumnName("country")
+ .HasColumnType("text");
+
+ b1.Property("PostalCode")
+ .HasColumnName("postal_code")
+ .HasColumnType("text");
+
+ b1.Property("Street")
+ .HasColumnName("street")
+ .HasColumnType("text");
+
+ b1.HasKey("BranchOfficeId")
+ .HasName("pk_branch_office");
+
+ b1.ToTable("branch_office");
+
+ b1.WithOwner()
+ .HasForeignKey("BranchOfficeId")
+ .HasConstraintName("fk_branch_address_branch_office_branch_office_id");
+ });
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Document", b =>
+ {
+ b.HasOne("InternshipSystem.Core.Entity.Internship.Internship", null)
+ .WithMany("Approvals")
+ .HasForeignKey("InternshipId")
+ .HasConstraintName("fk_document_internship_internship_id");
+
+ b.HasOne("InternshipSystem.Core.Entity.Internship.Internship", null)
+ .WithMany("Documentation")
+ .HasForeignKey("InternshipId1")
+ .HasConstraintName("fk_document_internship_internship_id1");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Edition", b =>
+ {
+ b.HasOne("InternshipSystem.Core.Course", "Course")
+ .WithMany()
+ .HasForeignKey("CourseId")
+ .HasConstraintName("fk_editions_course_course_id");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Entity.Internship.Internship", b =>
+ {
+ b.HasOne("InternshipSystem.Core.Edition", "Edition")
+ .WithMany("Internships")
+ .HasForeignKey("EditionId")
+ .HasConstraintName("fk_internship_editions_edition_id");
+
+ b.HasOne("InternshipSystem.Core.Entity.Internship.InternshipRegistration", "InternshipRegistration")
+ .WithMany()
+ .HasForeignKey("InternshipRegistrationId")
+ .HasConstraintName("fk_internship_internship_registration_internship_registration_");
+
+ b.HasOne("InternshipSystem.Core.Report", "Report")
+ .WithMany()
+ .HasForeignKey("ReportId")
+ .HasConstraintName("fk_internship_report_report_id");
+
+ b.HasOne("InternshipSystem.Core.Student", "Student")
+ .WithMany()
+ .HasForeignKey("StudentId")
+ .HasConstraintName("fk_internship_students_student_id");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Entity.Internship.InternshipRegistration", b =>
+ {
+ b.HasOne("InternshipSystem.Core.BranchOffice", "BranchAddress")
+ .WithMany()
+ .HasForeignKey("BranchAddressId")
+ .HasConstraintName("fk_internship_registration_branch_office_branch_address_id");
+
+ b.HasOne("InternshipSystem.Core.Company", "Company")
+ .WithMany()
+ .HasForeignKey("CompanyId")
+ .HasConstraintName("fk_internship_registration_companies_company_id");
+
+ b.HasOne("InternshipSystem.Core.Entity.Internship.InternshipType", "Type")
+ .WithMany()
+ .HasForeignKey("TypeId")
+ .HasConstraintName("fk_internship_registration_internship_types_type_id");
+
+ b.OwnsOne("InternshipSystem.Core.Mentor", "Mentor", b1 =>
+ {
+ b1.Property("InternshipRegistrationId")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b1.Property("Email")
+ .HasColumnName("email")
+ .HasColumnType("text");
+
+ b1.Property("FirstName")
+ .HasColumnName("first_name")
+ .HasColumnType("text");
+
+ b1.Property("LastName")
+ .HasColumnName("last_name")
+ .HasColumnType("text");
+
+ b1.Property("PhoneNumber")
+ .HasColumnName("phone_number")
+ .HasColumnType("text");
+
+ b1.HasKey("InternshipRegistrationId")
+ .HasName("pk_internship_registration");
+
+ b1.ToTable("internship_registration");
+
+ b1.WithOwner()
+ .HasForeignKey("InternshipRegistrationId")
+ .HasConstraintName("fk_mentor_internship_registration_internship_registration_id");
+ });
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.UglyOrmArtifacts.EditionInternshipType", b =>
+ {
+ b.HasOne("InternshipSystem.Core.Edition", "Edition")
+ .WithMany("AvailableInternshipTypes")
+ .HasForeignKey("EditionId")
+ .HasConstraintName("fk_edition_internship_type_editions_edition_id")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("InternshipSystem.Core.Entity.Internship.InternshipType", "InternshipType")
+ .WithMany()
+ .HasForeignKey("InternshipTypeId")
+ .HasConstraintName("fk_edition_internship_type_internship_types_internship_type_id")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.UglyOrmArtifacts.EditionSubject", b =>
+ {
+ b.HasOne("InternshipSystem.Core.Edition", "Edition")
+ .WithMany("AvailableSubjects")
+ .HasForeignKey("EditionId")
+ .HasConstraintName("fk_edition_subject_editions_edition_id")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("InternshipSystem.Core.Entity.Internship.InternshipSubject", "Subject")
+ .WithMany()
+ .HasForeignKey("InternshipSubjectId")
+ .HasConstraintName("fk_edition_subject_internship_subject_internship_subject_id")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.UglyOrmArtifacts.ProgramSubject", b =>
+ {
+ b.HasOne("InternshipSystem.Core.Entity.Internship.InternshipRegistration", "Registration")
+ .WithMany("Subjects")
+ .HasForeignKey("InternshipRegistrationId")
+ .HasConstraintName("fk_program_subject_internship_registration_internship_registrat")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("InternshipSystem.Core.Entity.Internship.InternshipSubject", "Subject")
+ .WithMany()
+ .HasForeignKey("InternshipSubjectId")
+ .HasConstraintName("fk_program_subject_internship_subject_internship_subject_id")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}