//
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using ProfessionalProfile.DatabaseContext;
#nullable disable
namespace ProfessionalProfile.Migrations
{
[DbContext(typeof(DataContext))]
[Migration("20240514164956_UwU")]
partial class UwU
{
///
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "8.0.4")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("ProfessionalProfile.Domain.Answer", b =>
{
b.Property("answerId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("answerId"));
b.Property("answerText")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("isCorrect")
.HasColumnType("bit");
b.Property("questionId")
.HasColumnType("int");
b.HasKey("answerId");
b.HasIndex("questionId");
b.ToTable("Answers");
});
modelBuilder.Entity("ProfessionalProfile.Domain.AssessmentResult", b =>
{
b.Property("assesmentResultId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("assesmentResultId"));
b.Property("assesmentTestId")
.HasColumnType("int");
b.Property("score")
.HasColumnType("int");
b.Property("testDate")
.HasColumnType("datetime2");
b.Property("userId")
.HasColumnType("int");
b.HasKey("assesmentResultId");
b.HasIndex("assesmentTestId")
.IsUnique();
b.HasIndex("userId")
.IsUnique();
b.ToTable("AssessmentResult");
});
modelBuilder.Entity("ProfessionalProfile.Domain.AssessmentTest", b =>
{
b.Property("assessmentTestId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("assessmentTestId"));
b.Property("description")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("skillid")
.HasColumnType("int");
b.Property("testName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("userId")
.HasColumnType("int");
b.HasKey("assessmentTestId");
b.HasIndex("skillid");
b.HasIndex("userId");
b.ToTable("AssessmentTest");
});
modelBuilder.Entity("ProfessionalProfile.Domain.BusinessCard", b =>
{
b.Property("bcId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("bcId"));
b.Property("summary")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("uniqueUrl")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("userId")
.HasColumnType("int");
b.HasKey("bcId");
b.HasIndex("userId");
b.ToTable("BusinessCard");
});
modelBuilder.Entity("ProfessionalProfile.Domain.Certificate", b =>
{
b.Property("certificateId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("certificateId"));
b.Property("description")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("expirationDate")
.HasColumnType("datetime2");
b.Property("issuedBy")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("issuedDate")
.HasColumnType("datetime2");
b.Property("name")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("userId")
.HasColumnType("int");
b.HasKey("certificateId");
b.HasIndex("userId");
b.ToTable("Certificate");
});
modelBuilder.Entity("ProfessionalProfile.Domain.Education", b =>
{
b.Property("educationId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("educationId"));
b.Property("degree")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("fieldOfStudy")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("graduationDate")
.HasColumnType("datetime2");
b.Property("institution")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("userId")
.HasColumnType("int");
b.HasKey("educationId");
b.HasIndex("userId");
b.ToTable("Education");
});
modelBuilder.Entity("ProfessionalProfile.Domain.Endorsement", b =>
{
b.Property("endorsementId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("endorsementId"));
b.Property("endorserId")
.HasColumnType("int");
b.Property("recipientid")
.HasColumnType("int");
b.Property("skillId")
.HasColumnType("int");
b.HasKey("endorsementId");
b.HasIndex("endorserId");
b.HasIndex("recipientid");
b.HasIndex("skillId");
b.ToTable("Endorsement");
});
modelBuilder.Entity("ProfessionalProfile.Domain.Notification", b =>
{
b.Property("notificationId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("notificationId"));
b.Property("activity")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("details")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("isRead")
.HasColumnType("bit");
b.Property("timestamp")
.HasColumnType("datetime2");
b.Property("userId")
.HasColumnType("int");
b.HasKey("notificationId");
b.HasIndex("userId");
b.ToTable("Notification");
});
modelBuilder.Entity("ProfessionalProfile.Domain.Privacy", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
b.Property("CanViewCertificates")
.HasColumnType("bit");
b.Property("CanViewEducation")
.HasColumnType("bit");
b.Property("CanViewProjects")
.HasColumnType("bit");
b.Property("CanViewSkills")
.HasColumnType("bit");
b.Property("CanViewVolunteering")
.HasColumnType("bit");
b.Property("CanViewWorkExperience")
.HasColumnType("bit");
b.Property("userId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("userId")
.IsUnique();
b.ToTable("Privacy");
});
modelBuilder.Entity("ProfessionalProfile.Domain.Project", b =>
{
b.Property("projectId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("projectId"));
b.Property("description")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("projectName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("technologies")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("userId")
.HasColumnType("int");
b.HasKey("projectId");
b.HasIndex("userId")
.IsUnique();
b.ToTable("Project");
});
modelBuilder.Entity("ProfessionalProfile.Domain.Question", b =>
{
b.Property("questionId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("questionId"));
b.Property("assesmentTestId")
.HasColumnType("int");
b.Property("questionText")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("questionId");
b.HasIndex("assesmentTestId");
b.ToTable("Question");
});
modelBuilder.Entity("ProfessionalProfile.Domain.Skill", b =>
{
b.Property("skillId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("skillId"));
b.Property("BusinessCardbcId")
.HasColumnType("int");
b.Property("name")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("skillId");
b.HasIndex("BusinessCardbcId");
b.ToTable("Skill");
});
modelBuilder.Entity("ProfessionalProfile.Domain.User", b =>
{
b.Property("userId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("userId"));
b.Property("address")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("darkTheme")
.HasColumnType("bit");
b.Property("dateOfBirth")
.HasColumnType("datetime2");
b.Property("email")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("firstName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("lastName")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("password")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("phone")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("picture")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("summary")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("websiteURL")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("userId");
b.ToTable("User");
});
modelBuilder.Entity("ProfessionalProfile.Domain.Volunteering", b =>
{
b.Property("volunteeringId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("volunteeringId"));
b.Property("description")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("organisation")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("role")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("userId")
.HasColumnType("int");
b.HasKey("volunteeringId");
b.HasIndex("userId")
.IsUnique();
b.ToTable("Volunteering");
});
modelBuilder.Entity("ProfessionalProfile.Domain.WorkExperience", b =>
{
b.Property("workId")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("workId"));
b.Property("achievements")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("company")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("description")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("employmentPeriod")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("jobTitle")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("location")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("responsibilities")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property("userId")
.HasColumnType("int");
b.HasKey("workId");
b.HasIndex("userId")
.IsUnique();
b.ToTable("WorkExperience");
});
modelBuilder.Entity("ProfessionalProfile.Domain.Answer", b =>
{
b.HasOne("ProfessionalProfile.Domain.Question", "Question")
.WithMany()
.HasForeignKey("questionId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Question");
});
modelBuilder.Entity("ProfessionalProfile.Domain.AssessmentResult", b =>
{
b.HasOne("ProfessionalProfile.Domain.AssessmentTest", "AssessmentTest")
.WithOne("AssessmentResult")
.HasForeignKey("ProfessionalProfile.Domain.AssessmentResult", "assesmentTestId")
.OnDelete(DeleteBehavior.NoAction)
.IsRequired();
b.HasOne("ProfessionalProfile.Domain.User", "User")
.WithOne("AssessmentResult")
.HasForeignKey("ProfessionalProfile.Domain.AssessmentResult", "userId")
.OnDelete(DeleteBehavior.NoAction)
.IsRequired();
b.Navigation("AssessmentTest");
b.Navigation("User");
});
modelBuilder.Entity("ProfessionalProfile.Domain.AssessmentTest", b =>
{
b.HasOne("ProfessionalProfile.Domain.Skill", "Skill")
.WithMany()
.HasForeignKey("skillid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("ProfessionalProfile.Domain.User", "User")
.WithMany()
.HasForeignKey("userId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Skill");
b.Navigation("User");
});
modelBuilder.Entity("ProfessionalProfile.Domain.BusinessCard", b =>
{
b.HasOne("ProfessionalProfile.Domain.User", "User")
.WithMany()
.HasForeignKey("userId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("User");
});
modelBuilder.Entity("ProfessionalProfile.Domain.Certificate", b =>
{
b.HasOne("ProfessionalProfile.Domain.User", "User")
.WithMany()
.HasForeignKey("userId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("User");
});
modelBuilder.Entity("ProfessionalProfile.Domain.Education", b =>
{
b.HasOne("ProfessionalProfile.Domain.User", "User")
.WithMany()
.HasForeignKey("userId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("User");
});
modelBuilder.Entity("ProfessionalProfile.Domain.Endorsement", b =>
{
b.HasOne("ProfessionalProfile.Domain.User", "Endorser")
.WithMany()
.HasForeignKey("endorserId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("ProfessionalProfile.Domain.User", "Recipient")
.WithMany()
.HasForeignKey("recipientid")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("ProfessionalProfile.Domain.Skill", null)
.WithMany("endorsements")
.HasForeignKey("skillId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Endorser");
b.Navigation("Recipient");
});
modelBuilder.Entity("ProfessionalProfile.Domain.Notification", b =>
{
b.HasOne("ProfessionalProfile.Domain.User", "User")
.WithMany("Notifications")
.HasForeignKey("userId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("User");
});
modelBuilder.Entity("ProfessionalProfile.Domain.Privacy", b =>
{
b.HasOne("ProfessionalProfile.Domain.User", "User")
.WithOne("Privacy")
.HasForeignKey("ProfessionalProfile.Domain.Privacy", "userId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("User");
});
modelBuilder.Entity("ProfessionalProfile.Domain.Project", b =>
{
b.HasOne("ProfessionalProfile.Domain.User", "User")
.WithOne("Project")
.HasForeignKey("ProfessionalProfile.Domain.Project", "userId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("User");
});
modelBuilder.Entity("ProfessionalProfile.Domain.Question", b =>
{
b.HasOne("ProfessionalProfile.Domain.AssessmentTest", "AssessmentTest")
.WithMany()
.HasForeignKey("assesmentTestId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("AssessmentTest");
});
modelBuilder.Entity("ProfessionalProfile.Domain.Skill", b =>
{
b.HasOne("ProfessionalProfile.Domain.BusinessCard", null)
.WithMany("keySkills")
.HasForeignKey("BusinessCardbcId");
});
modelBuilder.Entity("ProfessionalProfile.Domain.Volunteering", b =>
{
b.HasOne("ProfessionalProfile.Domain.User", "User")
.WithOne("Volunteering")
.HasForeignKey("ProfessionalProfile.Domain.Volunteering", "userId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("User");
});
modelBuilder.Entity("ProfessionalProfile.Domain.WorkExperience", b =>
{
b.HasOne("ProfessionalProfile.Domain.User", "User")
.WithOne("WorkExperience")
.HasForeignKey("ProfessionalProfile.Domain.WorkExperience", "userId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("User");
});
modelBuilder.Entity("ProfessionalProfile.Domain.AssessmentTest", b =>
{
b.Navigation("AssessmentResult")
.IsRequired();
});
modelBuilder.Entity("ProfessionalProfile.Domain.BusinessCard", b =>
{
b.Navigation("keySkills");
});
modelBuilder.Entity("ProfessionalProfile.Domain.Skill", b =>
{
b.Navigation("endorsements");
});
modelBuilder.Entity("ProfessionalProfile.Domain.User", b =>
{
b.Navigation("AssessmentResult");
b.Navigation("Notifications");
b.Navigation("Privacy");
b.Navigation("Project");
b.Navigation("Volunteering");
b.Navigation("WorkExperience");
});
#pragma warning restore 612, 618
}
}
}