diff --git a/src/InternshipSystem.Api/UseCases/UpdateInternshipRegistrationUseCase.cs b/src/InternshipSystem.Api/UseCases/UpdateInternshipRegistrationUseCase.cs
index ea50e3a..072b8bc 100644
--- a/src/InternshipSystem.Api/UseCases/UpdateInternshipRegistrationUseCase.cs
+++ b/src/InternshipSystem.Api/UseCases/UpdateInternshipRegistrationUseCase.cs
@@ -92,6 +92,15 @@ namespace InternshipSystem.Api.UseCases
_internship.RemoveDocument(DocumentType.InternshipTypeApproval);
}
+ if (editionInternshipType?.InternshipType.RequireInsurance == true)
+ {
+ _internship.AddNewDocument("", DocumentType.NnwInsurance);
+ }
+ else
+ {
+ _internship.RemoveDocument(DocumentType.NnwInsurance);
+ }
+
subjectRegistration.Type = editionInternshipType?.InternshipType ?? subjectRegistration.Type;
}
diff --git a/src/InternshipSystem.Core/Entity/Internship/InternshipType.cs b/src/InternshipSystem.Core/Entity/Internship/InternshipType.cs
index 5d47213..cb59899 100644
--- a/src/InternshipSystem.Core/Entity/Internship/InternshipType.cs
+++ b/src/InternshipSystem.Core/Entity/Internship/InternshipType.cs
@@ -8,5 +8,6 @@
public string Description { get; set; }
public string DescriptionEng { get; set; }
public bool RequireDeansApproval { get; set; }
+ public bool RequireInsurance { get; set; }
}
}
\ No newline at end of file
diff --git a/src/InternshipSystem.Repository/DatabaseFiller.cs b/src/InternshipSystem.Repository/DatabaseFiller.cs
index 8d1c7d6..cc9006f 100644
--- a/src/InternshipSystem.Repository/DatabaseFiller.cs
+++ b/src/InternshipSystem.Repository/DatabaseFiller.cs
@@ -120,6 +120,7 @@ namespace InternshipSystem.Repository
LabelEng = "Internship agreement",
Description = "Praktyka bezpłatna",
DescriptionEng = "Free internship",
+ RequireInsurance = true
},
new InternshipType
{
@@ -130,6 +131,7 @@ namespace InternshipSystem.Repository
{
Label = "Umowa o staż bezpłatny",
LabelEng = "Free apprenticeship agreement",
+ RequireInsurance = true
},
new InternshipType
{
diff --git a/src/InternshipSystem.Repository/Migrations/20210111195519_Insurance.Designer.cs b/src/InternshipSystem.Repository/Migrations/20210111195519_Insurance.Designer.cs
new file mode 100644
index 0000000..b3aca6b
--- /dev/null
+++ b/src/InternshipSystem.Repository/Migrations/20210111195519_Insurance.Designer.cs
@@ -0,0 +1,798 @@
+//
+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("20210111195519_Insurance")]
+ partial class Insurance
+ {
+ 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.Document", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("ChangeStateComment")
+ .HasColumnName("change_state_comment")
+ .HasColumnType("text");
+
+ b.Property("Description")
+ .HasColumnName("description")
+ .HasColumnType("text");
+
+ b.Property("InternshipId")
+ .HasColumnName("internship_id")
+ .HasColumnType("bigint");
+
+ 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.ToTable("document");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.DocumentScan", b =>
+ {
+ b.Property("DocumentId")
+ .HasColumnName("document_id")
+ .HasColumnType("bigint");
+
+ b.Property("File")
+ .HasColumnName("file")
+ .HasColumnType("bytea");
+
+ b.Property("Filename")
+ .HasColumnName("filename")
+ .HasColumnType("text");
+
+ b.Property("Mime")
+ .HasColumnName("mime")
+ .HasColumnType("text");
+
+ b.Property("Size")
+ .HasColumnName("size")
+ .HasColumnType("bigint");
+
+ b.HasKey("DocumentId")
+ .HasName("pk_document_scan");
+
+ b.ToTable("document_scan");
+ });
+
+ 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.Course", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("Name")
+ .HasColumnName("name")
+ .HasColumnType("text");
+
+ b.Property("NameEng")
+ .HasColumnName("name_eng")
+ .HasColumnType("text");
+
+ b.HasKey("Id")
+ .HasName("pk_courses");
+
+ b.ToTable("courses");
+ });
+
+ 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_internships");
+
+ b.HasIndex("EditionId")
+ .HasName("ix_internships_edition_id");
+
+ b.HasIndex("InternshipRegistrationId")
+ .HasName("ix_internships_internship_registration_id");
+
+ b.HasIndex("ReportId")
+ .HasName("ix_internships_report_id");
+
+ b.HasIndex("StudentId")
+ .HasName("ix_internships_student_id");
+
+ b.ToTable("internships");
+ });
+
+ 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("ChangeStateComment")
+ .HasColumnName("change_state_comment")
+ .HasColumnType("text");
+
+ b.Property("CompanyId")
+ .HasColumnName("company_id")
+ .HasColumnType("bigint");
+
+ b.Property("DeclaredHours")
+ .HasColumnName("declared_hours")
+ .HasColumnType("integer");
+
+ 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("SubmissionDate")
+ .HasColumnName("submission_date")
+ .HasColumnType("timestamp without time zone");
+
+ 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.Property("RequireDeansApproval")
+ .HasColumnName("require_deans_approval")
+ .HasColumnType("boolean");
+
+ b.Property("RequireInsurance")
+ .HasColumnName("require_insurance")
+ .HasColumnType("boolean");
+
+ b.HasKey("Id")
+ .HasName("pk_internship_types");
+
+ b.ToTable("internship_types");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Entity.ReportField", 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("FieldType")
+ .HasColumnName("field_type")
+ .HasColumnType("integer");
+
+ b.Property("Label")
+ .HasColumnName("label")
+ .HasColumnType("text");
+
+ b.Property("LabelEng")
+ .HasColumnName("label_eng")
+ .HasColumnType("text");
+
+ b.Property("field_discrimnator")
+ .IsRequired()
+ .HasColumnName("field_discrimnator")
+ .HasColumnType("text");
+
+ b.HasKey("Id")
+ .HasName("pk_report_fields");
+
+ b.ToTable("report_fields");
+
+ b.HasDiscriminator("field_discrimnator").HasValue("single");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Report", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnName("id")
+ .HasColumnType("bigint")
+ .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn);
+
+ b.Property("State")
+ .HasColumnName("state")
+ .HasColumnType("integer");
+
+ b.Property("Value")
+ .HasColumnName("value")
+ .HasColumnType("jsonb");
+
+ 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.UglyOrmArtifacts.ReportFieldEdition", b =>
+ {
+ b.Property("EditionId")
+ .HasColumnName("edition_id")
+ .HasColumnType("uuid");
+
+ b.Property("ReportFieldId")
+ .HasColumnName("report_field_id")
+ .HasColumnType("bigint");
+
+ b.HasKey("EditionId", "ReportFieldId")
+ .HasName("pk_report_field_edition");
+
+ b.HasIndex("ReportFieldId")
+ .HasName("ix_report_field_edition_report_field_id");
+
+ b.ToTable("report_field_edition");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Entity.ReportChoiceField", b =>
+ {
+ b.HasBaseType("InternshipSystem.Core.Entity.ReportField");
+
+ b.Property("Choices")
+ .HasColumnName("choices")
+ .HasColumnType("text");
+
+ b.HasDiscriminator().HasValue("choice");
+ });
+
+ 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("Documentation")
+ .HasForeignKey("InternshipId")
+ .HasConstraintName("fk_document_internships_internship_id");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.DocumentScan", b =>
+ {
+ b.HasOne("InternshipSystem.Core.Document", "Document")
+ .WithOne("Scan")
+ .HasForeignKey("InternshipSystem.Core.DocumentScan", "DocumentId")
+ .HasConstraintName("fk_document_scan_document_document_id")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Edition", b =>
+ {
+ b.HasOne("InternshipSystem.Core.Entity.Course", "Course")
+ .WithMany()
+ .HasForeignKey("CourseId")
+ .HasConstraintName("fk_editions_courses_course_id");
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.Entity.Internship.Internship", b =>
+ {
+ b.HasOne("InternshipSystem.Core.Edition", "Edition")
+ .WithMany("Internships")
+ .HasForeignKey("EditionId")
+ .HasConstraintName("fk_internships_editions_edition_id");
+
+ b.HasOne("InternshipSystem.Core.Entity.Internship.InternshipRegistration", "InternshipRegistration")
+ .WithMany()
+ .HasForeignKey("InternshipRegistrationId")
+ .HasConstraintName("fk_internships_internship_registration_internship_registration");
+
+ b.HasOne("InternshipSystem.Core.Report", "Report")
+ .WithMany()
+ .HasForeignKey("ReportId")
+ .HasConstraintName("fk_internships_report_report_id");
+
+ b.HasOne("InternshipSystem.Core.Student", "Student")
+ .WithMany()
+ .HasForeignKey("StudentId")
+ .HasConstraintName("fk_internships_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();
+ });
+
+ modelBuilder.Entity("InternshipSystem.Core.UglyOrmArtifacts.ReportFieldEdition", b =>
+ {
+ b.HasOne("InternshipSystem.Core.Edition", "Edition")
+ .WithMany("ReportSchema")
+ .HasForeignKey("EditionId")
+ .HasConstraintName("fk_report_field_edition_editions_edition_id")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("InternshipSystem.Core.Entity.ReportField", "Field")
+ .WithMany()
+ .HasForeignKey("ReportFieldId")
+ .HasConstraintName("fk_report_field_edition_report_fields_report_field_id")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/src/InternshipSystem.Repository/Migrations/20210111195519_Insurance.cs b/src/InternshipSystem.Repository/Migrations/20210111195519_Insurance.cs
new file mode 100644
index 0000000..245932a
--- /dev/null
+++ b/src/InternshipSystem.Repository/Migrations/20210111195519_Insurance.cs
@@ -0,0 +1,23 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace InternshipSystem.Repository.Migrations
+{
+ public partial class Insurance : Migration
+ {
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AddColumn(
+ name: "require_insurance",
+ table: "internship_types",
+ nullable: false,
+ defaultValue: false);
+ }
+
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropColumn(
+ name: "require_insurance",
+ table: "internship_types");
+ }
+ }
+}
diff --git a/src/InternshipSystem.Repository/Migrations/InternshipDbContextModelSnapshot.cs b/src/InternshipSystem.Repository/Migrations/InternshipDbContextModelSnapshot.cs
index 56175e9..cbc0454 100644
--- a/src/InternshipSystem.Repository/Migrations/InternshipDbContextModelSnapshot.cs
+++ b/src/InternshipSystem.Repository/Migrations/InternshipDbContextModelSnapshot.cs
@@ -344,6 +344,10 @@ namespace InternshipSystem.Repository.Migrations
.HasColumnName("require_deans_approval")
.HasColumnType("boolean");
+ b.Property("RequireInsurance")
+ .HasColumnName("require_insurance")
+ .HasColumnType("boolean");
+
b.HasKey("Id")
.HasName("pk_internship_types");