using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace ProfessionalProfile.Migrations
{
///
public partial class UwU : Migration
{
///
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "User",
columns: table => new
{
userId = table.Column(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
firstName = table.Column(type: "nvarchar(max)", nullable: false),
lastName = table.Column(type: "nvarchar(max)", nullable: false),
email = table.Column(type: "nvarchar(max)", nullable: false),
password = table.Column(type: "nvarchar(max)", nullable: false),
phone = table.Column(type: "nvarchar(max)", nullable: false),
summary = table.Column(type: "nvarchar(max)", nullable: false),
dateOfBirth = table.Column(type: "datetime2", nullable: false),
darkTheme = table.Column(type: "bit", nullable: false),
address = table.Column(type: "nvarchar(max)", nullable: false),
websiteURL = table.Column(type: "nvarchar(max)", nullable: false),
picture = table.Column(type: "nvarchar(max)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_User", x => x.userId);
});
migrationBuilder.CreateTable(
name: "BusinessCard",
columns: table => new
{
bcId = table.Column(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
userId = table.Column(type: "int", nullable: false),
summary = table.Column(type: "nvarchar(max)", nullable: false),
uniqueUrl = table.Column(type: "nvarchar(max)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_BusinessCard", x => x.bcId);
table.ForeignKey(
name: "FK_BusinessCard_User_userId",
column: x => x.userId,
principalTable: "User",
principalColumn: "userId",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Certificate",
columns: table => new
{
certificateId = table.Column(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
name = table.Column(type: "nvarchar(max)", nullable: false),
issuedBy = table.Column(type: "nvarchar(max)", nullable: false),
description = table.Column(type: "nvarchar(max)", nullable: false),
issuedDate = table.Column(type: "datetime2", nullable: false),
expirationDate = table.Column(type: "datetime2", nullable: false),
userId = table.Column(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Certificate", x => x.certificateId);
table.ForeignKey(
name: "FK_Certificate_User_userId",
column: x => x.userId,
principalTable: "User",
principalColumn: "userId",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Education",
columns: table => new
{
educationId = table.Column(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
userId = table.Column(type: "int", nullable: false),
degree = table.Column(type: "nvarchar(max)", nullable: false),
institution = table.Column(type: "nvarchar(max)", nullable: false),
fieldOfStudy = table.Column(type: "nvarchar(max)", nullable: false),
graduationDate = table.Column(type: "datetime2", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Education", x => x.educationId);
table.ForeignKey(
name: "FK_Education_User_userId",
column: x => x.userId,
principalTable: "User",
principalColumn: "userId",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Notification",
columns: table => new
{
notificationId = table.Column(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
userId = table.Column(type: "int", nullable: false),
activity = table.Column(type: "nvarchar(max)", nullable: false),
timestamp = table.Column(type: "datetime2", nullable: false),
details = table.Column(type: "nvarchar(max)", nullable: false),
isRead = table.Column(type: "bit", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Notification", x => x.notificationId);
table.ForeignKey(
name: "FK_Notification_User_userId",
column: x => x.userId,
principalTable: "User",
principalColumn: "userId",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Privacy",
columns: table => new
{
Id = table.Column(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
userId = table.Column(type: "int", nullable: false),
CanViewEducation = table.Column(type: "bit", nullable: false),
CanViewWorkExperience = table.Column(type: "bit", nullable: false),
CanViewSkills = table.Column(type: "bit", nullable: false),
CanViewProjects = table.Column(type: "bit", nullable: false),
CanViewCertificates = table.Column(type: "bit", nullable: false),
CanViewVolunteering = table.Column(type: "bit", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Privacy", x => x.Id);
table.ForeignKey(
name: "FK_Privacy_User_userId",
column: x => x.userId,
principalTable: "User",
principalColumn: "userId",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Project",
columns: table => new
{
projectId = table.Column(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
projectName = table.Column(type: "nvarchar(max)", nullable: false),
description = table.Column(type: "nvarchar(max)", nullable: false),
technologies = table.Column(type: "nvarchar(max)", nullable: false),
userId = table.Column(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Project", x => x.projectId);
table.ForeignKey(
name: "FK_Project_User_userId",
column: x => x.userId,
principalTable: "User",
principalColumn: "userId",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Volunteering",
columns: table => new
{
volunteeringId = table.Column(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
userId = table.Column(type: "int", nullable: false),
organisation = table.Column(type: "nvarchar(max)", nullable: false),
role = table.Column(type: "nvarchar(max)", nullable: false),
description = table.Column(type: "nvarchar(max)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Volunteering", x => x.volunteeringId);
table.ForeignKey(
name: "FK_Volunteering_User_userId",
column: x => x.userId,
principalTable: "User",
principalColumn: "userId",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "WorkExperience",
columns: table => new
{
workId = table.Column(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
userId = table.Column(type: "int", nullable: false),
jobTitle = table.Column(type: "nvarchar(max)", nullable: false),
company = table.Column(type: "nvarchar(max)", nullable: false),
location = table.Column(type: "nvarchar(max)", nullable: false),
employmentPeriod = table.Column(type: "nvarchar(max)", nullable: false),
responsibilities = table.Column(type: "nvarchar(max)", nullable: false),
achievements = table.Column(type: "nvarchar(max)", nullable: false),
description = table.Column(type: "nvarchar(max)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_WorkExperience", x => x.workId);
table.ForeignKey(
name: "FK_WorkExperience_User_userId",
column: x => x.userId,
principalTable: "User",
principalColumn: "userId",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Skill",
columns: table => new
{
skillId = table.Column(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
name = table.Column(type: "nvarchar(max)", nullable: false),
BusinessCardbcId = table.Column(type: "int", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Skill", x => x.skillId);
table.ForeignKey(
name: "FK_Skill_BusinessCard_BusinessCardbcId",
column: x => x.BusinessCardbcId,
principalTable: "BusinessCard",
principalColumn: "bcId");
});
migrationBuilder.CreateTable(
name: "AssessmentTest",
columns: table => new
{
assessmentTestId = table.Column(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
testName = table.Column(type: "nvarchar(max)", nullable: false),
userId = table.Column(type: "int", nullable: false),
description = table.Column(type: "nvarchar(max)", nullable: false),
skillid = table.Column(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_AssessmentTest", x => x.assessmentTestId);
table.ForeignKey(
name: "FK_AssessmentTest_Skill_skillid",
column: x => x.skillid,
principalTable: "Skill",
principalColumn: "skillId",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_AssessmentTest_User_userId",
column: x => x.userId,
principalTable: "User",
principalColumn: "userId",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Endorsement",
columns: table => new
{
endorsementId = table.Column(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
endorserId = table.Column(type: "int", nullable: false),
recipientid = table.Column(type: "int", nullable: false),
skillId = table.Column(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Endorsement", x => x.endorsementId);
table.ForeignKey(
name: "FK_Endorsement_Skill_skillId",
column: x => x.skillId,
principalTable: "Skill",
principalColumn: "skillId",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_Endorsement_User_endorserId",
column: x => x.endorserId,
principalTable: "User",
principalColumn: "userId",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_Endorsement_User_recipientid",
column: x => x.recipientid,
principalTable: "User",
principalColumn: "userId",
onDelete: ReferentialAction.Restrict);
});
migrationBuilder.CreateTable(
name: "AssessmentResult",
columns: table => new
{
assesmentResultId = table.Column(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
assesmentTestId = table.Column(type: "int", nullable: false),
score = table.Column(type: "int", nullable: false),
userId = table.Column(type: "int", nullable: false),
testDate = table.Column(type: "datetime2", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_AssessmentResult", x => x.assesmentResultId);
table.ForeignKey(
name: "FK_AssessmentResult_AssessmentTest_assesmentTestId",
column: x => x.assesmentTestId,
principalTable: "AssessmentTest",
principalColumn: "assessmentTestId");
table.ForeignKey(
name: "FK_AssessmentResult_User_userId",
column: x => x.userId,
principalTable: "User",
principalColumn: "userId");
});
migrationBuilder.CreateTable(
name: "Question",
columns: table => new
{
questionId = table.Column(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
questionText = table.Column(type: "nvarchar(max)", nullable: false),
assesmentTestId = table.Column(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Question", x => x.questionId);
table.ForeignKey(
name: "FK_Question_AssessmentTest_assesmentTestId",
column: x => x.assesmentTestId,
principalTable: "AssessmentTest",
principalColumn: "assessmentTestId",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Answers",
columns: table => new
{
answerId = table.Column(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
answerText = table.Column(type: "nvarchar(max)", nullable: false),
questionId = table.Column(type: "int", nullable: false),
isCorrect = table.Column(type: "bit", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Answers", x => x.answerId);
table.ForeignKey(
name: "FK_Answers_Question_questionId",
column: x => x.questionId,
principalTable: "Question",
principalColumn: "questionId",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_Answers_questionId",
table: "Answers",
column: "questionId");
migrationBuilder.CreateIndex(
name: "IX_AssessmentResult_assesmentTestId",
table: "AssessmentResult",
column: "assesmentTestId",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_AssessmentResult_userId",
table: "AssessmentResult",
column: "userId",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_AssessmentTest_skillid",
table: "AssessmentTest",
column: "skillid");
migrationBuilder.CreateIndex(
name: "IX_AssessmentTest_userId",
table: "AssessmentTest",
column: "userId");
migrationBuilder.CreateIndex(
name: "IX_BusinessCard_userId",
table: "BusinessCard",
column: "userId");
migrationBuilder.CreateIndex(
name: "IX_Certificate_userId",
table: "Certificate",
column: "userId");
migrationBuilder.CreateIndex(
name: "IX_Education_userId",
table: "Education",
column: "userId");
migrationBuilder.CreateIndex(
name: "IX_Endorsement_endorserId",
table: "Endorsement",
column: "endorserId");
migrationBuilder.CreateIndex(
name: "IX_Endorsement_recipientid",
table: "Endorsement",
column: "recipientid");
migrationBuilder.CreateIndex(
name: "IX_Endorsement_skillId",
table: "Endorsement",
column: "skillId");
migrationBuilder.CreateIndex(
name: "IX_Notification_userId",
table: "Notification",
column: "userId");
migrationBuilder.CreateIndex(
name: "IX_Privacy_userId",
table: "Privacy",
column: "userId",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Project_userId",
table: "Project",
column: "userId",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Question_assesmentTestId",
table: "Question",
column: "assesmentTestId");
migrationBuilder.CreateIndex(
name: "IX_Skill_BusinessCardbcId",
table: "Skill",
column: "BusinessCardbcId");
migrationBuilder.CreateIndex(
name: "IX_Volunteering_userId",
table: "Volunteering",
column: "userId",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_WorkExperience_userId",
table: "WorkExperience",
column: "userId",
unique: true);
}
///
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Answers");
migrationBuilder.DropTable(
name: "AssessmentResult");
migrationBuilder.DropTable(
name: "Certificate");
migrationBuilder.DropTable(
name: "Education");
migrationBuilder.DropTable(
name: "Endorsement");
migrationBuilder.DropTable(
name: "Notification");
migrationBuilder.DropTable(
name: "Privacy");
migrationBuilder.DropTable(
name: "Project");
migrationBuilder.DropTable(
name: "Volunteering");
migrationBuilder.DropTable(
name: "WorkExperience");
migrationBuilder.DropTable(
name: "Question");
migrationBuilder.DropTable(
name: "AssessmentTest");
migrationBuilder.DropTable(
name: "Skill");
migrationBuilder.DropTable(
name: "BusinessCard");
migrationBuilder.DropTable(
name: "User");
}
}
}