From b7a26634ace4fa6770361ee07bbf8e7d1a722270 Mon Sep 17 00:00:00 2001
From: jack-nimbleapproach
<128064239+jack-nimbleapproach@users.noreply.github.com>
Date: Wed, 15 Jan 2025 11:05:28 +0000
Subject: [PATCH] Final finance plan new field - Added any underwritten places
to the finance plan (#990)
---
.../Project/Tasks/FinalFinancePlanTask.cs | 1 +
.../Tasks/FinalFinancePlanTaskApiTests.cs | 3 +
.../FinalFinancePlanTaskBuilder.cs | 1 +
.../UpdateFinalFinancePlanTaskService.cs | 1 +
.../final-finance-plan.cy.ts | 11 +-
.../edit-final-finance-plan.cy.ts | 10 +
.../Entities/Milestones.cs | 1 +
...yUnderwrittenPlacesToFinalPlan.Designer.cs | 12973 ++++++++++++++++
...anAddedAnyUnderwrittenPlacesToFinalPlan.cs | 40 +
.../Migrations/MfspContextModelSnapshot.cs | 5 +-
.../EditFinalFinancePlanTask.cshtml | 3 +-
.../EditFinalFinancePlanTask.cshtml.cs | 6 +
.../ViewFinalFinancePlanTask.cshtml | 3 +-
13 files changed, 13052 insertions(+), 6 deletions(-)
create mode 100644 Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.Data/Migrations/20250113153724_FinalFinancePlanAddedAnyUnderwrittenPlacesToFinalPlan.Designer.cs
create mode 100644 Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.Data/Migrations/20250113153724_FinalFinancePlanAddedAnyUnderwrittenPlacesToFinalPlan.cs
diff --git a/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.API.Contracts/Project/Tasks/FinalFinancePlanTask.cs b/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.API.Contracts/Project/Tasks/FinalFinancePlanTask.cs
index d4ba6ced5..cf7d1ab54 100644
--- a/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.API.Contracts/Project/Tasks/FinalFinancePlanTask.cs
+++ b/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.API.Contracts/Project/Tasks/FinalFinancePlanTask.cs
@@ -7,6 +7,7 @@ public class FinalFinancePlanTask
public bool? ConfirmedTrustHasProvidedFinalPlan { get; set; }
public DateTime? Grade6SignedOffFinalPlanDate { get; set; }
public bool? SentFinalPlanToRevenueFundingMailbox { get; set; }
+ public bool? AddedAnyUnderwrittenPlacesToFinalPlan { get; set; }
public bool? SavedFinalPlanInWorkplacesFolder { get; set; }
public DateTime? ExpectedDateGrade6WillSignOffTheFinalPlan { get; set; }
}
diff --git a/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.API.Tests/Integration/Tasks/FinalFinancePlanTaskApiTests.cs b/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.API.Tests/Integration/Tasks/FinalFinancePlanTaskApiTests.cs
index ea03ae7f4..23cd30519 100644
--- a/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.API.Tests/Integration/Tasks/FinalFinancePlanTaskApiTests.cs
+++ b/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.API.Tests/Integration/Tasks/FinalFinancePlanTaskApiTests.cs
@@ -41,6 +41,7 @@ public async Task Patch_NewFinalFinancePlanTask_Returns_200()
projectResponse.FinalFinancePlan.ConfirmedTrustHasProvidedFinalPlan.Should().Be(true);
projectResponse.FinalFinancePlan.Grade6SignedOffFinalPlanDate.Should().Be(signoffDate);
projectResponse.FinalFinancePlan.SentFinalPlanToRevenueFundingMailbox.Should().BeNull();
+ projectResponse.FinalFinancePlan.AddedAnyUnderwrittenPlacesToFinalPlan.Should().BeNull();
projectResponse.FinalFinancePlan.SavedFinalPlanInWorkplacesFolder.Should().BeNull();
}
@@ -68,6 +69,7 @@ public async Task Patch_ExistingFinalFinancePlanTask_Returns_200()
ConfirmedTrustHasProvidedFinalPlan = true,
Grade6SignedOffFinalPlanDate = signoffDate,
SentFinalPlanToRevenueFundingMailbox = true,
+ AddedAnyUnderwrittenPlacesToFinalPlan = true,
SavedFinalPlanInWorkplacesFolder = true
}
@@ -77,6 +79,7 @@ public async Task Patch_ExistingFinalFinancePlanTask_Returns_200()
projectResponse.FinalFinancePlan.ConfirmedTrustHasProvidedFinalPlan.Should().Be(true);
projectResponse.FinalFinancePlan.Grade6SignedOffFinalPlanDate.Should().Be(signoffDate);
projectResponse.FinalFinancePlan.SentFinalPlanToRevenueFundingMailbox.Should().Be(true);
+ projectResponse.FinalFinancePlan.AddedAnyUnderwrittenPlacesToFinalPlan.Should().Be(true);
projectResponse.FinalFinancePlan.SavedFinalPlanInWorkplacesFolder.Should().Be(true);
}
}
diff --git a/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.API/UseCases/Project/Tasks/FinalFinancePlan/FinalFinancePlanTaskBuilder.cs b/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.API/UseCases/Project/Tasks/FinalFinancePlan/FinalFinancePlanTaskBuilder.cs
index 2b8bf6976..fe5076ddd 100644
--- a/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.API/UseCases/Project/Tasks/FinalFinancePlan/FinalFinancePlanTaskBuilder.cs
+++ b/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.API/UseCases/Project/Tasks/FinalFinancePlan/FinalFinancePlanTaskBuilder.cs
@@ -16,6 +16,7 @@ public static FinalFinancePlanTask Build(Milestones milestones)
ConfirmedTrustHasProvidedFinalPlan = milestones.FsgPreOpeningMilestonesFfpConfirmedTrustHasProvidedFinalPlan,
Grade6SignedOffFinalPlanDate = milestones.FsgPreOpeningMilestonesFpaActualDateOfCompletion,
SentFinalPlanToRevenueFundingMailbox = milestones.FsgPreOpeningMilestonesFfpSentFinalPlanToRevenueFundingMailbox,
+ AddedAnyUnderwrittenPlacesToFinalPlan = milestones.FsgPreOpeningMilestonesFfpAddedAnyUnderwrittenPlacesToFinalPlan,
SavedFinalPlanInWorkplacesFolder = milestones.FsgPreOpeningMilestonesFfpSavedFinalPlanInWorkplacesFolder
};
}
diff --git a/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.API/UseCases/Project/Tasks/FinalFinancePlan/UpdateFinalFinancePlanTaskService.cs b/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.API/UseCases/Project/Tasks/FinalFinancePlan/UpdateFinalFinancePlanTaskService.cs
index 0d892ab1a..1561d54d0 100644
--- a/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.API/UseCases/Project/Tasks/FinalFinancePlan/UpdateFinalFinancePlanTaskService.cs
+++ b/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.API/UseCases/Project/Tasks/FinalFinancePlan/UpdateFinalFinancePlanTaskService.cs
@@ -39,6 +39,7 @@ public async Task Update(UpdateTaskServiceParameters parameters)
milestone.FsgPreOpeningMilestonesFfpConfirmedTrustHasProvidedFinalPlan = task.ConfirmedTrustHasProvidedFinalPlan;
milestone.FsgPreOpeningMilestonesFpaActualDateOfCompletion = task.Grade6SignedOffFinalPlanDate;
milestone.FsgPreOpeningMilestonesFfpSentFinalPlanToRevenueFundingMailbox = task.SentFinalPlanToRevenueFundingMailbox;
+ milestone.FsgPreOpeningMilestonesFfpAddedAnyUnderwrittenPlacesToFinalPlan = task.AddedAnyUnderwrittenPlacesToFinalPlan;
milestone.FsgPreOpeningMilestonesFfpSavedFinalPlanInWorkplacesFolder = task.SavedFinalPlanInWorkplacesFolder;
await _context.SaveChangesAsync();
diff --git a/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.CypressTests/cypress/e2e/tasks/Getting-ready-to-open/final-finance-plan.cy.ts b/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.CypressTests/cypress/e2e/tasks/Getting-ready-to-open/final-finance-plan.cy.ts
index 1102f9c3b..9afd6ae7c 100644
--- a/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.CypressTests/cypress/e2e/tasks/Getting-ready-to-open/final-finance-plan.cy.ts
+++ b/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.CypressTests/cypress/e2e/tasks/Getting-ready-to-open/final-finance-plan.cy.ts
@@ -36,9 +36,10 @@ describe("Testing Final finance plan Task", () => {
.titleIs("Final finance plan")
.inOrder()
.summaryShows("Expected date that the Grade 6 will sign-off the final plan").IsEmpty().HasChangeLink()
- .summaryShows("Confirmed that the trust has provided the final plan").IsEmpty().HasChangeLink()
.summaryShows("Actual date the Grade 6 signed-off the final plan").IsEmpty().HasChangeLink()
+ .summaryShows("Confirmed that the trust has provided the final plan").IsEmpty().HasChangeLink()
.summaryShows("Sent the final plan to the Revenue Funding mailbox").IsEmpty().HasChangeLink()
+ .summaryShows("Added any underwritten places to the finance plan").IsEmpty().HasChangeLink()
.summaryShows("Saved final plan in Workplaces folder").IsEmpty().HasChangeLink()
.isNotMarkedAsComplete();
@@ -94,6 +95,7 @@ describe("Testing Final finance plan Task", () => {
.checkConfirmedTrustHasProvidedFinalPlan()
.withGrade6SignedOffFinalPlanDate("2","2","2050")
.checkSentFinalPlanToRevenueFundingMailbox()
+ .checkAddedAnyUnderwrittenPlacesToFinalPlan()
.checkSavedFinalPlanInWorkplacesFolder()
.clickContinue()
@@ -102,9 +104,10 @@ describe("Testing Final finance plan Task", () => {
.titleIs("Final finance plan")
.inOrder()
.summaryShows("Expected date that the Grade 6 will sign-off the final plan").HasValue("2 February 2050").HasChangeLink()
- .summaryShows("Confirmed that the trust has provided the final plan").HasValue("Yes").HasChangeLink()
.summaryShows("Actual date the Grade 6 signed-off the final plan").HasValue("2 February 2050").HasChangeLink()
+ .summaryShows("Confirmed that the trust has provided the final plan").HasValue("Yes").HasChangeLink()
.summaryShows("Sent the final plan to the Revenue Funding mailbox").HasValue("Yes").HasChangeLink()
+ .summaryShows("Added any underwritten places to the finance plan").HasValue("Yes").HasChangeLink()
.summaryShows("Saved final plan in Workplaces folder").HasValue("Yes").HasChangeLink()
cy.log("Unselect checkboxes")
@@ -113,6 +116,7 @@ describe("Testing Final finance plan Task", () => {
finalFinancePlanEditPage
.uncheckConfirmedTrustHasProvidedFinalPlan()
.uncheckSentFinalPlanToRevenueFundingMailbox()
+ .uncheckAddedAnyUnderwrittenPlacesToFinalPlan()
.uncheckSavedFinalPlanInWorkplacesFolder()
.clickContinue()
@@ -122,9 +126,10 @@ describe("Testing Final finance plan Task", () => {
.titleIs("Final finance plan")
.inOrder()
.summaryShows("Expected date that the Grade 6 will sign-off the final plan").HasValue("2 February 2050").HasChangeLink()
+ .summaryShows("Actual date the Grade 6 signed-off the final plan").HasValue("2 February 2050").HasChangeLink()
.summaryShows("Confirmed that the trust has provided the final plan").IsEmpty().HasChangeLink()
- .summaryShows("ctual date the Grade 6 signed-off the final plan").HasValue("2 February 2050").HasChangeLink()
.summaryShows("Sent the final plan to the Revenue Funding mailbox").IsEmpty().HasChangeLink()
+ .summaryShows("Added any underwritten places to the finance plan").IsEmpty().HasChangeLink()
.summaryShows("Saved final plan in Workplaces folder").IsEmpty().HasChangeLink()
.isNotMarkedAsComplete()
.MarkAsComplete()
diff --git a/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.CypressTests/cypress/pages/tasks/Getting-ready-to-open/edit-final-finance-plan.cy.ts b/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.CypressTests/cypress/pages/tasks/Getting-ready-to-open/edit-final-finance-plan.cy.ts
index 074a47bbf..7110e55ed 100644
--- a/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.CypressTests/cypress/pages/tasks/Getting-ready-to-open/edit-final-finance-plan.cy.ts
+++ b/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.CypressTests/cypress/pages/tasks/Getting-ready-to-open/edit-final-finance-plan.cy.ts
@@ -47,6 +47,16 @@ class FinalFinancePlanEditPage {
return this
}
+ checkAddedAnyUnderwrittenPlacesToFinalPlan(): this {
+ cy.getById("added-any-underwritten-places-to-the-finance-plan").check()
+ return this
+ }
+
+ uncheckAddedAnyUnderwrittenPlacesToFinalPlan(): this {
+ cy.getById("added-any-underwritten-places-to-the-finance-plan").uncheck()
+ return this
+ }
+
checkSavedFinalPlanInWorkplacesFolder(): this {
cy.getById("saved-final-plan-in-workplaces-folder").check()
return this
diff --git a/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.Data/Entities/Milestones.cs b/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.Data/Entities/Milestones.cs
index 90764ddf3..4ce97afdb 100644
--- a/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.Data/Entities/Milestones.cs
+++ b/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.Data/Entities/Milestones.cs
@@ -116,6 +116,7 @@ public partial class Milestones
public bool? FsgPreOpeningMilestonesFfpConfirmedTrustHasProvidedFinalPlan { get; set; }
public DateTime? FsgPreOpeningMilestonesFfpGrade6SignedOffFinalPlanDate { get; set; }
public bool? FsgPreOpeningMilestonesFfpSentFinalPlanToRevenueFundingMailbox { get; set; }
+ public bool? FsgPreOpeningMilestonesFfpAddedAnyUnderwrittenPlacesToFinalPlan { get; set; }
public bool? FsgPreOpeningMilestonesFfpSavedFinalPlanInWorkplacesFolder { get; set; }
public bool? FsgPreOpeningMilestonesSchoolReceivedEnoughApplications { get; set; }
diff --git a/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.Data/Migrations/20250113153724_FinalFinancePlanAddedAnyUnderwrittenPlacesToFinalPlan.Designer.cs b/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.Data/Migrations/20250113153724_FinalFinancePlanAddedAnyUnderwrittenPlacesToFinalPlan.Designer.cs
new file mode 100644
index 000000000..f2ccdd15a
--- /dev/null
+++ b/Dfe.ManageFreeSchoolProjects/Dfe.ManageFreeSchoolProjects.Data/Migrations/20250113153724_FinalFinancePlanAddedAnyUnderwrittenPlacesToFinalPlan.Designer.cs
@@ -0,0 +1,12973 @@
+//
+using System;
+using Dfe.ManageFreeSchoolProjects.Data;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+#nullable disable
+
+namespace Dfe.ManageFreeSchoolProjects.Data.Migrations
+{
+ [DbContext(typeof(MfspContext))]
+ [Migration("20250113153724_FinalFinancePlanAddedAnyUnderwrittenPlacesToFinalPlan")]
+ partial class FinalFinancePlanAddedAnyUnderwrittenPlacesToFinalPlan
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "8.0.11")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128);
+
+ SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
+
+ modelBuilder.Entity("Dfe.ManageFreeSchoolProjects.Data.Entities.Existing.BasicNeed", b =>
+ {
+ b.Property("FreeSchoolName")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Free school name");
+
+ b.Property("Phase")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)");
+
+ b.Property("PostcodeUsedHere")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Postcode used here");
+
+ b.Property("PrimaryPlanningAreaCode")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Primary planning area code");
+
+ b.Property("PrimaryPlanningAreaName")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Primary planning area name");
+
+ b.Property("ProjectId")
+ .HasMaxLength(25)
+ .IsUnicode(false)
+ .HasColumnType("varchar(25)")
+ .HasColumnName("Project ID");
+
+ b.Property("SecondaryPlanningAreaCode")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Secondary planning area code");
+
+ b.Property("SecondaryPlanningAreaName")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Secondary planning area name");
+
+ b.Property("_201920PrimaryPhaseLocalAreaSSNoPlaces")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("2019/20 Primary Phase Local Area S/S No. places");
+
+ b.Property("_201920PrimaryPhaseLocalAreaSSPlaces")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("2019/20 Primary Phase Local Area S/S % places");
+
+ b.Property("_201920PrimaryPhasePlanningAreaSSNoPlaces")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("2019/20 Primary Phase Planning Area S/S No. places");
+
+ b.Property("_201920PrimaryPhasePlanningAreaSSPlaces")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("2019/20 Primary Phase Planning Area S/S % places");
+
+ b.Property("_201920SecondaryPhaseLocalAreaSSNoPlaces")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("2019/20 Secondary Phase Local Area S/S No. places");
+
+ b.Property("_201920SecondaryPhaseLocalAreaSSPlaces")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("2019/20 Secondary Phase Local Area S/S % places");
+
+ b.Property("_201920SecondaryPhasePlanningAreaSSNoPlaces")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("2019/20 Secondary Phase Planning Area S/S No. places");
+
+ b.Property("_201920SecondaryPhasePlanningAreaSSPlaces")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("2019/20 Secondary Phase Planning Area S/S % places");
+
+ b.ToTable("Basic_Need", "dbo");
+ });
+
+ modelBuilder.Entity("Dfe.ManageFreeSchoolProjects.Data.Entities.Existing.Br", b =>
+ {
+ b.Property("Rid")
+ .HasMaxLength(11)
+ .IsUnicode(false)
+ .HasColumnType("varchar(11)")
+ .HasColumnName("RID");
+
+ b.Property("BudgetRecordsAcquisitionCostVat")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Acquisition cost VAT");
+
+ b.Property("BudgetRecordsAcquisitionManualOverride")
+ .HasColumnType("bit")
+ .HasColumnName("Budget Records.Acquisition manual override");
+
+ b.Property("BudgetRecordsAqusitionRevenue")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Aqusition Revenue");
+
+ b.Property("BudgetRecordsBroadband")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Broadband");
+
+ b.Property("BudgetRecordsBudgetApprovalProcess")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Budget approval process");
+
+ b.Property("BudgetRecordsBudgetId")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Budget ID");
+
+ b.Property("BudgetRecordsBudgetStage")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Budget stage");
+
+ b.Property("BudgetRecordsBudgetStatus")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Budget status");
+
+ b.Property("BudgetRecordsCcfPropertyBudgetUplift")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.CCF property budget uplift");
+
+ b.Property("BudgetRecordsConstructionAmountIncludingSurveys")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Construction amount , including surveys");
+
+ b.Property("BudgetRecordsConstructionAmountIncludingSurveysVat")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Construction amount , including surveys VAT");
+
+ b.Property("BudgetRecordsConstructionManualOverride")
+ .HasColumnType("bit")
+ .HasColumnName("Budget Records.Construction manual override");
+
+ b.Property("BudgetRecordsConstructionRevenue")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Construction revenue");
+
+ b.Property("BudgetRecordsCostOfReInstatementOfTemporaryAccommodation")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Cost of re-instatement of temporary accommodation");
+
+ b.Property("BudgetRecordsCostPerPupil")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Cost Per Pupil");
+
+ b.Property("BudgetRecordsEfaCapitalRegionalDdApprovalStatus")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.EFA Capital Regional DD (approval status)");
+
+ b.Property("BudgetRecordsEfaCapitalRegionalDdApproverName")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.EFA Capital Regional DD (approver name)");
+
+ b.Property("BudgetRecordsEfaCapitalRegionalDdDecisionDate")
+ .HasColumnType("date")
+ .HasColumnName("Budget Records.EFA Capital Regional DD (decision date)");
+
+ b.Property("BudgetRecordsFfEManualOverride")
+ .HasColumnType("bit")
+ .HasColumnName("Budget Records.FF&E manual override");
+
+ b.Property("BudgetRecordsFinalCarCcfFormLink")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Budget Records.Final CAR / CCF Form link");
+
+ b.Property("BudgetRecordsFinalPropertyModelLink")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Budget Records.Final property model link");
+
+ b.Property("BudgetRecordsFinalTechnicalFundingAllocationModelLink")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Budget Records.Final technical funding allocation model link");
+
+ b.Property("BudgetRecordsFixturesFurnitureAndEquipment")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Fixtures, Furniture, and Equipment");
+
+ b.Property("BudgetRecordsFixturesFurnitureAndEquipmentVat")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Fixtures, Furniture, and Equipment VAT");
+
+ b.Property("BudgetRecordsFpmuApprovalStatus")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.FPMU (approval status)");
+
+ b.Property("BudgetRecordsFpmuApproverName")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.FPMU (approver name)");
+
+ b.Property("BudgetRecordsFpmuDecisionDate")
+ .HasColumnType("date")
+ .HasColumnName("Budget Records.FPMU (decision date)");
+
+ b.Property("BudgetRecordsFscDivisionalDirectorApprovalStatus")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.FSC Divisional Director (approval status)");
+
+ b.Property("BudgetRecordsFscDivisionalDirectorApproverName")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.FSC Divisional Director (approver name)");
+
+ b.Property("BudgetRecordsFscDivisionalDirectorDecisionDate")
+ .HasColumnType("date")
+ .HasColumnName("Budget Records.FSC Divisional Director (decision date)");
+
+ b.Property("BudgetRecordsFscHeadOfFinanceApprovalStatus")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.FSC Head of Finance (approval status)");
+
+ b.Property("BudgetRecordsFscHeadOfFinanceApproverName")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.FSC Head of Finance (approver name)");
+
+ b.Property("BudgetRecordsFscHeadOfFinanceDecisionDate")
+ .HasColumnType("date")
+ .HasColumnName("Budget Records.FSC Head of Finance (decision date)");
+
+ b.Property("BudgetRecordsIctActives")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.ICT actives");
+
+ b.Property("BudgetRecordsIctBudgetManualOverride")
+ .HasColumnType("bit")
+ .HasColumnName("Budget Records.ICT budget manual override");
+
+ b.Property("BudgetRecordsIctDecantCost")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.ICT decant cost");
+
+ b.Property("BudgetRecordsIctEquipmentHardware")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.ICT equipment/hardware");
+
+ b.Property("BudgetRecordsIctPassives")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.ICT passives");
+
+ b.Property("BudgetRecordsIndependentFinanceReviewerApprovalStatus")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Independent Finance Reviewer (approval status)");
+
+ b.Property("BudgetRecordsIndependentFinanceReviewerApproverName")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Independent Finance Reviewer (approver name)");
+
+ b.Property("BudgetRecordsIndependentFinanceReviewerDecisionDate")
+ .HasColumnType("date")
+ .HasColumnName("Budget Records.Independent Finance Reviewer (decision date)");
+
+ b.Property("BudgetRecordsIndependentPropertyReviewerApprovalStatus")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Independent Property Reviewer (approval status)");
+
+ b.Property("BudgetRecordsIndependentPropertyReviewerApproverName")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Independent Property Reviewer (approver name)");
+
+ b.Property("BudgetRecordsIndependentPropertyReviewerDecisionDate")
+ .HasColumnType("date")
+ .HasColumnName("Budget Records.Independent Property Reviewer (decision date)");
+
+ b.Property("BudgetRecordsIndependentTechnicalCostQsApprovalStatus")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Independent Technical & Cost QS (approval status)");
+
+ b.Property("BudgetRecordsIndependentTechnicalCostQsApproverName")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Independent Technical & Cost QS (approver name)");
+
+ b.Property("BudgetRecordsIndependentTechnicalCostQsDecisionDate")
+ .HasColumnType("date")
+ .HasColumnName("Budget Records.Independent Technical & Cost QS (decision date)");
+
+ b.Property("BudgetRecordsInflationBaseDate")
+ .HasColumnType("date")
+ .HasColumnName("Budget Records.Inflation base date");
+
+ b.Property("BudgetRecordsLegalFeesConstructionAdviceIncVat")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Legal fees - construction advice (Inc VAT)");
+
+ b.Property("BudgetRecordsLiveBudget")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Live budget");
+
+ b.Property("BudgetRecordsLocatedInvestmentCommitteeApprovalStatus")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Located Investment Committee (approval status)");
+
+ b.Property("BudgetRecordsLocatedInvestmentCommitteeApproverName")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Located Investment Committee (approver name)");
+
+ b.Property("BudgetRecordsLocatedInvestmentCommitteeDecisionDate")
+ .HasColumnType("date")
+ .HasColumnName("Budget Records.Located Investment Committee (decision date)");
+
+ b.Property("BudgetRecordsMinisterApprovalStatus")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Minister (approval status)");
+
+ b.Property("BudgetRecordsMinisterApproverName")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Minister (approver name)");
+
+ b.Property("BudgetRecordsMinisterDecisionDate")
+ .HasColumnType("date")
+ .HasColumnName("Budget Records.Minister (decision date)");
+
+ b.Property("BudgetRecordsNumberOfPupils")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Number of pupils");
+
+ b.Property("BudgetRecordsProjectCode")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Project code");
+
+ b.Property("BudgetRecordsProjectName")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Project name");
+
+ b.Property("BudgetRecordsPropertyManagementCosts")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Property management costs");
+
+ b.Property("BudgetRecordsRevenueManualOverride")
+ .HasColumnType("bit")
+ .HasColumnName("Budget Records.Revenue manual override");
+
+ b.Property("BudgetRecordsTechnicalFeesIncVat")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Technical fees (inc VAT)");
+
+ b.Property("BudgetRecordsTechnicalFeesSurveysIncVat")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Technical fees - surveys (inc VAT)");
+
+ b.Property("BudgetRecordsTemporaryConstructionIncludingSurveys")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Temporary construction, including surveys");
+
+ b.Property("BudgetRecordsTemporaryConstructionIncludingSurveysVat")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Temporary construction, including surveys - VAT");
+
+ b.Property("BudgetRecordsTemporarySiteIctPassives")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Temporary site ICT passives");
+
+ b.Property("BudgetRecordsTemporarySiteManualOverride")
+ .HasColumnType("bit")
+ .HasColumnName("Budget Records.Temporary site manual override");
+
+ b.Property("BudgetRecordsTemporarySitesLegalFeesConstructionAdviceIncVat")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Temporary sites - legal fees construction advice (inc VAT)");
+
+ b.Property("BudgetRecordsTemporarySitesTechnicalFeesIncVat")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Temporary sites - technical fees (inc VAT)");
+
+ b.Property("BudgetRecordsTemporarySitesTechnicalFeesSurveysIncVat")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Temporary sites - technical fees surveys (inc VAT)");
+
+ b.Property("BudgetRecordsThirdPartyContributions")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Third party contributions");
+
+ b.Property("BudgetRecordsTotalAcquisitionCostExcVat")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Total acquisition cost ( exc VAT )");
+
+ b.Property("BudgetRecordsTotalAcquisitionLegalFees")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Total acquisition legal fees");
+
+ b.Property("BudgetRecordsTotalCapitalBudget")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Total capital budget");
+
+ b.Property("BudgetRecordsTotalConstructionBudget")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Total construction budget");
+
+ b.Property("BudgetRecordsTotalFfEBudget")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Total FF&E budget");
+
+ b.Property("BudgetRecordsTotalIctBudget")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Total ICT budget");
+
+ b.Property("BudgetRecordsTotalManualOverride")
+ .HasColumnType("bit")
+ .HasColumnName("Budget Records.Total manual override");
+
+ b.Property("BudgetRecordsTotalPropertyBudgetInclVat")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Total property budget ( incl VAT)");
+
+ b.Property("BudgetRecordsTotalPropertyFees")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Total property fees");
+
+ b.Property("BudgetRecordsTotalRevenue")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Total revenue");
+
+ b.Property("BudgetRecordsTotalTemporarySitesBudget")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.Total temporary sites budget");
+
+ b.Property("BudgetRecordsVatOnFees")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.VAT on fees");
+
+ b.Property("BudgetRecordsWipNotes")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget Records.WIP notes");
+
+ b.Property("PRid")
+ .HasMaxLength(11)
+ .IsUnicode(false)
+ .HasColumnType("varchar(11)")
+ .HasColumnName("p_rid");
+
+ b.Property("PeriodEnd")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime2")
+ .HasColumnName("PeriodEnd");
+
+ b.Property("PeriodStart")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime2")
+ .HasColumnName("PeriodStart");
+
+ b.HasKey("Rid");
+
+ b.ToTable("BR", "dbo");
+
+ b.ToTable(tb => tb.IsTemporal(ttb =>
+ {
+ ttb.UseHistoryTable("BRHistory", "dbo");
+ ttb
+ .HasPeriodStart("PeriodStart")
+ .HasColumnName("PeriodStart");
+ ttb
+ .HasPeriodEnd("PeriodEnd")
+ .HasColumnName("PeriodEnd");
+ }));
+ });
+
+ modelBuilder.Entity("Dfe.ManageFreeSchoolProjects.Data.Entities.Existing.Bs", b =>
+ {
+ b.Property("Rid")
+ .HasMaxLength(11)
+ .IsUnicode(false)
+ .HasColumnType("varchar(11)")
+ .HasColumnName("RID");
+
+ b.Property("BudgetSummaryAcquisitionBudget")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget summary.Acquisition budget");
+
+ b.Property("BudgetSummaryBudgetApprovalDate")
+ .HasColumnType("date")
+ .HasColumnName("Budget summary.Budget approval date");
+
+ b.Property("BudgetSummaryBudgetApprovalProcess")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget summary.Budget approval process");
+
+ b.Property("BudgetSummaryBudgetStageSummary")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget summary.Budget stage summary");
+
+ b.Property("BudgetSummaryCapitalCostTier")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget summary.Capital cost tier");
+
+ b.Property("BudgetSummaryConstructionBudget")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget summary.Construction budget");
+
+ b.Property("BudgetSummaryCostPlan1Approved")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget summary.Cost Plan 1 approved");
+
+ b.Property("BudgetSummaryCostPlan2Approved")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget summary.Cost Plan 2 approved");
+
+ b.Property("BudgetSummaryCostsAtPracticalCompletionApproved")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget summary.Costs at practical completion approved");
+
+ b.Property("BudgetSummaryFfEBudget")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget summary.FF&E budget");
+
+ b.Property("BudgetSummaryFinalAccountsAgreed")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget summary.Final accounts agreed");
+
+ b.Property("BudgetSummaryIctBudget")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget summary.ICT budget");
+
+ b.Property("BudgetSummaryIsTheLaMakingAFinancialContributionTowardsThisProject")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget summary.Is the LA making a financial contribution towards this project?");
+
+ b.Property("BudgetSummaryLaContributionType")
+ .HasMaxLength(1000)
+ .IsUnicode(false)
+ .HasColumnType("varchar(1000)")
+ .HasColumnName("Budget summary.LA Contribution type");
+
+ b.Property("BudgetSummaryOtherContributionType")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget summary.Other contribution type");
+
+ b.Property("BudgetSummaryPreCarFundingApproved")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget summary.Pre CAR funding approved");
+
+ b.Property("BudgetSummaryPreCarFundingRequired")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget summary.Pre CAR funding required");
+
+ b.Property("BudgetSummaryStoreBudgetRecordName")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget summary.Store budget record name");
+
+ b.Property("BudgetSummaryTemporarySiteBudget")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget summary.Temporary Site budget");
+
+ b.Property("BudgetSummaryTotalCapitalBudget")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget summary.Total capital budget");
+
+ b.Property("BudgetSummaryTotalRevenue")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Budget summary.Total Revenue");
+
+ b.Property("PRid")
+ .HasMaxLength(11)
+ .IsUnicode(false)
+ .HasColumnType("varchar(11)")
+ .HasColumnName("p_rid");
+
+ b.Property("PeriodEnd")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime2")
+ .HasColumnName("PeriodEnd");
+
+ b.Property("PeriodStart")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime2")
+ .HasColumnName("PeriodStart");
+
+ b.Property("UpdatedByUserId")
+ .HasColumnType("int");
+
+ b.HasKey("Rid");
+
+ b.HasIndex("UpdatedByUserId");
+
+ b.ToTable("BS", "dbo");
+
+ b.ToTable(tb => tb.IsTemporal(ttb =>
+ {
+ ttb.UseHistoryTable("BSHistory", "dbo");
+ ttb
+ .HasPeriodStart("PeriodStart")
+ .HasColumnName("PeriodStart");
+ ttb
+ .HasPeriodEnd("PeriodEnd")
+ .HasColumnName("PeriodEnd");
+ }));
+ });
+
+ modelBuilder.Entity("Dfe.ManageFreeSchoolProjects.Data.Entities.Existing.ConstructData", b =>
+ {
+ b.Property("CapitalProjectRag")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Capital Project RAG");
+
+ b.Property("CapitalProjectRagRatingCommentary")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Capital Project RAG Rating Commentary");
+
+ b.Property("ContractorForSiteForMainSchoolBuildingAppointedActual")
+ .IsUnicode(false)
+ .HasColumnType("date")
+ .HasColumnName("Contractor for site for main school building appointed (Actual)");
+
+ b.Property("ContractorForSiteForMainSchoolBuildingAppointedForecast")
+ .IsUnicode(false)
+ .HasColumnType("date")
+ .HasColumnName("Contractor for site for main school building appointed (Forecast)");
+
+ b.Property("ContractorForTemporarySiteAppointedActual")
+ .IsUnicode(false)
+ .HasColumnType("date")
+ .HasColumnName("Contractor for temporary site appointed (Actual)");
+
+ b.Property("ContractorForTemporarySiteAppointedForecast")
+ .IsUnicode(false)
+ .HasColumnType("date")
+ .HasColumnName("Contractor for temporary site appointed (Forecast)");
+
+ b.Property("DateMainSitePlanningApprovalGranted")
+ .IsUnicode(false)
+ .HasColumnType("date")
+ .HasColumnName("Date main site planning approval granted");
+
+ b.Property("DateOfHoTSecuredOnTemporaryAccommodationSiteIfRequired")
+ .IsUnicode(false)
+ .HasColumnType("date")
+ .HasColumnName("Date of HoT secured on temporary accommodation site, if required");
+
+ b.Property("DateOfPlanningDecisionForMainSiteMainPlanningRecordActual")
+ .IsUnicode(false)
+ .HasColumnType("date")
+ .HasColumnName("Date of planning decision for main site main planning record (Actual)");
+
+ b.Property("DateOfPlanningDecisionForMainSiteMainPlanningRecordForecast")
+ .IsUnicode(false)
+ .HasColumnType("date")
+ .HasColumnName("Date of planning decision for main site main planning record (Forecast)");
+
+ b.Property("DateOfPlanningDecisionForTemporarySiteMainPlanningRecordActual")
+ .IsUnicode(false)
+ .HasColumnType("date")
+ .HasColumnName("Date of planning decision for temporary site main planning record (Actual)");
+
+ b.Property("DateOfPlanningDecisionForTemporarySiteMainPlanningRecordForecast")
+ .IsUnicode(false)
+ .HasColumnType("date")
+ .HasColumnName("Date of planning decision for temporary site main planning record (Forecast)");
+
+ b.Property("DateTemporarySitePlanningApprovalGranted")
+ .IsUnicode(false)
+ .HasColumnType("date")
+ .HasColumnName("Date temporary site planning approval granted");
+
+ b.Property("HoTAgreedForSiteForMainSchoolBuildingActual")
+ .IsUnicode(false)
+ .HasColumnType("date")
+ .HasColumnName("HoT Agreed for site for Main School Building (Actual)");
+
+ b.Property("HoTsAgreedForSiteForMainSchoolBuildingForecast")
+ .IsUnicode(false)
+ .HasColumnType("date")
+ .HasColumnName("HoTs agreed for site for main school building (Forecast)");
+
+ b.Property("HoTsAgreedForTemporarySiteForecast")
+ .IsUnicode(false)
+ .HasColumnType("date")
+ .HasColumnName("HoTs agreed for temporary site (Forecast)");
+
+ b.Property("IsThisTheMainPlanningRecord")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Is this the main planning record?");
+
+ b.Property("LastRefreshDate")
+ .HasColumnType("date");
+
+ b.Property("MainSchoolBuildingFirstReadyForOccupationActual")
+ .IsUnicode(false)
+ .HasColumnType("date")
+ .HasColumnName("Main School Building first ready for occupation (Actual)");
+
+ b.Property("MainSchoolBuildingFirstReadyForOccupationForecast")
+ .IsUnicode(false)
+ .HasColumnType("date")
+ .HasColumnName("Main School Building first ready for occupation (Forecast)");
+
+ b.Property("MainSiteAddress")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Main site address");
+
+ b.Property("PlanningDecision")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Planning decision");
+
+ b.Property("PlanningRisk")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Planning risk");
+
+ b.Property("PlanningSiteId")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Planning Site ID");
+
+ b.Property("PostcodeOfSite")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Postcode of site");
+
+ b.Property("PracticalCompletionCertificateIssuedDateA")
+ .IsUnicode(false)
+ .HasColumnType("date")
+ .HasColumnName("Practical Completion Certificate issued date (A)");
+
+ b.Property("ProjectDirector")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Project Director");
+
+ b.Property("ProjectId")
+ .IsRequired()
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Project ID");
+
+ b.Property("ProjectManager")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Project Manager");
+
+ b.Property("RegionalHead")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Regional Head");
+
+ b.Property("SiteId")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Site ID");
+
+ b.Property("SiteIdentifiedForMainSchoolBuildingActual")
+ .IsUnicode(false)
+ .HasColumnType("date")
+ .HasColumnName("Site identified for main school building (Actual)");
+
+ b.Property("SiteStatus")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Site status");
+
+ b.Property("TemporaryAccommodationFirstReadyForOccupationActual")
+ .IsUnicode(false)
+ .HasColumnType("date")
+ .HasColumnName("Temporary accommodation first ready for occupation (Actual)");
+
+ b.Property("TemporaryAccommodationFirstReadyForOccupationForecast")
+ .IsUnicode(false)
+ .HasColumnType("date")
+ .HasColumnName("Temporary accommodation first ready for occupation (Forecast)");
+
+ b.Property("TemporaryRagRating")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Temporary RAG rating");
+
+ b.Property("TemporaryRagRatingCommentary")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Temporary RAG Rating Commentary");
+
+ b.Property("TemporarySiteAddress")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Temporary site address");
+
+ b.Property("TemporarySitePlanningDecision")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Temporary site planning decision");
+
+ b.Property("TemporarySitePlanningRisk")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Temporary site planning risk");
+
+ b.Property("TemporarySitePostcode")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Temporary site postcode");
+
+ b.Property("TypeOfSite")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Type of Site");
+
+ b.Property("UpdatedByUserId")
+ .HasColumnType("int");
+
+ b.Property("WillTheProjectOpenInTemporaryAccommodation")
+ .HasMaxLength(10)
+ .IsUnicode(false)
+ .HasColumnType("varchar(10)")
+ .HasColumnName("Will the project open in temporary accommodation?");
+
+ b.HasIndex("UpdatedByUserId");
+
+ b.ToTable("constructData", "dbo");
+ });
+
+ modelBuilder.Entity("Dfe.ManageFreeSchoolProjects.Data.Entities.Existing.Construction", b =>
+ {
+ b.Property("Rid")
+ .HasMaxLength(11)
+ .IsUnicode(false)
+ .HasColumnType("varchar(11)")
+ .HasColumnName("RID");
+
+ b.Property("IctDetailsBroadbandOrdered")
+ .HasColumnType("date")
+ .HasColumnName("ICT Details.Broadband ordered");
+
+ b.Property("IctDetailsIctProcurementRouteAgreedWithTrust")
+ .HasColumnType("date")
+ .HasColumnName("ICT Details.ICT procurement route agreed with Trust");
+
+ b.Property("PRid")
+ .HasMaxLength(11)
+ .IsUnicode(false)
+ .HasColumnType("varchar(11)")
+ .HasColumnName("p_rid");
+
+ b.Property("PeriodEnd")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime2")
+ .HasColumnName("PeriodEnd");
+
+ b.Property("PeriodStart")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("datetime2")
+ .HasColumnName("PeriodStart");
+
+ b.Property("SiteDetailsAreaOfExistingBuildingsM2PermanentArea")
+ .HasMaxLength(8)
+ .IsUnicode(false)
+ .HasColumnType("varchar(8)")
+ .HasColumnName("Site Details.Area of existing buildings m2 : Permanent Area");
+
+ b.Property("SiteDetailsAreaOfExistingBuildingsM2TemporaryArea")
+ .HasMaxLength(8)
+ .IsUnicode(false)
+ .HasColumnType("varchar(8)")
+ .HasColumnName("Site Details.Area of existing buildings m2 : Temporary Area");
+
+ b.Property("SiteDetailsAreaOfHardStandingM2")
+ .HasMaxLength(6)
+ .IsUnicode(false)
+ .HasColumnType("varchar(6)")
+ .HasColumnName("Site Details.Area of hard standing m2");
+
+ b.Property("SiteDetailsAreaOfMajorRefurbishmentM2")
+ .HasMaxLength(6)
+ .IsUnicode(false)
+ .HasColumnType("varchar(6)")
+ .HasColumnName("Site Details.Area of major refurbishment m2");
+
+ b.Property("SiteDetailsAreaOfMinorRefurbishmentM2")
+ .HasMaxLength(6)
+ .IsUnicode(false)
+ .HasColumnType("varchar(6)")
+ .HasColumnName("Site Details.Area of minor refurbishment m2");
+
+ b.Property("SiteDetailsAreaOfMugaPlayingFieldsM2")
+ .HasMaxLength(6)
+ .IsUnicode(false)
+ .HasColumnType("varchar(6)")
+ .HasColumnName("Site Details.Area of MUGA / playing fields m2");
+
+ b.Property("SiteDetailsAreaOfNewBuildM2")
+ .HasMaxLength(6)
+ .IsUnicode(false)
+ .HasColumnType("varchar(6)")
+ .HasColumnName("Site Details.Area of new build m2");
+
+ b.Property("SiteDetailsAreaOfRefreshM2")
+ .HasMaxLength(6)
+ .IsUnicode(false)
+ .HasColumnType("varchar(6)")
+ .HasColumnName("Site Details.Area of refresh m2");
+
+ b.Property("SiteDetailsAreaOfRefurbishmentM2")
+ .HasMaxLength(6)
+ .IsUnicode(false)
+ .HasColumnType("varchar(6)")
+ .HasColumnName("Site Details.Area of refurbishment m2");
+
+ b.Property("SiteDetailsAreaOfTemporaryAccommodationRequiredM2")
+ .HasMaxLength(6)
+ .IsUnicode(false)
+ .HasColumnType("varchar(6)")
+ .HasColumnName("Site Details.Area of temporary accommodation required m2");
+
+ b.Property("SiteDetailsLocation")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Site Details.Location");
+
+ b.Property("SiteDetailsMaximumGrossAreaRequiredM2")
+ .HasMaxLength(6)
+ .IsUnicode(false)
+ .HasColumnType("varchar(6)")
+ .HasColumnName("Site Details.Maximum gross area required m2");
+
+ b.Property("SiteDetailsMinimumGrossAreaRequiredM2")
+ .HasMaxLength(6)
+ .IsUnicode(false)
+ .HasColumnType("varchar(6)")
+ .HasColumnName("Site Details.Minimum gross area required m2");
+
+ b.Property("SiteDetailsSprinklerInstallationType")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Site Details.Sprinkler Installation Type");
+
+ b.Property("SiteDetailsSprinklerType")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Site Details.Sprinkler Type");
+
+ b.Property("SiteDetailsSprinklers")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Site Details.Sprinklers");
+
+ b.Property("SiteDetailsTypeOfWorks")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Site Details.Type of works");
+
+ b.HasKey("Rid");
+
+ b.ToTable("Construction", "dbo");
+
+ b.ToTable(tb => tb.IsTemporal(ttb =>
+ {
+ ttb.UseHistoryTable("ConstructionHistory", "dbo");
+ ttb
+ .HasPeriodStart("PeriodStart")
+ .HasColumnName("PeriodStart");
+ ttb
+ .HasPeriodEnd("PeriodEnd")
+ .HasColumnName("PeriodEnd");
+ }));
+ });
+
+ modelBuilder.Entity("Dfe.ManageFreeSchoolProjects.Data.Entities.Existing.Contracts", b =>
+ {
+ b.Property("Rid")
+ .HasMaxLength(11)
+ .IsUnicode(false)
+ .HasColumnType("varchar(11)")
+ .HasColumnName("RID");
+
+ b.Property("Contract1stSectionalCompletionActual")
+ .HasColumnType("date")
+ .HasColumnName("Contract.1st sectional completion (actual)");
+
+ b.Property("Contract1stSectionalCompletionForecast")
+ .HasColumnType("date")
+ .HasColumnName("Contract.1st sectional completion (forecast)");
+
+ b.Property("Contract2ndSectionalCompletionActual")
+ .HasColumnType("date")
+ .HasColumnName("Contract.2nd sectional completion (actual)");
+
+ b.Property("Contract2ndSectionalCompletionForecast")
+ .HasColumnType("date")
+ .HasColumnName("Contract.2nd sectional completion (forecast)");
+
+ b.Property("Contract3rdSectionalCompletionActual")
+ .HasColumnType("date")
+ .HasColumnName("Contract.3rd sectional completion (actual)");
+
+ b.Property("Contract3rdSectionalCompletionForecast")
+ .HasColumnType("date")
+ .HasColumnName("Contract.3rd sectional completion (forecast)");
+
+ b.Property("ContractAddressOfSite")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Address of site");
+
+ b.Property("ContractAllWorksCompleteInclStatutoryCertificationIssuedActual")
+ .HasColumnType("date")
+ .HasColumnName("Contract.All works complete (incl statutory certification issued) (actual)");
+
+ b.Property("ContractAllWorksCompleteInclStatutoryCertificationIssuedForecast")
+ .HasColumnType("date")
+ .HasColumnName("Contract.All works complete (incl statutory certification issued) (forecast)");
+
+ b.Property("ContractAwardOption")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Award Option");
+
+ b.Property("ContractBiddersDay")
+ .HasColumnType("date")
+ .HasColumnName("Contract.Bidders Day");
+
+ b.Property("ContractConstructionSiteOpen")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Construction Site Open");
+
+ b.Property("ContractContractAwardValueExclVat")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Contract Award value (excl VAT)");
+
+ b.Property("ContractContractBudgetValueExclVat")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Contract budget value (excl VAT)");
+
+ b.Property("ContractContractCategory")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Contract Category");
+
+ b.Property("ContractContractId")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Contract ID");
+
+ b.Property("ContractContractNotes")
+ .IsUnicode(false)
+ .HasColumnType("varchar(max)")
+ .HasColumnName("Contract.Contract notes");
+
+ b.Property("ContractContractProcurementStatus")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Contract Procurement Status");
+
+ b.Property("ContractContractReference")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Contract reference");
+
+ b.Property("ContractContractType")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Contract Type");
+
+ b.Property("ContractContractingParty")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Contracting party");
+
+ b.Property("ContractContractor")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Contractor");
+
+ b.Property("ContractContractorAppointedSpmPcsaEwaOtherActual")
+ .HasColumnType("date")
+ .HasColumnName("Contract.Contractor appointed (SPM / PCSA / EWA / Other) (actual)");
+
+ b.Property("ContractContractorAppointedSpmPcsaEwaOtherForecast")
+ .HasColumnType("date")
+ .HasColumnName("Contract.Contractor appointed (SPM / PCSA / EWA / Other) (forecast)");
+
+ b.Property("ContractContractorSProposalsApprovedActual")
+ .HasColumnType("date")
+ .HasColumnName("Contract.Contractor’s proposals approved (actual)");
+
+ b.Property("ContractContractorSProposalsApprovedForecast")
+ .HasColumnType("date")
+ .HasColumnName("Contract.Contractor’s proposals approved (forecast)");
+
+ b.Property("ContractContractorSProposalsSubmittedActual")
+ .HasColumnType("date")
+ .HasColumnName("Contract.Contractor’s proposals submitted (actual)");
+
+ b.Property("ContractContractorSProposalsSubmittedForecast")
+ .HasColumnType("date")
+ .HasColumnName("Contract.Contractor’s proposals submitted (forecast)");
+
+ b.Property("ContractContractorWorkingToBepEirsThroughoutDesignConstructionHandover")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Contractor working to BEP & EIRs throughout design, construction & handover?");
+
+ b.Property("ContractDateDevelopmentAgreementSigned")
+ .HasColumnType("date")
+ .HasColumnName("Contract.Date Development agreement signed");
+
+ b.Property("ContractDateOfClosedContractStatus")
+ .HasColumnType("date")
+ .HasColumnName("Contract.Date of Closed contract status");
+
+ b.Property("ContractDateOfSdbcApproval")
+ .HasColumnType("date")
+ .HasColumnName("Contract.Date of SDBC approval");
+
+ b.Property("ContractDateOfSdbcSubmission")
+ .HasColumnType("date")
+ .HasColumnName("Contract.Date of SDBC submission");
+
+ b.Property("ContractDeliveryParty")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Delivery party");
+
+ b.Property("ContractDeliveryPartyIfOther")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Delivery party - if other");
+
+ b.Property("ContractEarlyWorksCostsExclVat")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Early works costs (excl VAT)");
+
+ b.Property("ContractEndOfDefectsLiabilityCertificatesLink")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.End of defects liability certificates link");
+
+ b.Property("ContractEnterIntoMainContractActual")
+ .HasColumnType("date")
+ .HasColumnName("Contract.Enter into main contract (actual)");
+
+ b.Property("ContractEnterIntoMainContractForecast")
+ .HasColumnType("date")
+ .HasColumnName("Contract.Enter into main contract (forecast)");
+
+ b.Property("ContractExternalTechnicalAdviserAppointedActual")
+ .HasColumnType("date")
+ .HasColumnName("Contract.External Technical Adviser appointed (actual)");
+
+ b.Property("ContractFeasibilityReportApprovedByEsfaActual")
+ .HasColumnType("date")
+ .HasColumnName("Contract.Feasibility report approved by ESFA (actual)");
+
+ b.Property("ContractFeasibilityReportLink")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Feasibility report link");
+
+ b.Property("ContractFeasibilityReportSubmittedToEsfaActual")
+ .HasColumnType("date")
+ .HasColumnName("Contract.Feasibility report submitted to ESFA (actual)");
+
+ b.Property("ContractFeasibiltyReportStarted")
+ .HasColumnType("date")
+ .HasColumnName("Contract.Feasibilty report started");
+
+ b.Property("ContractFinalAccountsAgreedActual")
+ .HasColumnType("date")
+ .HasColumnName("Contract.Final accounts agreed (actual)");
+
+ b.Property("ContractFinalAccountsAgreedForecast")
+ .HasColumnType("date")
+ .HasColumnName("Contract.Final accounts agreed (forecast)");
+
+ b.Property("ContractFinalContractValueExclVat")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Final contract value (excl VAT)");
+
+ b.Property("ContractGifaForActualContractM2")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.GIFA for actual contract (m2)");
+
+ b.Property("ContractHasTheBepBeenReceivedFromTheContractor")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Has the BEP been received from the contractor?");
+
+ b.Property("ContractHaveTheAirsBeenIssued")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Have the AIRs been issued?");
+
+ b.Property("ContractHaveTheEirsBeenIssued")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Have the EIRs been issued?");
+
+ b.Property("ContractHseF10NotificationOfConstructionProjectFormSubmittedActual")
+ .HasColumnType("date")
+ .HasColumnName("Contract.HSE F10 notification of construction project form submitted (actual)");
+
+ b.Property("ContractId")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("ContractID");
+
+ b.Property("ContractIsBimRequiredForTheProject")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Is BIM required for the project?");
+
+ b.Property("ContractIsThisThePrincipalConstructionContractForThePermanentSchoolBuilding")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Is this the principal construction contract for the permanent school building?");
+
+ b.Property("ContractLatestContractValueExclVat")
+ .HasMaxLength(100)
+ .IsUnicode(false)
+ .HasColumnType("varchar(100)")
+ .HasColumnName("Contract.Latest contract value (excl VAT)");
+
+ b.Property