using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace FindAndDrive.Persistence.Migrations { public partial class AddedApplicantEntities : Migration { protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "Applicants", columns: table => new { ApplicantId = table.Column(type: "uniqueidentifier", nullable: false), Title = table.Column(type: "nvarchar(5)", maxLength: 5, nullable: false), FirstName = table.Column(type: "nvarchar(max)", nullable: false), LastName = table.Column(type: "nvarchar(max)", nullable: false), IdNumber = table.Column(type: "nvarchar(max)", nullable: false), MobileNumber = table.Column(type: "nvarchar(max)", nullable: false), EmailAddress = table.Column(type: "nvarchar(max)", nullable: false), Gender = table.Column(type: "nvarchar(max)", nullable: false), DateOfBirth = table.Column(type: "datetime2", nullable: false), MaritalStatus = table.Column(type: "nvarchar(max)", nullable: true), SpouseName = table.Column(type: "nvarchar(max)", nullable: false), AddressLine1 = table.Column(type: "nvarchar(max)", nullable: false), AddressLine2 = table.Column(type: "nvarchar(max)", nullable: false), Suburb = table.Column(type: "nvarchar(max)", nullable: false), City = table.Column(type: "nvarchar(max)", nullable: false), PostalCode = table.Column(type: "nvarchar(max)", nullable: false), Province = table.Column(type: "nvarchar(max)", nullable: true), ResidentialStatus = table.Column(type: "nvarchar(max)", nullable: false), AddressDate = table.Column(type: "nvarchar(max)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Applicants", x => x.ApplicantId); }); migrationBuilder.CreateTable( name: "ApplicantAuditLog", columns: table => new { ApplicantAuditLogId = table.Column(type: "uniqueidentifier", nullable: false), ApplicantId = table.Column(type: "uniqueidentifier", nullable: false), TransUnionId = table.Column(type: "int", nullable: false), ExperianId = table.Column(type: "int", nullable: false), FindAndDriveId = table.Column(type: "int", nullable: false), TimeStamp = table.Column(type: "datetime2", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ApplicantAuditLog", x => x.ApplicantAuditLogId); table.ForeignKey( name: "FK_ApplicantAuditLog_Applicants_ApplicantId", column: x => x.ApplicantId, principalTable: "Applicants", principalColumn: "ApplicantId", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ApplicantCredit", columns: table => new { ApplicantCreditId = table.Column(type: "uniqueidentifier", nullable: false), ApplicantId = table.Column(type: "uniqueidentifier", nullable: false), CreditScore = table.Column(type: "int", nullable: false), ScoreIndicator = table.Column(type: "int", nullable: false), RiskBand = table.Column(type: "int", nullable: false), RiskBankDescription = table.Column(type: "nvarchar(max)", nullable: false), ReasonCode = table.Column(type: "nvarchar(max)", nullable: false), ReasonVerbiage = table.Column(type: "nvarchar(max)", nullable: false), ReasonNumber = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ApplicantCredit", x => x.ApplicantCreditId); table.ForeignKey( name: "FK_ApplicantCredit_Applicants_ApplicantId", column: x => x.ApplicantId, principalTable: "Applicants", principalColumn: "ApplicantId", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ApplicantFinance", columns: table => new { ApplicantFinanceId = table.Column(type: "uniqueidentifier", nullable: false), ApplicantId = table.Column(type: "uniqueidentifier", nullable: false), GrossIncome = table.Column(type: "decimal(18,2)", precision: 18, scale: 2, nullable: false), NetIncome = table.Column(type: "decimal(18,2)", precision: 18, scale: 2, nullable: false), LivingExpenses = table.Column(type: "decimal(18,2)", precision: 18, scale: 2, nullable: false), Deposit = table.Column(type: "decimal(18,2)", precision: 18, scale: 2, nullable: false), CalculatedGross = table.Column(type: "decimal(18,2)", precision: 18, scale: 2, nullable: false), CalculatedNet = table.Column(type: "decimal(18,2)", precision: 18, scale: 2, nullable: false), PredictorConfidence = table.Column(type: "nvarchar(max)", nullable: false), BureauExpenses = table.Column(type: "decimal(18,2)", precision: 18, scale: 2, nullable: false), CalculatedLivingExpenses = table.Column(type: "decimal(18,2)", precision: 18, scale: 2, nullable: false), CalculatedTotalExpenses = table.Column(type: "decimal(18,2)", precision: 18, scale: 2, nullable: false), DisposableIncome = table.Column(type: "decimal(18,2)", precision: 18, scale: 2, nullable: false) }, constraints: table => { table.PrimaryKey("PK_ApplicantFinance", x => x.ApplicantFinanceId); table.ForeignKey( name: "FK_ApplicantFinance_Applicants_ApplicantId", column: x => x.ApplicantId, principalTable: "Applicants", principalColumn: "ApplicantId", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ApplicantFraudAlert", columns: table => new { ApplicantFraudAlertId = table.Column(type: "uniqueidentifier", nullable: false), ApplicantId = table.Column(type: "uniqueidentifier", nullable: false), Rating = table.Column(type: "int", nullable: false), RatingDescription = table.Column(type: "nvarchar(max)", nullable: false), Disparity = table.Column(type: "decimal(18,2)", precision: 18, scale: 2, nullable: false), DisparityDescription = table.Column(type: "nvarchar(max)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ApplicantFraudAlert", x => x.ApplicantFraudAlertId); table.ForeignKey( name: "FK_ApplicantFraudAlert_Applicants_ApplicantId", column: x => x.ApplicantId, principalTable: "Applicants", principalColumn: "ApplicantId", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ApplicantPredicition", columns: table => new { ApplicantPredictionId = table.Column(type: "uniqueidentifier", nullable: false), ApplicantId = table.Column(type: "uniqueidentifier", nullable: false), ChancesOfApproval = table.Column(type: "int", nullable: false), EstimatedApprovalAmount = table.Column(type: "decimal(18,2)", precision: 18, scale: 2, nullable: false), EstimatedFinanceSpend = table.Column(type: "decimal(18,2)", precision: 18, scale: 2, nullable: false), EstimatedInsuranceSpend = table.Column(type: "decimal(18,2)", precision: 18, scale: 2, nullable: false), ImprovementSuggestion = table.Column(type: "nvarchar(max)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ApplicantPredicition", x => x.ApplicantPredictionId); table.ForeignKey( name: "FK_ApplicantPredicition_Applicants_ApplicantId", column: x => x.ApplicantId, principalTable: "Applicants", principalColumn: "ApplicantId", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( name: "IX_ApplicantAuditLog_ApplicantId", table: "ApplicantAuditLog", column: "ApplicantId", unique: true); migrationBuilder.CreateIndex( name: "IX_ApplicantCredit_ApplicantId", table: "ApplicantCredit", column: "ApplicantId", unique: true); migrationBuilder.CreateIndex( name: "IX_ApplicantFinance_ApplicantId", table: "ApplicantFinance", column: "ApplicantId", unique: true); migrationBuilder.CreateIndex( name: "IX_ApplicantFraudAlert_ApplicantId", table: "ApplicantFraudAlert", column: "ApplicantId", unique: true); migrationBuilder.CreateIndex( name: "IX_ApplicantPredicition_ApplicantId", table: "ApplicantPredicition", column: "ApplicantId", unique: true); } protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "ApplicantAuditLog"); migrationBuilder.DropTable( name: "ApplicantCredit"); migrationBuilder.DropTable( name: "ApplicantFinance"); migrationBuilder.DropTable( name: "ApplicantFraudAlert"); migrationBuilder.DropTable( name: "ApplicantPredicition"); migrationBuilder.DropTable( name: "Applicants"); } } }