// <auto-generated />
using System;
using System.Collections.Generic;
using DntSite.Web.Features.Persistence.UnitOfWork;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;

#nullable disable

namespace DntSite.Web.Features.Persistence.Migrations
{
    [DbContext(typeof(ApplicationDbContext))]
    [Migration("20251231180814_V2025_12_31_2127")]
    partial class V2025_12_31_2127
    {
        /// <inheritdoc />
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .UseCollation("NOCASE")
                .HasAnnotation("ProductVersion", "10.0.1");

            modelBuilder.Entity("AdvertisementAdvertisementTag", b =>
                {
                    b.Property<int>("AssociatedEntitiesId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("TagsId")
                        .HasColumnType("INTEGER");

                    b.HasKey("AssociatedEntitiesId", "TagsId");

                    b.HasIndex("TagsId");

                    b.ToTable("AdvertisementAdvertisementTag");
                });

            modelBuilder.Entity("BacklogBacklogTag", b =>
                {
                    b.Property<int>("AssociatedEntitiesId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("TagsId")
                        .HasColumnType("INTEGER");

                    b.HasKey("AssociatedEntitiesId", "TagsId");

                    b.HasIndex("TagsId");

                    b.ToTable("BacklogBacklogTag");
                });

            modelBuilder.Entity("BlogPostBlogPostTag", b =>
                {
                    b.Property<int>("AssociatedEntitiesId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("TagsId")
                        .HasColumnType("INTEGER");

                    b.HasKey("AssociatedEntitiesId", "TagsId");

                    b.HasIndex("TagsId");

                    b.ToTable("BlogPostBlogPostTag");
                });

            modelBuilder.Entity("CourseCourseTag", b =>
                {
                    b.Property<int>("AssociatedEntitiesId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("TagsId")
                        .HasColumnType("INTEGER");

                    b.HasKey("AssociatedEntitiesId", "TagsId");

                    b.HasIndex("TagsId");

                    b.ToTable("CourseCourseTag");
                });

            modelBuilder.Entity("CourseQuestionCourseQuestionTag", b =>
                {
                    b.Property<int>("AssociatedEntitiesId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("TagsId")
                        .HasColumnType("INTEGER");

                    b.HasKey("AssociatedEntitiesId", "TagsId");

                    b.HasIndex("TagsId");

                    b.ToTable("CourseQuestionCourseQuestionTag");
                });

            modelBuilder.Entity("CourseTopicCourseTopicTag", b =>
                {
                    b.Property<int>("AssociatedEntitiesId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("TagsId")
                        .HasColumnType("INTEGER");

                    b.HasKey("AssociatedEntitiesId", "TagsId");

                    b.HasIndex("TagsId");

                    b.ToTable("CourseTopicCourseTopicTag");
                });

            modelBuilder.Entity("CourseUser", b =>
                {
                    b.Property<int>("CourseAllowedUsersId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("UserAllowedCoursesId")
                        .HasColumnType("INTEGER");

                    b.HasKey("CourseAllowedUsersId", "UserAllowedCoursesId");

                    b.HasIndex("UserAllowedCoursesId");

                    b.ToTable("CourseUser");
                });

            modelBuilder.Entity("DailyNewsItemDailyNewsItemTag", b =>
                {
                    b.Property<int>("AssociatedEntitiesId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("TagsId")
                        .HasColumnType("INTEGER");

                    b.HasKey("AssociatedEntitiesId", "TagsId");

                    b.HasIndex("TagsId");

                    b.ToTable("DailyNewsItemDailyNewsItemTag");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.Advertisement", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<DateTime?>("DueDate")
                        .HasColumnType("TEXT");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Advertisements.Entities.Advertisement.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Advertisements.Entities.Advertisement.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Advertisements.Entities.Advertisement.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Advertisements.Entities.Advertisement.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("Advertisements");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementComment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ReplyId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Advertisements.Entities.AdvertisementComment.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Advertisements.Entities.AdvertisementComment.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Advertisements.Entities.AdvertisementComment.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Advertisements.Entities.AdvertisementComment.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("ParentId");

                    b.HasIndex("ReplyId");

                    b.HasIndex("UserId");

                    b.ToTable("AdvertisementComments");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementTag", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("InUseCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Advertisements.Entities.AdvertisementTag.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Advertisements.Entities.AdvertisementTag.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("AdvertisementTags");
                });

            modelBuilder.Entity("DntSite.Web.Features.AppConfigs.Entities.AppDataProtectionKey", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("FriendlyName")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("XmlData")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.AppConfigs.Entities.AppDataProtectionKey.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.AppConfigs.Entities.AppDataProtectionKey.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("AppDataProtectionKeys");
                });

            modelBuilder.Entity("DntSite.Web.Features.AppConfigs.Entities.AppLogItem", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("EventId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("LogLevel")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("Logger")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("Message")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("Url")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.AppConfigs.Entities.AppLogItem.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.AppConfigs.Entities.AppLogItem.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("AppLogItems");
                });

            modelBuilder.Entity("DntSite.Web.Features.AppConfigs.Entities.AppSetting", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.PrimitiveCollection<string>("BannedEmails")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.PrimitiveCollection<string>("BannedPasswords")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.PrimitiveCollection<string>("BannedReferrers")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.PrimitiveCollection<string>("BannedSites")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.PrimitiveCollection<string>("BannedUrls")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<string>("BlogName")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("CanUsersRegister")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("SiteEmailsSig")
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("SiteFromEmail")
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("SiteIsActive")
                        .HasColumnType("INTEGER");

                    b.Property<string>("SiteRootUri")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.AppConfigs.Entities.AppSetting.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GeminiNewsFeeds", "DntSite.Web.Features.AppConfigs.Entities.AppSetting.GeminiNewsFeeds#GeminiNewsFeeds", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("ApiKey")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.PrimitiveCollection<string>("NewsFeeds")
                                .IsRequired()
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.AppConfigs.Entities.AppSetting.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "MinimumRequiredPosts", "DntSite.Web.Features.AppConfigs.Entities.AppSetting.MinimumRequiredPosts#MinimumRequiredPosts", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("MaxDaysToCloseATopic")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("MinMonthToStayActive")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("MinNumberOfLinksCreateANewSurvey")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("MinNumberOfLinksToCreateALearningPath")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("MinNumberOfLinksToCreateANewBacklog")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("MinPostsToCreateALearningPath")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("MinPostsToCreateANewCourse")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("MinPostsToCreateANewProject")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "SmtpServerSetting", "DntSite.Web.Features.AppConfigs.Entities.AppSetting.SmtpServerSetting#SmtpServerSetting", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Address")
                                .IsRequired()
                                .HasMaxLength(400)
                                .HasColumnType("TEXT");

                            b1.Property<string>("Password")
                                .HasMaxLength(400)
                                .HasColumnType("TEXT");

                            b1.Property<string>("PickupFolderName")
                                .HasMaxLength(400)
                                .HasColumnType("TEXT");

                            b1.Property<int>("Port")
                                .HasColumnType("INTEGER");

                            b1.Property<bool>("ShouldValidateServerCertificate")
                                .HasColumnType("INTEGER");

                            b1.Property<bool>("UsePickupFolder")
                                .HasColumnType("INTEGER");

                            b1.Property<string>("Username")
                                .HasMaxLength(400)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "UsedPasswords", "DntSite.Web.Features.AppConfigs.Entities.AppSetting.UsedPasswords#UsedPasswordsSetting", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("ChangePasswordReminderDays")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NotAllowedPreviouslyUsedPasswords")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("AppSettings");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.Backlog", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ConvertedBlogPostId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("DaysEstimate")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("DoneByUserId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DoneDate")
                        .HasColumnType("TEXT");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("StartDate")
                        .HasColumnType("TEXT");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Backlogs.Entities.Backlog.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Backlogs.Entities.Backlog.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Backlogs.Entities.Backlog.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Backlogs.Entities.Backlog.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("ConvertedBlogPostId");

                    b.HasIndex("DoneByUserId");

                    b.HasIndex("UserId");

                    b.ToTable("Backlogs");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogComment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ReplyId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Backlogs.Entities.BacklogComment.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Backlogs.Entities.BacklogComment.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Backlogs.Entities.BacklogComment.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Backlogs.Entities.BacklogComment.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("ParentId");

                    b.HasIndex("ReplyId");

                    b.HasIndex("UserId");

                    b.ToTable("BacklogComments");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogTag", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("InUseCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Backlogs.Entities.BacklogTag.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Backlogs.Entities.BacklogTag.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("BacklogTags");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.Course", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("HowToPay")
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsFree")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsReadyToPublish")
                        .HasColumnType("INTEGER");

                    b.Property<int>("NumberOfComments")
                        .HasColumnType("INTEGER");

                    b.Property<int>("NumberOfHelperTopics")
                        .HasColumnType("INTEGER");

                    b.Property<int>("NumberOfMonthsRequired")
                        .HasColumnType("INTEGER");

                    b.Property<int>("NumberOfMonthsTotalRatingsRequired")
                        .HasColumnType("INTEGER");

                    b.Property<int>("NumberOfPostsRequired")
                        .HasColumnType("INTEGER");

                    b.Property<int>("NumberOfQuestions")
                        .HasColumnType("INTEGER");

                    b.Property<int>("NumberOfQuestionsComments")
                        .HasColumnType("INTEGER");

                    b.Property<int>("NumberOfTopics")
                        .HasColumnType("INTEGER");

                    b.Property<int>("NumberOfTotalRatingsRequired")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Perm")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Requirements")
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("TopicsList")
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Courses.Entities.Course.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Courses.Entities.Course.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Courses.Entities.Course.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Courses.Entities.Course.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("Courses");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseComment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ReplyId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Courses.Entities.CourseComment.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Courses.Entities.CourseComment.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Courses.Entities.CourseComment.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Courses.Entities.CourseComment.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("ParentId");

                    b.HasIndex("ReplyId");

                    b.HasIndex("UserId");

                    b.ToTable("CourseComments");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestion", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("CourseId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Courses.Entities.CourseQuestion.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Courses.Entities.CourseQuestion.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Courses.Entities.CourseQuestion.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Courses.Entities.CourseQuestion.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("CourseId");

                    b.HasIndex("UserId");

                    b.ToTable("CourseQuestions");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionComment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ReplyId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Courses.Entities.CourseQuestionComment.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Courses.Entities.CourseQuestionComment.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Courses.Entities.CourseQuestionComment.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Courses.Entities.CourseQuestionComment.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("ParentId");

                    b.HasIndex("ReplyId");

                    b.HasIndex("UserId");

                    b.ToTable("CourseQuestionComments");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionTag", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("InUseCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Courses.Entities.CourseQuestionTag.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Courses.Entities.CourseQuestionTag.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("CourseQuestionTags");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTag", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("InUseCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Courses.Entities.CourseTag.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Courses.Entities.CourseTag.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("CourseTags");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopic", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int>("CourseId")
                        .HasColumnType("INTEGER");

                    b.Property<Guid>("DisplayId")
                        .HasColumnType("TEXT");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsMainTopic")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ReadingTimeMinutes")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Courses.Entities.CourseTopic.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Courses.Entities.CourseTopic.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Courses.Entities.CourseTopic.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Courses.Entities.CourseTopic.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("CourseId");

                    b.HasIndex("UserId");

                    b.ToTable("CourseTopics");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicComment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ReplyId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Courses.Entities.CourseTopicComment.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Courses.Entities.CourseTopicComment.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Courses.Entities.CourseTopicComment.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Courses.Entities.CourseTopicComment.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("ParentId");

                    b.HasIndex("ReplyId");

                    b.HasIndex("UserId");

                    b.ToTable("CourseTopicComments");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicTag", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("InUseCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Courses.Entities.CourseTopicTag.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Courses.Entities.CourseTopicTag.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("CourseTopicTags");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItem", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("BriefDescription")
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("FetchRetries")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("LastHttpStatusCode")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("LastHttpStatusCodeCheckDateTime")
                        .HasColumnType("TEXT");

                    b.Property<string>("PageThumbnail")
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("PingbackSent")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("Url")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("UrlHash")
                        .IsRequired()
                        .HasMaxLength(50)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.News.Entities.DailyNewsItem.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.News.Entities.DailyNewsItem.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.News.Entities.DailyNewsItem.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.News.Entities.DailyNewsItem.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("UrlHash")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("DailyNewsItems");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemComment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("EmailsSent")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ReplyId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.News.Entities.DailyNewsItemComment.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.News.Entities.DailyNewsItemComment.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.News.Entities.DailyNewsItemComment.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.News.Entities.DailyNewsItemComment.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("ParentId");

                    b.HasIndex("ReplyId");

                    b.HasIndex("UserId");

                    b.ToTable("DailyNewsItemComments");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemTag", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("InUseCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.News.Entities.DailyNewsItemTag.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.News.Entities.DailyNewsItemTag.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("DailyNewsItemTags");
                });

            modelBuilder.Entity("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Discriminator")
                        .IsRequired()
                        .HasMaxLength(55)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.ToTable("ParentBookmarks", (string)null);

                    b.HasDiscriminator().HasValue("ParentBookmarkEntity");

                    b.UseTphMappingStrategy();
                });

            modelBuilder.Entity("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Discriminator")
                        .IsRequired()
                        .HasMaxLength(55)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("ForUserId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Reaction")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.ToTable("ParentReactions", (string)null);

                    b.HasDiscriminator().HasValue("ParentReactionEntity");

                    b.UseTphMappingStrategy();
                });

            modelBuilder.Entity("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentUserFileEntity", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Discriminator")
                        .IsRequired()
                        .HasMaxLength(34)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<long>("FileSize")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("NumberOfDownloads")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentUserFileEntity.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentUserFileEntity.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.ToTable("ParentUserFiles", (string)null);

                    b.HasDiscriminator().HasValue("ParentUserFileEntity");

                    b.UseTphMappingStrategy();
                });

            modelBuilder.Entity("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Discriminator")
                        .IsRequired()
                        .HasMaxLength(55)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsFromFeed")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Country", "DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity.Country#VisitorCountry", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Code")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("Name")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Device", "DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity.Device#VisitorDevice", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Brand")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("Family")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<bool>("IsSpider")
                                .HasColumnType("INTEGER");

                            b1.Property<string>("Model")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Os", "DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity.Os#VisitorOs", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Family")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("Major")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("Minor")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("Patch")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("PatchMinor")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Referrer", "DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity.Referrer#VisitorReferrer", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("OriginalTitle")
                                .HasMaxLength(1500)
                                .HasColumnType("TEXT");

                            b1.Property<string>("OriginalUrl")
                                .HasMaxLength(1500)
                                .HasColumnType("TEXT");

                            b1.Property<string>("Title")
                                .HasMaxLength(1500)
                                .HasColumnType("TEXT");

                            b1.Property<string>("Url")
                                .HasMaxLength(1500)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "UserAgent", "DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity.UserAgent#VisitorUserAgent", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Family")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("Major")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("Minor")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("Patch")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.ToTable("ParentVisitors", (string)null);

                    b.HasDiscriminator().HasValue("ParentVisitorEntity");

                    b.UseTphMappingStrategy();
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPost", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("BriefDescription")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("EmailsSent")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("NumberOfRequiredPoints")
                        .HasColumnType("INTEGER");

                    b.Property<string>("OldUrl")
                        .HasMaxLength(1500)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("PingbackSent")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ReadingTimeMinutes")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Posts.Entities.BlogPost.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Posts.Entities.BlogPost.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Posts.Entities.BlogPost.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Posts.Entities.BlogPost.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("BlogPosts");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostComment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("EmailsSent")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ReplyId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Posts.Entities.BlogPostComment.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Posts.Entities.BlogPostComment.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Posts.Entities.BlogPostComment.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Posts.Entities.BlogPostComment.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("ParentId");

                    b.HasIndex("ReplyId");

                    b.HasIndex("UserId");

                    b.ToTable("BlogPostComments");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostDraft", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<DateTime?>("DateTimeToShow")
                        .HasColumnType("TEXT");

                    b.Property<bool>("IsConverted")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsReady")
                        .HasColumnType("INTEGER");

                    b.Property<int>("NumberOfRequiredPoints")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ReadingTimeMinutes")
                        .HasColumnType("INTEGER");

                    b.PrimitiveCollection<string>("Tags")
                        .IsRequired()
                        .HasMaxLength(1500)
                        .HasColumnType("TEXT");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Posts.Entities.BlogPostDraft.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Posts.Entities.BlogPostDraft.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("BlogPostDrafts");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostTag", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("InUseCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Posts.Entities.BlogPostTag.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Posts.Entities.BlogPostTag.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("BlogPostTags");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.MassEmail", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<bool>("EmailsSent")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("NewsBody")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("NewsTitle")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.PrivateMessages.Entities.MassEmail.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.PrivateMessages.Entities.MassEmail.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("MassEmails");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessage", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("EmailsSent")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsReadByReceiver")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int>("ToUserId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.PrivateMessages.Entities.PrivateMessage.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.PrivateMessages.Entities.PrivateMessage.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.PrivateMessages.Entities.PrivateMessage.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.PrivateMessages.Entities.PrivateMessage.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("ToUserId");

                    b.HasIndex("UserId");

                    b.ToTable("PrivateMessages");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageComment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ReplyId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageComment.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageComment.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageComment.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageComment.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("ParentId");

                    b.HasIndex("ReplyId");

                    b.HasIndex("UserId");

                    b.ToTable("PrivateMessageComments");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageTag", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("InUseCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageTag.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageTag.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("PrivateMessageTags");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.Project", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("DevelopersDescription")
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("License")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("Logo")
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int>("NumberOfFaqs")
                        .HasColumnType("INTEGER");

                    b.Property<int>("NumberOfIssues")
                        .HasColumnType("INTEGER");

                    b.Property<int>("NumberOfIssuesComments")
                        .HasColumnType("INTEGER");

                    b.Property<int>("NumberOfReleases")
                        .HasColumnType("INTEGER");

                    b.Property<string>("RelatedArticles")
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("RequiredDependencies")
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("SourcecodeRepositoryUrl")
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Projects.Entities.Project.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Projects.Entities.Project.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Projects.Entities.Project.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Projects.Entities.Project.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("Projects");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectComment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ReplyId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Projects.Entities.ProjectComment.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Projects.Entities.ProjectComment.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Projects.Entities.ProjectComment.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Projects.Entities.ProjectComment.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("ParentId");

                    b.HasIndex("ReplyId");

                    b.HasIndex("UserId");

                    b.ToTable("ProjectComments");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaq", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ProjectId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Projects.Entities.ProjectFaq.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Projects.Entities.ProjectFaq.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Projects.Entities.ProjectFaq.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Projects.Entities.ProjectFaq.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("ProjectId");

                    b.HasIndex("UserId");

                    b.ToTable("ProjectFaqs");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqComment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ReplyId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Projects.Entities.ProjectFaqComment.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Projects.Entities.ProjectFaqComment.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Projects.Entities.ProjectFaqComment.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Projects.Entities.ProjectFaqComment.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("ParentId");

                    b.HasIndex("ReplyId");

                    b.HasIndex("UserId");

                    b.ToTable("ProjectFaqComments");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqTag", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("InUseCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Projects.Entities.ProjectFaqTag.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Projects.Entities.ProjectFaqTag.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("ProjectFaqTags");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssue", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("IssuePriorityId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("IssueStatusId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("IssueTypeId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ProjectId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("RevisionNumber")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Projects.Entities.ProjectIssue.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Projects.Entities.ProjectIssue.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Projects.Entities.ProjectIssue.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Projects.Entities.ProjectIssue.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("IssuePriorityId");

                    b.HasIndex("IssueStatusId");

                    b.HasIndex("IssueTypeId");

                    b.HasIndex("ProjectId");

                    b.HasIndex("UserId");

                    b.ToTable("ProjectIssues");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueComment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("EmailsSent")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ReplyId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Projects.Entities.ProjectIssueComment.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Projects.Entities.ProjectIssueComment.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Projects.Entities.ProjectIssueComment.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Projects.Entities.ProjectIssueComment.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("ParentId");

                    b.HasIndex("ReplyId");

                    b.HasIndex("UserId");

                    b.ToTable("ProjectIssueComments");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssuePriority", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("InUseCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Projects.Entities.ProjectIssuePriority.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Projects.Entities.ProjectIssuePriority.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("ProjectIssuePriorities");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueStatus", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("InUseCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Projects.Entities.ProjectIssueStatus.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Projects.Entities.ProjectIssueStatus.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("ProjectIssueStatuses");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueTag", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("InUseCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Projects.Entities.ProjectIssueTag.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Projects.Entities.ProjectIssueTag.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("ProjectIssueTags");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueType", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("InUseCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Projects.Entities.ProjectIssueType.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Projects.Entities.ProjectIssueType.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("ProjectIssueTypes");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectRelease", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("FileDescription")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<long>("FileSize")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("NumberOfDownloads")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ProjectId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Projects.Entities.ProjectRelease.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Projects.Entities.ProjectRelease.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Projects.Entities.ProjectRelease.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Projects.Entities.ProjectRelease.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("ProjectId");

                    b.HasIndex("UserId");

                    b.ToTable("ProjectReleases");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseComment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ReplyId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Projects.Entities.ProjectReleaseComment.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Projects.Entities.ProjectReleaseComment.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Projects.Entities.ProjectReleaseComment.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Projects.Entities.ProjectReleaseComment.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("ParentId");

                    b.HasIndex("ReplyId");

                    b.HasIndex("UserId");

                    b.ToTable("ProjectReleaseComments");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseTag", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("InUseCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Projects.Entities.ProjectReleaseTag.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Projects.Entities.ProjectReleaseTag.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("ProjectReleaseTags");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectTag", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("InUseCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Projects.Entities.ProjectTag.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Projects.Entities.ProjectTag.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("ProjectTags");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPath", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.RoadMaps.Entities.LearningPath.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.RoadMaps.Entities.LearningPath.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.RoadMaps.Entities.LearningPath.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.RoadMaps.Entities.LearningPath.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("LearningPaths");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathComment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ReplyId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.RoadMaps.Entities.LearningPathComment.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.RoadMaps.Entities.LearningPathComment.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.RoadMaps.Entities.LearningPathComment.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.RoadMaps.Entities.LearningPathComment.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("ParentId");

                    b.HasIndex("ReplyId");

                    b.HasIndex("UserId");

                    b.ToTable("LearningPathComments");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathTag", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("InUseCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.RoadMaps.Entities.LearningPathTag.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.RoadMaps.Entities.LearningPathTag.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("LearningPathTags");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItem", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Text")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Searches.Entities.SearchItem.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Searches.Entities.SearchItem.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Searches.Entities.SearchItem.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Searches.Entities.SearchItem.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("SearchItems");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemComment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ReplyId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Searches.Entities.SearchItemComment.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Searches.Entities.SearchItemComment.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Searches.Entities.SearchItemComment.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Searches.Entities.SearchItemComment.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("ParentId");

                    b.HasIndex("ReplyId");

                    b.HasIndex("UserId");

                    b.ToTable("SearchItemComments");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemTag", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("InUseCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Searches.Entities.SearchItemTag.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Searches.Entities.SearchItemTag.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("SearchItemTags");
                });

            modelBuilder.Entity("DntSite.Web.Features.SideBar.Entities.CustomSidebar", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Description")
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsPublic")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.SideBar.Entities.CustomSidebar.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.SideBar.Entities.CustomSidebar.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("CustomSidebars");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestion", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsAnswered")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestion.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestion.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestion.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestion.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("StackExchangeQuestions");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionComment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsAnswer")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ReplyId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionComment.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionComment.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionComment.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionComment.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("ParentId");

                    b.HasIndex("ReplyId");

                    b.HasIndex("UserId");

                    b.ToTable("StackExchangeQuestionComments");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionTag", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("InUseCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionTag.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionTag.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("StackExchangeQuestionTags");
                });

            modelBuilder.Entity("DntSite.Web.Features.Stats.Entities.SiteReferrer", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int?>("DestinationSiteUrlId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsLocalReferrer")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("LastVisitTime")
                        .HasColumnType("TEXT");

                    b.Property<string>("ReferrerTitle")
                        .IsRequired()
                        .HasMaxLength(1500)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("ReferrerUrl")
                        .IsRequired()
                        .HasMaxLength(1500)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("VisitHash")
                        .IsRequired()
                        .HasMaxLength(50)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int>("VisitsCount")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Stats.Entities.SiteReferrer.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Stats.Entities.SiteReferrer.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("DestinationSiteUrlId");

                    b.HasIndex("UserId");

                    b.HasIndex("VisitHash")
                        .IsUnique();

                    b.ToTable("SiteReferrers");
                });

            modelBuilder.Entity("DntSite.Web.Features.Stats.Entities.SiteUrl", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsProtectedPage")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsStaticFileUrl")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasMaxLength(1500)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("Url")
                        .IsRequired()
                        .HasMaxLength(1500)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("UrlHash")
                        .IsRequired()
                        .HasMaxLength(50)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("VisitsCount")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Stats.Entities.SiteUrl.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Stats.Entities.SiteUrl.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "LastSiteUrlVisitorStat", "DntSite.Web.Features.Stats.Entities.SiteUrl.LastSiteUrlVisitorStat#LastSiteUrlVisitorStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("DisplayName")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("Ip")
                                .IsRequired()
                                .HasMaxLength(100)
                                .HasColumnType("TEXT");

                            b1.Property<bool>("IsSpider")
                                .HasColumnType("INTEGER");

                            b1.Property<string>("UserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<DateTime>("VisitTime")
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("Url");

                    b.HasIndex("UrlHash")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("SiteUrls");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.Survey", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<bool>("AllowMultipleSelection")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Description")
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<DateTime?>("DueDate")
                        .HasColumnType("TEXT");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int>("TotalRaters")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Surveys.Entities.Survey.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Surveys.Entities.Survey.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Surveys.Entities.Survey.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Surveys.Entities.Survey.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("Surveys");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyComment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("EmailsSent")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ReplyId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Surveys.Entities.SurveyComment.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.Surveys.Entities.SurveyComment.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Surveys.Entities.SurveyComment.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.Surveys.Entities.SurveyComment.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("ParentId");

                    b.HasIndex("ReplyId");

                    b.HasIndex("UserId");

                    b.ToTable("SurveyComments");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyItem", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Order")
                        .HasColumnType("INTEGER");

                    b.Property<int>("SurveyId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int>("TotalSurveys")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Surveys.Entities.SurveyItem.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Surveys.Entities.SurveyItem.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("SurveyId");

                    b.ToTable("SurveyItems");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyTag", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("InUseCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.Surveys.Entities.SurveyTag.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.Surveys.Entities.SurveyTag.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("SurveyTags");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.Role", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("InUseCount")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.UserProfiles.Entities.Role.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.UserProfiles.Entities.Role.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("Name")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.ToTable("Roles");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.User", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateOfBirth")
                        .HasColumnType("TEXT");

                    b.Property<string>("Description")
                        .HasMaxLength(2000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("EMail")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("EmailIsValidated")
                        .HasColumnType("INTEGER");

                    b.Property<string>("FriendlyName")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("HashedPassword")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("HomePageUrl")
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsActive")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsEmailPublic")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsJobsSeeker")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsRestricted")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("LastVisitDateTime")
                        .HasColumnType("TEXT");

                    b.Property<string>("Location")
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("Photo")
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("ReceiveDailyEmails")
                        .HasColumnType("INTEGER");

                    b.Property<string>("RegistrationCode")
                        .IsRequired()
                        .HasMaxLength(255)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("SerialNumber")
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("UserName")
                        .IsRequired()
                        .HasMaxLength(450)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.UserProfiles.Entities.User.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.UserProfiles.Entities.User.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.UserProfiles.Entities.User.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.UserProfiles.Entities.User.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "UserStat", "DntSite.Web.Features.UserProfiles.Entities.User.UserStat#UserStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfAdvertisementComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfAdvertisements")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfBacklogs")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfCourses")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfDrafts")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfLearningPaths")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfLinks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfLinksComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfPosts")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfProjects")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfProjectsComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfProjectsFeedbacks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfStackExchangeQuestions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfStackExchangeQuestionsComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfSurveyComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfSurveys")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("EMail")
                        .IsUnique();

                    b.HasIndex("FriendlyName")
                        .IsUnique();

                    b.HasIndex("UserId");

                    b.HasIndex("UserName")
                        .IsUnique();

                    b.ToTable("Users");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserProfileComment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Body")
                        .IsRequired()
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ReplyId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.UserProfiles.Entities.UserProfileComment.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "EntityStat", "DntSite.Web.Features.UserProfiles.Entities.UserProfileComment.EntityStat#EntityStat", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<int>("NumberOfBookmarks")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfComments")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfReactions")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfTags")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViews")
                                .HasColumnType("INTEGER");

                            b1.Property<int>("NumberOfViewsFromFeed")
                                .HasColumnType("INTEGER");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.UserProfiles.Entities.UserProfileComment.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Rating", "DntSite.Web.Features.UserProfiles.Entities.UserProfileComment.Rating#Rating", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<decimal>("AverageRating")
                                .HasColumnType("TEXT");

                            b1.Property<int>("TotalRaters")
                                .HasColumnType("INTEGER");

                            b1.Property<long>("TotalRating")
                                .HasColumnType("INTEGER");
                        });

                    b.HasKey("Id");

                    b.HasIndex("ParentId");

                    b.HasIndex("ReplyId");

                    b.HasIndex("UserId");

                    b.ToTable("UserProfileComments");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserSocialNetwork", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("CodePlexId")
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("CodeProjectId")
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("CoffeebedeId")
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("FacebookName")
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("GithubId")
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("GooglePlusProfileId")
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<string>("LinkedInProfileId")
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("NugetId")
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("RedditId")
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("SourceforgeId")
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("StackOverflowId")
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("TelegramId")
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<string>("TwitterName")
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<int?>("UserId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("YouTubeId")
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.UserProfiles.Entities.UserSocialNetwork.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.UserProfiles.Entities.UserSocialNetwork.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("UserId")
                        .IsUnique();

                    b.ToTable("UserSocialNetworks");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserUsedPassword", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("HashedPassword")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("TEXT")
                        .UseCollation("NOCASE");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<int>("UserId")
                        .HasColumnType("INTEGER");

                    b.ComplexProperty(typeof(Dictionary<string, object>), "Audit", "DntSite.Web.Features.UserProfiles.Entities.UserUsedPassword.Audit#AuditBase", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<DateTime>("CreatedAt")
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .HasColumnType("TEXT");
                        });

                    b.ComplexProperty(typeof(Dictionary<string, object>), "GuestUser", "DntSite.Web.Features.UserProfiles.Entities.UserUsedPassword.GuestUser#GuestUser", b1 =>
                        {
                            b1.IsRequired();

                            b1.Property<string>("Email")
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");

                            b1.Property<string>("HomeUrl")
                                .HasMaxLength(1000)
                                .HasColumnType("TEXT");

                            b1.Property<string>("UserName")
                                .IsRequired()
                                .HasMaxLength(450)
                                .HasColumnType("TEXT");
                        });

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("UserUsedPasswords");
                });

            modelBuilder.Entity("LearningPathLearningPathTag", b =>
                {
                    b.Property<int>("AssociatedEntitiesId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("TagsId")
                        .HasColumnType("INTEGER");

                    b.HasKey("AssociatedEntitiesId", "TagsId");

                    b.HasIndex("TagsId");

                    b.ToTable("LearningPathLearningPathTag");
                });

            modelBuilder.Entity("PrivateMessagePrivateMessageTag", b =>
                {
                    b.Property<int>("AssociatedEntitiesId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("TagsId")
                        .HasColumnType("INTEGER");

                    b.HasKey("AssociatedEntitiesId", "TagsId");

                    b.HasIndex("TagsId");

                    b.ToTable("PrivateMessagePrivateMessageTag");
                });

            modelBuilder.Entity("ProjectFaqProjectFaqTag", b =>
                {
                    b.Property<int>("AssociatedEntitiesId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("TagsId")
                        .HasColumnType("INTEGER");

                    b.HasKey("AssociatedEntitiesId", "TagsId");

                    b.HasIndex("TagsId");

                    b.ToTable("ProjectFaqProjectFaqTag");
                });

            modelBuilder.Entity("ProjectIssueProjectIssueTag", b =>
                {
                    b.Property<int>("AssociatedEntitiesId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("TagsId")
                        .HasColumnType("INTEGER");

                    b.HasKey("AssociatedEntitiesId", "TagsId");

                    b.HasIndex("TagsId");

                    b.ToTable("ProjectIssueProjectIssueTag");
                });

            modelBuilder.Entity("ProjectProjectTag", b =>
                {
                    b.Property<int>("AssociatedEntitiesId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("TagsId")
                        .HasColumnType("INTEGER");

                    b.HasKey("AssociatedEntitiesId", "TagsId");

                    b.HasIndex("TagsId");

                    b.ToTable("ProjectProjectTag");
                });

            modelBuilder.Entity("ProjectReleaseProjectReleaseTag", b =>
                {
                    b.Property<int>("AssociatedEntitiesId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("TagsId")
                        .HasColumnType("INTEGER");

                    b.HasKey("AssociatedEntitiesId", "TagsId");

                    b.HasIndex("TagsId");

                    b.ToTable("ProjectReleaseProjectReleaseTag");
                });

            modelBuilder.Entity("RoleUser", b =>
                {
                    b.Property<int>("AssociatedEntitiesId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("RolesId")
                        .HasColumnType("INTEGER");

                    b.HasKey("AssociatedEntitiesId", "RolesId");

                    b.HasIndex("RolesId");

                    b.ToTable("RoleUser");
                });

            modelBuilder.Entity("SearchItemSearchItemTag", b =>
                {
                    b.Property<int>("AssociatedEntitiesId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("TagsId")
                        .HasColumnType("INTEGER");

                    b.HasKey("AssociatedEntitiesId", "TagsId");

                    b.HasIndex("TagsId");

                    b.ToTable("SearchItemSearchItemTag");
                });

            modelBuilder.Entity("StackExchangeQuestionStackExchangeQuestionTag", b =>
                {
                    b.Property<int>("AssociatedEntitiesId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("TagsId")
                        .HasColumnType("INTEGER");

                    b.HasKey("AssociatedEntitiesId", "TagsId");

                    b.HasIndex("TagsId");

                    b.ToTable("StackExchangeQuestionStackExchangeQuestionTag");
                });

            modelBuilder.Entity("SurveyItemUser", b =>
                {
                    b.Property<int>("SurveyItemsId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("UsersId")
                        .HasColumnType("INTEGER");

                    b.HasKey("SurveyItemsId", "UsersId");

                    b.HasIndex("UsersId");

                    b.ToTable("SurveyItemUser");
                });

            modelBuilder.Entity("SurveySurveyTag", b =>
                {
                    b.Property<int>("AssociatedEntitiesId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("TagsId")
                        .HasColumnType("INTEGER");

                    b.HasKey("AssociatedEntitiesId", "TagsId");

                    b.HasIndex("TagsId");

                    b.ToTable("SurveySurveyTag");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("AdvertisementBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("AdvertisementBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementCommentBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("AdvertisementCommentBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("AdvertisementCommentBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("BacklogBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("BacklogBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogCommentBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("BacklogCommentBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("BacklogCommentBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseCommentBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseCommentBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseCommentBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseQuestionBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseQuestionBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionCommentBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseQuestionCommentBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseQuestionCommentBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseTopicBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseTopicBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicCommentBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseTopicCommentBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseTopicCommentBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("DailyNewsItemBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("DailyNewsItemBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemCommentBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.HasDiscriminator().HasValue("DailyNewsItemCommentBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("BlogPostBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("BlogPostBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostCommentBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("BlogPostCommentBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("BlogPostCommentBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("PrivateMessageBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("PrivateMessageBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageCommentBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("PrivateMessageCommentBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("PrivateMessageCommentBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectCommentBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectCommentBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectCommentBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectFaqBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectFaqBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqCommentBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectFaqCommentBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectFaqCommentBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectIssueBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectIssueBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueCommentBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectIssueCommentBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectIssueCommentBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectReleaseBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectReleaseBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseCommentBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectReleaseCommentBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectReleaseCommentBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("LearningPathBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("LearningPathBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathCommentBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("LearningPathCommentBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("LearningPathCommentBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("SearchItemBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("SearchItemBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemCommentBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("SearchItemCommentBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("SearchItemCommentBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("StackExchangeQuestionBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("StackExchangeQuestionBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionCommentBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("StackExchangeQuestionCommentBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("StackExchangeQuestionCommentBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("SurveyBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("SurveyBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyCommentBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("SurveyCommentBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("SurveyCommentBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserProfileBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("UserProfileBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("UserProfileBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserProfileCommentBookmark", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentBookmarkEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentBookmarks", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("UserProfileCommentBookmark_ParentId");
                        });

                    b.HasDiscriminator().HasValue("UserProfileCommentBookmark");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementCommentReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("AdvertisementCommentReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("AdvertisementCommentReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("AdvertisementReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("AdvertisementReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogCommentReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("BacklogCommentReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("BacklogCommentReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("BacklogReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("BacklogReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseCommentReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseCommentReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseCommentReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionCommentReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseQuestionCommentReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseQuestionCommentReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseQuestionReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseQuestionReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicCommentReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseTopicCommentReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseTopicCommentReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseTopicReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseTopicReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemCommentReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("DailyNewsItemCommentReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("DailyNewsItemCommentReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.HasDiscriminator().HasValue("DailyNewsItemReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostCommentReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("BlogPostCommentReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("BlogPostCommentReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("BlogPostReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("BlogPostReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageCommentReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("PrivateMessageCommentReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("PrivateMessageCommentReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("PrivateMessageReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("PrivateMessageReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectCommentReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectCommentReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectCommentReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqCommentReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectFaqCommentReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectFaqCommentReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectFaqReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectFaqReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueCommentReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectIssueCommentReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectIssueCommentReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectIssueReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectIssueReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseCommentReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectReleaseCommentReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectReleaseCommentReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectReleaseReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectReleaseReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathCommentReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("LearningPathCommentReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("LearningPathCommentReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("LearningPathReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("LearningPathReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemCommentReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("SearchItemCommentReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("SearchItemCommentReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("SearchItemReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("SearchItemReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionCommentReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("StackExchangeQuestionCommentReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("StackExchangeQuestionCommentReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("StackExchangeQuestionReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("StackExchangeQuestionReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyCommentReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("SurveyCommentReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("SurveyCommentReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("SurveyReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("SurveyReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserProfileCommentReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("UserProfileCommentReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("UserProfileCommentReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserProfileReaction", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentReactionEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ForUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentReactions", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("UserProfileReaction_ParentId");
                        });

                    b.HasDiscriminator().HasValue("UserProfileReaction");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementUserFile", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentUserFileEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentUserFiles", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("AdvertisementUserFile_ParentId");
                        });

                    b.HasDiscriminator().HasValue("AdvertisementUserFile");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogUserFile", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentUserFileEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentUserFiles", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("BacklogUserFile_ParentId");
                        });

                    b.HasDiscriminator().HasValue("BacklogUserFile");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionUserFile", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentUserFileEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentUserFiles", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseQuestionUserFile_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseQuestionUserFile");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicUserFile", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentUserFileEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentUserFiles", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseTopicUserFile_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseTopicUserFile");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseUserFile", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentUserFileEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentUserFiles", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseUserFile_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseUserFile");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemUserFile", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentUserFileEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.HasDiscriminator().HasValue("DailyNewsItemUserFile");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostUserFile", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentUserFileEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentUserFiles", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("BlogPostUserFile_ParentId");
                        });

                    b.HasDiscriminator().HasValue("BlogPostUserFile");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageUserFile", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentUserFileEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentUserFiles", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("PrivateMessageUserFile_ParentId");
                        });

                    b.HasDiscriminator().HasValue("PrivateMessageUserFile");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqUserFile", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentUserFileEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentUserFiles", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectFaqUserFile_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectFaqUserFile");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueUserFile", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentUserFileEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentUserFiles", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectIssueUserFile_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectIssueUserFile");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseUserFile", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentUserFileEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentUserFiles", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectReleaseUserFile_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectReleaseUserFile");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectUserFile", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentUserFileEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentUserFiles", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectUserFile_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectUserFile");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathUserFile", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentUserFileEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentUserFiles", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("LearningPathUserFile_ParentId");
                        });

                    b.HasDiscriminator().HasValue("LearningPathUserFile");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemUserFile", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentUserFileEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentUserFiles", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("SearchItemUserFile_ParentId");
                        });

                    b.HasDiscriminator().HasValue("SearchItemUserFile");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionUserFile", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentUserFileEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentUserFiles", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("StackExchangeQuestionUserFile_ParentId");
                        });

                    b.HasDiscriminator().HasValue("StackExchangeQuestionUserFile");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyUserFile", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentUserFileEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentUserFiles", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("SurveyUserFile_ParentId");
                        });

                    b.HasDiscriminator().HasValue("SurveyUserFile");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserProfileUserFile", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentUserFileEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentUserFiles", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("UserProfileUserFile_ParentId");
                        });

                    b.HasDiscriminator().HasValue("UserProfileUserFile");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementCommentVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("AdvertisementCommentVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("AdvertisementCommentVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementUserFileVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("AdvertisementUserFileVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("AdvertisementUserFileVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("AdvertisementVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("AdvertisementVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogCommentVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("BacklogCommentVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("BacklogCommentVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogUserFileVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("BacklogUserFileVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("BacklogUserFileVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("BacklogVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("BacklogVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseCommentVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseCommentVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseCommentVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionCommentVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseQuestionCommentVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseQuestionCommentVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionUserFileVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseQuestionUserFileVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseQuestionUserFileVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseQuestionVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseQuestionVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicCommentVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseTopicCommentVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseTopicCommentVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicUserFileVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseTopicUserFileVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseTopicUserFileVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseTopicVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseTopicVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseUserFileVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseUserFileVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseUserFileVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("CourseVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("CourseVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemCommentVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("DailyNewsItemCommentVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("DailyNewsItemCommentVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemUserFileVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("DailyNewsItemUserFileVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("DailyNewsItemUserFileVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.HasDiscriminator().HasValue("DailyNewsItemVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostCommentVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("BlogPostCommentVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("BlogPostCommentVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostUserFileVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("BlogPostUserFileVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("BlogPostUserFileVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("BlogPostVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("BlogPostVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageCommentVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("PrivateMessageCommentVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("PrivateMessageCommentVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageUserFileVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("PrivateMessageUserFileVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("PrivateMessageUserFileVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("PrivateMessageVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("PrivateMessageVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectCommentVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectCommentVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectCommentVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqCommentVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectFaqCommentVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectFaqCommentVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqUserFileVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectFaqUserFileVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectFaqUserFileVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectFaqVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectFaqVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueCommentVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectIssueCommentVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectIssueCommentVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueUserFileVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectIssueUserFileVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectIssueUserFileVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectIssueVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectIssueVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseCommentVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectReleaseCommentVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectReleaseCommentVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseUserFileVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectReleaseUserFileVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectReleaseUserFileVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectReleaseVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectReleaseVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectUserFileVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectUserFileVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectUserFileVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("ProjectVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("ProjectVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathCommentVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("LearningPathCommentVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("LearningPathCommentVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathUserFileVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("LearningPathUserFileVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("LearningPathUserFileVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("LearningPathVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("LearningPathVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemCommentVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("SearchItemCommentVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("SearchItemCommentVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemUserFileVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("SearchItemUserFileVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("SearchItemUserFileVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("SearchItemVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("SearchItemVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionCommentVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("StackExchangeQuestionCommentVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("StackExchangeQuestionCommentVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionUserFileVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("StackExchangeQuestionUserFileVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("StackExchangeQuestionUserFileVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("StackExchangeQuestionVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("StackExchangeQuestionVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyCommentVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("SurveyCommentVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("SurveyCommentVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyUserFileVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("SurveyUserFileVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("SurveyUserFileVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("SurveyVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("SurveyVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserProfileCommentVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("UserProfileCommentVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("UserProfileCommentVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserProfileUserFileVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("UserProfileUserFileVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("UserProfileUserFileVisitor");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserProfileVisitor", b =>
                {
                    b.HasBaseType("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.ParentVisitorEntity");

                    b.Property<int>("ParentId")
                        .HasColumnType("INTEGER");

                    b.HasIndex("ParentId");

                    b.HasIndex("UserId");

                    b.ToTable("ParentVisitors", t =>
                        {
                            t.Property("ParentId")
                                .HasColumnName("UserProfileVisitor_ParentId");
                        });

                    b.HasDiscriminator().HasValue("UserProfileVisitor");
                });

            modelBuilder.Entity("AdvertisementAdvertisementTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.Advertisements.Entities.Advertisement", null)
                        .WithMany()
                        .HasForeignKey("AssociatedEntitiesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Advertisements.Entities.AdvertisementTag", null)
                        .WithMany()
                        .HasForeignKey("TagsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("BacklogBacklogTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.Backlogs.Entities.Backlog", null)
                        .WithMany()
                        .HasForeignKey("AssociatedEntitiesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Backlogs.Entities.BacklogTag", null)
                        .WithMany()
                        .HasForeignKey("TagsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("BlogPostBlogPostTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.Posts.Entities.BlogPost", null)
                        .WithMany()
                        .HasForeignKey("AssociatedEntitiesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Posts.Entities.BlogPostTag", null)
                        .WithMany()
                        .HasForeignKey("TagsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("CourseCourseTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.Course", null)
                        .WithMany()
                        .HasForeignKey("AssociatedEntitiesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseTag", null)
                        .WithMany()
                        .HasForeignKey("TagsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("CourseQuestionCourseQuestionTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseQuestion", null)
                        .WithMany()
                        .HasForeignKey("AssociatedEntitiesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseQuestionTag", null)
                        .WithMany()
                        .HasForeignKey("TagsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("CourseTopicCourseTopicTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseTopic", null)
                        .WithMany()
                        .HasForeignKey("AssociatedEntitiesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseTopicTag", null)
                        .WithMany()
                        .HasForeignKey("TagsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("CourseUser", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", null)
                        .WithMany()
                        .HasForeignKey("CourseAllowedUsersId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Courses.Entities.Course", null)
                        .WithMany()
                        .HasForeignKey("UserAllowedCoursesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("DailyNewsItemDailyNewsItemTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.News.Entities.DailyNewsItem", null)
                        .WithMany()
                        .HasForeignKey("AssociatedEntitiesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.News.Entities.DailyNewsItemTag", null)
                        .WithMany()
                        .HasForeignKey("TagsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.Advertisement", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("Advertisements")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("AdvertisementId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("AdvertisementId", "__synthesizedOrdinal");

                            b1.ToTable("Advertisements");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("AdvertisementId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionAdvertisementId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionAdvertisementId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("Advertisements");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionAdvertisementId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementComment", b =>
                {
                    b.HasOne("DntSite.Web.Features.Advertisements.Entities.Advertisement", "Parent")
                        .WithMany("Comments")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Advertisements.Entities.AdvertisementComment", "Reply")
                        .WithMany("Children")
                        .HasForeignKey("ReplyId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("AdvertisementComments")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("AdvertisementCommentId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("AdvertisementCommentId", "__synthesizedOrdinal");

                            b1.ToTable("AdvertisementComments");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("AdvertisementCommentId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionAdvertisementCommentId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionAdvertisementCommentId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("AdvertisementComments");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionAdvertisementCommentId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Parent");

                    b.Navigation("Reply");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("AdvertisementTags")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("AdvertisementTagId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("AdvertisementTagId", "__synthesizedOrdinal");

                            b1.ToTable("AdvertisementTags");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("AdvertisementTagId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionAdvertisementTagId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionAdvertisementTagId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("AdvertisementTags");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionAdvertisementTagId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.AppConfigs.Entities.AppDataProtectionKey", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("AppDataProtectionKeys")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("AppDataProtectionKeyId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("AppDataProtectionKeyId", "__synthesizedOrdinal");

                            b1.ToTable("AppDataProtectionKeys");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("AppDataProtectionKeyId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionAppDataProtectionKeyId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionAppDataProtectionKeyId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("AppDataProtectionKeys");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionAppDataProtectionKeyId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.AppConfigs.Entities.AppLogItem", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("AppLogItems")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("AppLogItemId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("AppLogItemId", "__synthesizedOrdinal");

                            b1.ToTable("AppLogItems");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("AppLogItemId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionAppLogItemId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionAppLogItemId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("AppLogItems");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionAppLogItemId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.AppConfigs.Entities.AppSetting", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("AppSettings")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("AppSettingId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("AppSettingId", "__synthesizedOrdinal");

                            b1.ToTable("AppSettings");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("AppSettingId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionAppSettingId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionAppSettingId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("AppSettings");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionAppSettingId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.Backlog", b =>
                {
                    b.HasOne("DntSite.Web.Features.Posts.Entities.BlogPost", "ConvertedBlogPost")
                        .WithMany("Backlogs")
                        .HasForeignKey("ConvertedBlogPostId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "DoneByUser")
                        .WithMany("DoneBacklogs")
                        .HasForeignKey("DoneByUserId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("Backlogs")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("BacklogId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("BacklogId", "__synthesizedOrdinal");

                            b1.ToTable("Backlogs");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("BacklogId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionBacklogId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionBacklogId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("Backlogs");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionBacklogId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("ConvertedBlogPost");

                    b.Navigation("DoneByUser");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogComment", b =>
                {
                    b.HasOne("DntSite.Web.Features.Backlogs.Entities.Backlog", "Parent")
                        .WithMany("Comments")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Backlogs.Entities.BacklogComment", "Reply")
                        .WithMany("Children")
                        .HasForeignKey("ReplyId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BacklogComments")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("BacklogCommentId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("BacklogCommentId", "__synthesizedOrdinal");

                            b1.ToTable("BacklogComments");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("BacklogCommentId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionBacklogCommentId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionBacklogCommentId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("BacklogComments");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionBacklogCommentId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Parent");

                    b.Navigation("Reply");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BacklogTags")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("BacklogTagId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("BacklogTagId", "__synthesizedOrdinal");

                            b1.ToTable("BacklogTags");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("BacklogTagId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionBacklogTagId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionBacklogTagId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("BacklogTags");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionBacklogTagId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.Course", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("Courses")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("CourseId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("CourseId", "__synthesizedOrdinal");

                            b1.ToTable("Courses");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("CourseId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionCourseId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionCourseId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("Courses");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionCourseId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseComment", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.Course", "Parent")
                        .WithMany("Comments")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseComment", "Reply")
                        .WithMany("Children")
                        .HasForeignKey("ReplyId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseComments")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("CourseCommentId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("CourseCommentId", "__synthesizedOrdinal");

                            b1.ToTable("CourseComments");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("CourseCommentId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionCourseCommentId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionCourseCommentId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("CourseComments");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionCourseCommentId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Parent");

                    b.Navigation("Reply");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestion", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.Course", "Course")
                        .WithMany("CourseQuestions")
                        .HasForeignKey("CourseId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseQuestions")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("CourseQuestionId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("CourseQuestionId", "__synthesizedOrdinal");

                            b1.ToTable("CourseQuestions");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("CourseQuestionId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionCourseQuestionId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionCourseQuestionId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("CourseQuestions");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionCourseQuestionId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Course");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionComment", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseQuestion", "Parent")
                        .WithMany("Comments")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseQuestionComment", "Reply")
                        .WithMany("Children")
                        .HasForeignKey("ReplyId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseQuestionComments")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("CourseQuestionCommentId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("CourseQuestionCommentId", "__synthesizedOrdinal");

                            b1.ToTable("CourseQuestionComments");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("CourseQuestionCommentId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionCourseQuestionCommentId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionCourseQuestionCommentId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("CourseQuestionComments");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionCourseQuestionCommentId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Parent");

                    b.Navigation("Reply");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseQuestionTags")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("CourseQuestionTagId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("CourseQuestionTagId", "__synthesizedOrdinal");

                            b1.ToTable("CourseQuestionTags");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("CourseQuestionTagId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionCourseQuestionTagId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionCourseQuestionTagId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("CourseQuestionTags");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionCourseQuestionTagId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseTags")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("CourseTagId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("CourseTagId", "__synthesizedOrdinal");

                            b1.ToTable("CourseTags");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("CourseTagId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionCourseTagId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionCourseTagId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("CourseTags");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionCourseTagId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopic", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.Course", "Course")
                        .WithMany("CourseTopics")
                        .HasForeignKey("CourseId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseTopics")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("CourseTopicId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("CourseTopicId", "__synthesizedOrdinal");

                            b1.ToTable("CourseTopics");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("CourseTopicId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionCourseTopicId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionCourseTopicId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("CourseTopics");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionCourseTopicId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Course");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicComment", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseTopic", "Parent")
                        .WithMany("Comments")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseTopicComment", "Reply")
                        .WithMany("Children")
                        .HasForeignKey("ReplyId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseTopicComments")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("CourseTopicCommentId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("CourseTopicCommentId", "__synthesizedOrdinal");

                            b1.ToTable("CourseTopicComments");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("CourseTopicCommentId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionCourseTopicCommentId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionCourseTopicCommentId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("CourseTopicComments");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionCourseTopicCommentId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Parent");

                    b.Navigation("Reply");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseTopicTags")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("CourseTopicTagId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("CourseTopicTagId", "__synthesizedOrdinal");

                            b1.ToTable("CourseTopicTags");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("CourseTopicTagId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionCourseTopicTagId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionCourseTopicTagId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("CourseTopicTags");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionCourseTopicTagId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItem", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("DailyNewsItems")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("DailyNewsItemId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("DailyNewsItemId", "__synthesizedOrdinal");

                            b1.ToTable("DailyNewsItems");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("DailyNewsItemId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionDailyNewsItemId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionDailyNewsItemId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("DailyNewsItems");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionDailyNewsItemId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemComment", b =>
                {
                    b.HasOne("DntSite.Web.Features.News.Entities.DailyNewsItem", "Parent")
                        .WithMany("Comments")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.News.Entities.DailyNewsItemComment", "Reply")
                        .WithMany("Children")
                        .HasForeignKey("ReplyId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("DailyNewsItemComments")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("DailyNewsItemCommentId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("DailyNewsItemCommentId", "__synthesizedOrdinal");

                            b1.ToTable("DailyNewsItemComments");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("DailyNewsItemCommentId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionDailyNewsItemCommentId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionDailyNewsItemCommentId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("DailyNewsItemComments");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionDailyNewsItemCommentId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Parent");

                    b.Navigation("Reply");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("DailyNewsItemTags")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("DailyNewsItemTagId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("DailyNewsItemTagId", "__synthesizedOrdinal");

                            b1.ToTable("DailyNewsItemTags");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("DailyNewsItemTagId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionDailyNewsItemTagId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionDailyNewsItemTagId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("DailyNewsItemTags");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionDailyNewsItemTagId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPost", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BlogPosts")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("BlogPostId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("BlogPostId", "__synthesizedOrdinal");

                            b1.ToTable("BlogPosts");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("BlogPostId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionBlogPostId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionBlogPostId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("BlogPosts");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionBlogPostId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostComment", b =>
                {
                    b.HasOne("DntSite.Web.Features.Posts.Entities.BlogPost", "Parent")
                        .WithMany("Comments")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Posts.Entities.BlogPostComment", "Reply")
                        .WithMany("Children")
                        .HasForeignKey("ReplyId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BlogPostComments")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("BlogPostCommentId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("BlogPostCommentId", "__synthesizedOrdinal");

                            b1.ToTable("BlogPostComments");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("BlogPostCommentId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionBlogPostCommentId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionBlogPostCommentId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("BlogPostComments");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionBlogPostCommentId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Parent");

                    b.Navigation("Reply");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostDraft", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BlogPostDrafts")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("BlogPostDraftId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("BlogPostDraftId", "__synthesizedOrdinal");

                            b1.ToTable("BlogPostDrafts");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("BlogPostDraftId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionBlogPostDraftId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionBlogPostDraftId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("BlogPostDrafts");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionBlogPostDraftId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BlogPostTags")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("BlogPostTagId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("BlogPostTagId", "__synthesizedOrdinal");

                            b1.ToTable("BlogPostTags");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("BlogPostTagId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionBlogPostTagId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionBlogPostTagId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("BlogPostTags");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionBlogPostTagId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.MassEmail", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("MassEmails")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("MassEmailId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("MassEmailId", "__synthesizedOrdinal");

                            b1.ToTable("MassEmails");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("MassEmailId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionMassEmailId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionMassEmailId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("MassEmails");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionMassEmailId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessage", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ToUser")
                        .WithMany("ReceivedPrivateMessages")
                        .HasForeignKey("ToUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SentPrivateMessages")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("PrivateMessageId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("PrivateMessageId", "__synthesizedOrdinal");

                            b1.ToTable("PrivateMessages");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("PrivateMessageId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionPrivateMessageId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionPrivateMessageId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("PrivateMessages");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionPrivateMessageId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("ToUser");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageComment", b =>
                {
                    b.HasOne("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessage", "Parent")
                        .WithMany("Comments")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageComment", "Reply")
                        .WithMany("Children")
                        .HasForeignKey("ReplyId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("PrivateMessageComments")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("PrivateMessageCommentId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("PrivateMessageCommentId", "__synthesizedOrdinal");

                            b1.ToTable("PrivateMessageComments");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("PrivateMessageCommentId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionPrivateMessageCommentId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionPrivateMessageCommentId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("PrivateMessageComments");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionPrivateMessageCommentId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Parent");

                    b.Navigation("Reply");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("PrivateMessageTags")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("PrivateMessageTagId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("PrivateMessageTagId", "__synthesizedOrdinal");

                            b1.ToTable("PrivateMessageTags");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("PrivateMessageTagId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionPrivateMessageTagId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionPrivateMessageTagId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("PrivateMessageTags");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionPrivateMessageTagId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.Project", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("Projects")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("ProjectId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("ProjectId", "__synthesizedOrdinal");

                            b1.ToTable("Projects");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("ProjectId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionProjectId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionProjectId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("Projects");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionProjectId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectComment", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.Project", "Parent")
                        .WithMany("Comments")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectComment", "Reply")
                        .WithMany("Children")
                        .HasForeignKey("ReplyId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectComments")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("ProjectCommentId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("ProjectCommentId", "__synthesizedOrdinal");

                            b1.ToTable("ProjectComments");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("ProjectCommentId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionProjectCommentId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionProjectCommentId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("ProjectComments");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionProjectCommentId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Parent");

                    b.Navigation("Reply");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaq", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.Project", "Project")
                        .WithMany("ProjectFaqs")
                        .HasForeignKey("ProjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectFaqs")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("ProjectFaqId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("ProjectFaqId", "__synthesizedOrdinal");

                            b1.ToTable("ProjectFaqs");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("ProjectFaqId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionProjectFaqId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionProjectFaqId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("ProjectFaqs");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionProjectFaqId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Project");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqComment", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectFaq", "Parent")
                        .WithMany("Comments")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectFaqComment", "Reply")
                        .WithMany("Children")
                        .HasForeignKey("ReplyId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectFaqComments")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("ProjectFaqCommentId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("ProjectFaqCommentId", "__synthesizedOrdinal");

                            b1.ToTable("ProjectFaqComments");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("ProjectFaqCommentId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionProjectFaqCommentId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionProjectFaqCommentId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("ProjectFaqComments");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionProjectFaqCommentId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Parent");

                    b.Navigation("Reply");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectFaqTags")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("ProjectFaqTagId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("ProjectFaqTagId", "__synthesizedOrdinal");

                            b1.ToTable("ProjectFaqTags");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("ProjectFaqTagId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionProjectFaqTagId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionProjectFaqTagId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("ProjectFaqTags");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionProjectFaqTagId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssue", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectIssuePriority", "IssuePriority")
                        .WithMany("AssociatedEntities")
                        .HasForeignKey("IssuePriorityId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectIssueStatus", "IssueStatus")
                        .WithMany("AssociatedEntities")
                        .HasForeignKey("IssueStatusId");

                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectIssueType", "IssueType")
                        .WithMany("AssociatedEntities")
                        .HasForeignKey("IssueTypeId");

                    b.HasOne("DntSite.Web.Features.Projects.Entities.Project", "Project")
                        .WithMany("ProjectIssues")
                        .HasForeignKey("ProjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectIssues")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("ProjectIssueId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("ProjectIssueId", "__synthesizedOrdinal");

                            b1.ToTable("ProjectIssues");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("ProjectIssueId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionProjectIssueId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionProjectIssueId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("ProjectIssues");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionProjectIssueId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("IssuePriority");

                    b.Navigation("IssueStatus");

                    b.Navigation("IssueType");

                    b.Navigation("Project");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueComment", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectIssue", "Parent")
                        .WithMany("Comments")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectIssueComment", "Reply")
                        .WithMany("Children")
                        .HasForeignKey("ReplyId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectIssueComments")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("ProjectIssueCommentId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("ProjectIssueCommentId", "__synthesizedOrdinal");

                            b1.ToTable("ProjectIssueComments");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("ProjectIssueCommentId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionProjectIssueCommentId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionProjectIssueCommentId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("ProjectIssueComments");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionProjectIssueCommentId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Parent");

                    b.Navigation("Reply");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssuePriority", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectIssuePriorities")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("ProjectIssuePriorityId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("ProjectIssuePriorityId", "__synthesizedOrdinal");

                            b1.ToTable("ProjectIssuePriorities");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("ProjectIssuePriorityId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionProjectIssuePriorityId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionProjectIssuePriorityId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("ProjectIssuePriorities");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionProjectIssuePriorityId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueStatus", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectIssueStatus")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("ProjectIssueStatusId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("ProjectIssueStatusId", "__synthesizedOrdinal");

                            b1.ToTable("ProjectIssueStatuses");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("ProjectIssueStatusId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionProjectIssueStatusId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionProjectIssueStatusId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("ProjectIssueStatuses");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionProjectIssueStatusId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectIssueTags")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("ProjectIssueTagId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("ProjectIssueTagId", "__synthesizedOrdinal");

                            b1.ToTable("ProjectIssueTags");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("ProjectIssueTagId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionProjectIssueTagId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionProjectIssueTagId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("ProjectIssueTags");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionProjectIssueTagId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueType", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectIssueTypes")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("ProjectIssueTypeId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("ProjectIssueTypeId", "__synthesizedOrdinal");

                            b1.ToTable("ProjectIssueTypes");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("ProjectIssueTypeId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionProjectIssueTypeId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionProjectIssueTypeId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("ProjectIssueTypes");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionProjectIssueTypeId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectRelease", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.Project", "Project")
                        .WithMany("ProjectReleases")
                        .HasForeignKey("ProjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectReleases")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("ProjectReleaseId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("ProjectReleaseId", "__synthesizedOrdinal");

                            b1.ToTable("ProjectReleases");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("ProjectReleaseId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionProjectReleaseId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionProjectReleaseId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("ProjectReleases");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionProjectReleaseId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Project");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseComment", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectRelease", "Parent")
                        .WithMany("Comments")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectReleaseComment", "Reply")
                        .WithMany("Children")
                        .HasForeignKey("ReplyId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectReleaseComments")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("ProjectReleaseCommentId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("ProjectReleaseCommentId", "__synthesizedOrdinal");

                            b1.ToTable("ProjectReleaseComments");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("ProjectReleaseCommentId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionProjectReleaseCommentId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionProjectReleaseCommentId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("ProjectReleaseComments");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionProjectReleaseCommentId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Parent");

                    b.Navigation("Reply");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectReleaseTags")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("ProjectReleaseTagId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("ProjectReleaseTagId", "__synthesizedOrdinal");

                            b1.ToTable("ProjectReleaseTags");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("ProjectReleaseTagId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionProjectReleaseTagId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionProjectReleaseTagId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("ProjectReleaseTags");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionProjectReleaseTagId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectTags")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("ProjectTagId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("ProjectTagId", "__synthesizedOrdinal");

                            b1.ToTable("ProjectTags");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("ProjectTagId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionProjectTagId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionProjectTagId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("ProjectTags");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionProjectTagId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPath", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("LearningPaths")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("LearningPathId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("LearningPathId", "__synthesizedOrdinal");

                            b1.ToTable("LearningPaths");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("LearningPathId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionLearningPathId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionLearningPathId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("LearningPaths");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionLearningPathId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathComment", b =>
                {
                    b.HasOne("DntSite.Web.Features.RoadMaps.Entities.LearningPath", "Parent")
                        .WithMany("Comments")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.RoadMaps.Entities.LearningPathComment", "Reply")
                        .WithMany("Children")
                        .HasForeignKey("ReplyId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("LearningPathComments")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("LearningPathCommentId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("LearningPathCommentId", "__synthesizedOrdinal");

                            b1.ToTable("LearningPathComments");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("LearningPathCommentId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionLearningPathCommentId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionLearningPathCommentId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("LearningPathComments");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionLearningPathCommentId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Parent");

                    b.Navigation("Reply");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("LearningPathTags")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("LearningPathTagId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("LearningPathTagId", "__synthesizedOrdinal");

                            b1.ToTable("LearningPathTags");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("LearningPathTagId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionLearningPathTagId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionLearningPathTagId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("LearningPathTags");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionLearningPathTagId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItem", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SearchItems")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("SearchItemId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("SearchItemId", "__synthesizedOrdinal");

                            b1.ToTable("SearchItems");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("SearchItemId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionSearchItemId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionSearchItemId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("SearchItems");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionSearchItemId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemComment", b =>
                {
                    b.HasOne("DntSite.Web.Features.Searches.Entities.SearchItem", "Parent")
                        .WithMany("Comments")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Searches.Entities.SearchItemComment", "Reply")
                        .WithMany("Children")
                        .HasForeignKey("ReplyId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SearchItemComments")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("SearchItemCommentId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("SearchItemCommentId", "__synthesizedOrdinal");

                            b1.ToTable("SearchItemComments");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("SearchItemCommentId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionSearchItemCommentId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionSearchItemCommentId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("SearchItemComments");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionSearchItemCommentId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Parent");

                    b.Navigation("Reply");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SearchItemTags")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("SearchItemTagId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("SearchItemTagId", "__synthesizedOrdinal");

                            b1.ToTable("SearchItemTags");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("SearchItemTagId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionSearchItemTagId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionSearchItemTagId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("SearchItemTags");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionSearchItemTagId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.SideBar.Entities.CustomSidebar", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CustomSidebars")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("CustomSidebarId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("CustomSidebarId", "__synthesizedOrdinal");

                            b1.ToTable("CustomSidebars");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("CustomSidebarId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionCustomSidebarId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionCustomSidebarId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("CustomSidebars");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionCustomSidebarId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestion", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("StackExchangeQuestions")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("StackExchangeQuestionId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("StackExchangeQuestionId", "__synthesizedOrdinal");

                            b1.ToTable("StackExchangeQuestions");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("StackExchangeQuestionId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionStackExchangeQuestionId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionStackExchangeQuestionId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("StackExchangeQuestions");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionStackExchangeQuestionId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionComment", b =>
                {
                    b.HasOne("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestion", "Parent")
                        .WithMany("Comments")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionComment", "Reply")
                        .WithMany("Children")
                        .HasForeignKey("ReplyId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("StackExchangeQuestionComments")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("StackExchangeQuestionCommentId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("StackExchangeQuestionCommentId", "__synthesizedOrdinal");

                            b1.ToTable("StackExchangeQuestionComments");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("StackExchangeQuestionCommentId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionStackExchangeQuestionCommentId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionStackExchangeQuestionCommentId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("StackExchangeQuestionComments");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionStackExchangeQuestionCommentId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Parent");

                    b.Navigation("Reply");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("StackExchangeQuestionTags")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("StackExchangeQuestionTagId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("StackExchangeQuestionTagId", "__synthesizedOrdinal");

                            b1.ToTable("StackExchangeQuestionTags");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("StackExchangeQuestionTagId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionStackExchangeQuestionTagId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionStackExchangeQuestionTagId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("StackExchangeQuestionTags");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionStackExchangeQuestionTagId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Stats.Entities.SiteReferrer", b =>
                {
                    b.HasOne("DntSite.Web.Features.Stats.Entities.SiteUrl", "DestinationSiteUrl")
                        .WithMany("SiteReferrers")
                        .HasForeignKey("DestinationSiteUrlId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SiteReferrers")
                        .HasForeignKey("UserId");

                    b.Navigation("DestinationSiteUrl");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Stats.Entities.SiteUrl", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SiteUrls")
                        .HasForeignKey("UserId");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.Survey", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("Surveys")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("SurveyId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("SurveyId", "__synthesizedOrdinal");

                            b1.ToTable("Surveys");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("SurveyId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionSurveyId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionSurveyId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("Surveys");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionSurveyId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyComment", b =>
                {
                    b.HasOne("DntSite.Web.Features.Surveys.Entities.Survey", "Parent")
                        .WithMany("Comments")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Surveys.Entities.SurveyComment", "Reply")
                        .WithMany("Children")
                        .HasForeignKey("ReplyId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SurveyComments")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("SurveyCommentId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("SurveyCommentId", "__synthesizedOrdinal");

                            b1.ToTable("SurveyComments");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("SurveyCommentId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionSurveyCommentId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionSurveyCommentId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("SurveyComments");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionSurveyCommentId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Parent");

                    b.Navigation("Reply");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyItem", b =>
                {
                    b.HasOne("DntSite.Web.Features.Surveys.Entities.Survey", "Survey")
                        .WithMany("SurveyItems")
                        .HasForeignKey("SurveyId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("SurveyItemId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("SurveyItemId", "__synthesizedOrdinal");

                            b1.ToTable("SurveyItems");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("SurveyItemId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionSurveyItemId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionSurveyItemId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("SurveyItems");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionSurveyItemId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Survey");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SurveyTags")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("SurveyTagId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("SurveyTagId", "__synthesizedOrdinal");

                            b1.ToTable("SurveyTags");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("SurveyTagId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionSurveyTagId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionSurveyTagId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("SurveyTags");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionSurveyTagId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.Role", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CreatedRoles")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("RoleId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("RoleId", "__synthesizedOrdinal");

                            b1.ToTable("Roles");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("RoleId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionRoleId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionRoleId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("Roles");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionRoleId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.User", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("Users")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("UserId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("UserId", "__synthesizedOrdinal");

                            b1.ToTable("Users");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("UserId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionUserId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionUserId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("Users");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionUserId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserProfileComment", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "Parent")
                        .WithMany("Comments")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.UserProfileComment", "Reply")
                        .WithMany("Children")
                        .HasForeignKey("ReplyId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("UserComments")
                        .HasForeignKey("UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("UserProfileCommentId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("UserProfileCommentId", "__synthesizedOrdinal");

                            b1.ToTable("UserProfileComments");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("UserProfileCommentId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionUserProfileCommentId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionUserProfileCommentId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("UserProfileComments");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionUserProfileCommentId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("Parent");

                    b.Navigation("Reply");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserSocialNetwork", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithOne("UserSocialNetwork")
                        .HasForeignKey("DntSite.Web.Features.UserProfiles.Entities.UserSocialNetwork", "UserId");

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("UserSocialNetworkId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("UserSocialNetworkId", "__synthesizedOrdinal");

                            b1.ToTable("UserSocialNetworks");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("UserSocialNetworkId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionUserSocialNetworkId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionUserSocialNetworkId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("UserSocialNetworks");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionUserSocialNetworkId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserUsedPassword", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("UserUsedPasswords")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AuditAction", "AuditActions", b1 =>
                        {
                            b1.Property<int>("UserUsedPasswordId");

                            b1.Property<int>("__synthesizedOrdinal")
                                .ValueGeneratedOnAddOrUpdate();

                            b1.Property<int>("Action");

                            b1.Property<DateTime>("CreatedAt");

                            b1.Property<string>("CreatedAtPersian")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserAgent")
                                .IsRequired()
                                .HasMaxLength(1000)
                                .UseCollation("NOCASE");

                            b1.Property<string>("CreatedByUserIp")
                                .IsRequired()
                                .HasMaxLength(50)
                                .UseCollation("NOCASE");

                            b1.Property<int?>("IdentityName");

                            b1.HasKey("UserUsedPasswordId", "__synthesizedOrdinal");

                            b1.ToTable("UserUsedPasswords");

                            b1.ToJson("AuditActions");

                            b1.WithOwner()
                                .HasForeignKey("UserUsedPasswordId");

                            b1.OwnsMany("DntSite.Web.Features.Persistence.BaseDomainEntities.Entities.AffectedColumn", "AffectedColumns", b2 =>
                                {
                                    b2.Property<int>("AuditActionUserUsedPasswordId");

                                    b2.Property<int>("AuditAction__synthesizedOrdinal");

                                    b2.Property<int>("__synthesizedOrdinal")
                                        .ValueGeneratedOnAddOrUpdate();

                                    b2.Property<string>("Name")
                                        .IsRequired()
                                        .UseCollation("NOCASE");

                                    b2.Property<string>("Value")
                                        .UseCollation("NOCASE");

                                    b2.HasKey("AuditActionUserUsedPasswordId", "AuditAction__synthesizedOrdinal", "__synthesizedOrdinal");

                                    b2.ToTable("UserUsedPasswords");

                                    b2.WithOwner()
                                        .HasForeignKey("AuditActionUserUsedPasswordId", "AuditAction__synthesizedOrdinal");
                                });

                            b1.Navigation("AffectedColumns");
                        });

                    b.Navigation("AuditActions");

                    b.Navigation("User");
                });

            modelBuilder.Entity("LearningPathLearningPathTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.RoadMaps.Entities.LearningPath", null)
                        .WithMany()
                        .HasForeignKey("AssociatedEntitiesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.RoadMaps.Entities.LearningPathTag", null)
                        .WithMany()
                        .HasForeignKey("TagsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("PrivateMessagePrivateMessageTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessage", null)
                        .WithMany()
                        .HasForeignKey("AssociatedEntitiesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageTag", null)
                        .WithMany()
                        .HasForeignKey("TagsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("ProjectFaqProjectFaqTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectFaq", null)
                        .WithMany()
                        .HasForeignKey("AssociatedEntitiesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectFaqTag", null)
                        .WithMany()
                        .HasForeignKey("TagsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("ProjectIssueProjectIssueTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectIssue", null)
                        .WithMany()
                        .HasForeignKey("AssociatedEntitiesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectIssueTag", null)
                        .WithMany()
                        .HasForeignKey("TagsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("ProjectProjectTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.Project", null)
                        .WithMany()
                        .HasForeignKey("AssociatedEntitiesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectTag", null)
                        .WithMany()
                        .HasForeignKey("TagsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("ProjectReleaseProjectReleaseTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectRelease", null)
                        .WithMany()
                        .HasForeignKey("AssociatedEntitiesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectReleaseTag", null)
                        .WithMany()
                        .HasForeignKey("TagsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("RoleUser", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", null)
                        .WithMany()
                        .HasForeignKey("AssociatedEntitiesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.Role", null)
                        .WithMany()
                        .HasForeignKey("RolesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("SearchItemSearchItemTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.Searches.Entities.SearchItem", null)
                        .WithMany()
                        .HasForeignKey("AssociatedEntitiesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Searches.Entities.SearchItemTag", null)
                        .WithMany()
                        .HasForeignKey("TagsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("StackExchangeQuestionStackExchangeQuestionTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestion", null)
                        .WithMany()
                        .HasForeignKey("AssociatedEntitiesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionTag", null)
                        .WithMany()
                        .HasForeignKey("TagsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("SurveyItemUser", b =>
                {
                    b.HasOne("DntSite.Web.Features.Surveys.Entities.SurveyItem", null)
                        .WithMany()
                        .HasForeignKey("SurveyItemsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", null)
                        .WithMany()
                        .HasForeignKey("UsersId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("SurveySurveyTag", b =>
                {
                    b.HasOne("DntSite.Web.Features.Surveys.Entities.Survey", null)
                        .WithMany()
                        .HasForeignKey("AssociatedEntitiesId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.Surveys.Entities.SurveyTag", null)
                        .WithMany()
                        .HasForeignKey("TagsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Advertisements.Entities.Advertisement", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("AdvertisementBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementCommentBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Advertisements.Entities.AdvertisementComment", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("AdvertisementCommentBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Backlogs.Entities.Backlog", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BacklogBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogCommentBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Backlogs.Entities.BacklogComment", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BacklogCommentBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.Course", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseCommentBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseComment", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseCommentBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseQuestion", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseQuestionBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionCommentBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseQuestionComment", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseQuestionCommentBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseTopic", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseTopicBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicCommentBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseTopicComment", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseTopicCommentBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.News.Entities.DailyNewsItem", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("DailyNewsItemBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemCommentBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.News.Entities.DailyNewsItemComment", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("DailyNewsItemCommentBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Posts.Entities.BlogPost", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BlogPostBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostCommentBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Posts.Entities.BlogPostComment", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BlogPostCommentBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessage", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("PrivateMessageBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageCommentBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageComment", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("PrivateMessageCommentBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.Project", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectCommentBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectComment", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectCommentBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectFaq", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectFaqBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqCommentBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectFaqComment", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectFaqCommentBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectIssue", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectIssueBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueCommentBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectIssueComment", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectIssueCommentBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectRelease", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectReleaseBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseCommentBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectReleaseComment", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectReleaseCommentBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.RoadMaps.Entities.LearningPath", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("LearningPathBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathCommentBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.RoadMaps.Entities.LearningPathComment", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("LearningPathCommentBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Searches.Entities.SearchItem", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SearchItemBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemCommentBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Searches.Entities.SearchItemComment", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SearchItemCommentBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestion", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("StackExchangeQuestionBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionCommentBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionComment", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("StackExchangeQuestionCommentBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Surveys.Entities.Survey", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SurveyBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyCommentBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.Surveys.Entities.SurveyComment", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SurveyCommentBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserProfileBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("UserBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserProfileCommentBookmark", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.UserProfileComment", "Parent")
                        .WithMany("Bookmarks")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("UserCommentBookmarks")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementCommentReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("AdvertisementCommentReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Advertisements.Entities.AdvertisementComment", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("AdvertisementCommentReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("AdvertisementReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Advertisements.Entities.Advertisement", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("AdvertisementReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogCommentReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("BacklogCommentReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Backlogs.Entities.BacklogComment", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BacklogCommentReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("BacklogReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Backlogs.Entities.Backlog", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BacklogReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseCommentReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("CourseCommentReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseComment", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseCommentReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionCommentReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("CourseQuestionCommentReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseQuestionComment", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseQuestionCommentReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("CourseQuestionReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseQuestion", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseQuestionReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("CourseReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Courses.Entities.Course", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicCommentReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("CourseTopicCommentReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseTopicComment", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseTopicCommentReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("CourseTopicReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseTopic", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseTopicReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemCommentReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("DailyNewsItemCommentReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.News.Entities.DailyNewsItemComment", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("DailyNewsItemCommentReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("DailyNewsItemReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.News.Entities.DailyNewsItem", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("DailyNewsItemReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostCommentReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("BlogPostCommentReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Posts.Entities.BlogPostComment", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BlogPostCommentReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("BlogPostReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Posts.Entities.BlogPost", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BlogPostReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageCommentReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("PrivateMessageCommentReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageComment", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("PrivateMessageCommentReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("PrivateMessageReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessage", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("PrivateMessageReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectCommentReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("ProjectCommentReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectComment", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectCommentReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqCommentReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("ProjectFaqCommentReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectFaqComment", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectFaqCommentReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("ProjectFaqReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectFaq", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectFaqReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueCommentReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("ProjectIssueCommentReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectIssueComment", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectIssueCommentReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("ProjectIssueReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectIssue", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectIssueReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("ProjectReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Projects.Entities.Project", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseCommentReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("ProjectReleaseCommentReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectReleaseComment", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectReleaseCommentReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("ProjectReleaseReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectRelease", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectReleaseReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathCommentReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("LearningPathCommentReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.RoadMaps.Entities.LearningPathComment", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("LearningPathCommentReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("LearningPathReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.RoadMaps.Entities.LearningPath", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("LearningPathReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemCommentReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("SearchItemCommentReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Searches.Entities.SearchItemComment", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SearchItemCommentReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("SearchItemReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Searches.Entities.SearchItem", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SearchItemReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionCommentReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("StackExchangeQuestionCommentReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionComment", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("StackExchangeQuestionCommentReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("StackExchangeQuestionReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestion", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("StackExchangeQuestionReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyCommentReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("SurveyCommentReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Surveys.Entities.SurveyComment", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SurveyCommentReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("SurveyReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.Surveys.Entities.Survey", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SurveyReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserProfileCommentReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("UserProfileCommentReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.UserProfileComment", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("UserCommentReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserProfileReaction", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "ForUser")
                        .WithMany("UserProfileReactionsForUsers")
                        .HasForeignKey("ForUserId");

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "Parent")
                        .WithMany("Reactions")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("UserReactions")
                        .HasForeignKey("UserId");

                    b.Navigation("ForUser");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementUserFile", b =>
                {
                    b.HasOne("DntSite.Web.Features.Advertisements.Entities.Advertisement", "Parent")
                        .WithMany("UserFiles")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("AdvertisementUserFiles")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogUserFile", b =>
                {
                    b.HasOne("DntSite.Web.Features.Backlogs.Entities.Backlog", "Parent")
                        .WithMany("UserFiles")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BacklogUserFiles")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionUserFile", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseQuestion", "Parent")
                        .WithMany("UserFiles")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseQuestionUserFiles")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicUserFile", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseTopic", "Parent")
                        .WithMany("UserFiles")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseTopicUserFiles")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseUserFile", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.Course", "Parent")
                        .WithMany("UserFiles")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseUserFiles")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemUserFile", b =>
                {
                    b.HasOne("DntSite.Web.Features.News.Entities.DailyNewsItem", "Parent")
                        .WithMany("UserFiles")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("DailyNewsItemUserFiles")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostUserFile", b =>
                {
                    b.HasOne("DntSite.Web.Features.Posts.Entities.BlogPost", "Parent")
                        .WithMany("UserFiles")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BlogPostUserFiles")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageUserFile", b =>
                {
                    b.HasOne("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessage", "Parent")
                        .WithMany("UserFiles")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("PrivateMessageUserFiles")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqUserFile", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectFaq", "Parent")
                        .WithMany("UserFiles")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectFaqUserFiles")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueUserFile", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectIssue", "Parent")
                        .WithMany("UserFiles")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectIssueUserFiles")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseUserFile", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectRelease", "Parent")
                        .WithMany("UserFiles")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectReleaseUserFiles")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectUserFile", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.Project", "Parent")
                        .WithMany("UserFiles")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectUserFiles")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathUserFile", b =>
                {
                    b.HasOne("DntSite.Web.Features.RoadMaps.Entities.LearningPath", "Parent")
                        .WithMany("UserFiles")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("LearningPathUserFiles")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemUserFile", b =>
                {
                    b.HasOne("DntSite.Web.Features.Searches.Entities.SearchItem", "Parent")
                        .WithMany("UserFiles")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SearchItemUserFiles")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionUserFile", b =>
                {
                    b.HasOne("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestion", "Parent")
                        .WithMany("UserFiles")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("StackExchangeQuestionUserFiles")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyUserFile", b =>
                {
                    b.HasOne("DntSite.Web.Features.Surveys.Entities.Survey", "Parent")
                        .WithMany("UserFiles")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SurveyUserFiles")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserProfileUserFile", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "Parent")
                        .WithMany("UserFiles")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("UserProfileUserFiles")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementCommentVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Advertisements.Entities.AdvertisementComment", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("AdvertisementCommentVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementUserFileVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Advertisements.Entities.AdvertisementUserFile", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("AdvertisementUserFileVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Advertisements.Entities.Advertisement", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("AdvertisementVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogCommentVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Backlogs.Entities.BacklogComment", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BacklogCommentVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogUserFileVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Backlogs.Entities.BacklogUserFile", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BacklogUserFileVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Backlogs.Entities.Backlog", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BacklogVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseCommentVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseComment", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseCommentVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionCommentVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseQuestionComment", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseQuestionCommentVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionUserFileVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseQuestionUserFile", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseQuestionUserFileVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseQuestion", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseQuestionVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicCommentVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseTopicComment", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseTopicCommentVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicUserFileVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseTopicUserFile", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseTopicUserFileVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseTopic", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseTopicVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseUserFileVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.CourseUserFile", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseUserFileVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Courses.Entities.Course", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("CourseVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemCommentVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.News.Entities.DailyNewsItemComment", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("DailyNewsItemCommentVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemUserFileVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.News.Entities.DailyNewsItemUserFile", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("DailyNewsItemUserFileVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.News.Entities.DailyNewsItem", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("DailyNewsItemVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostCommentVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Posts.Entities.BlogPostComment", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BlogPostCommentVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostUserFileVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Posts.Entities.BlogPostUserFile", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BlogPostUserFileVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Posts.Entities.BlogPost", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("BlogPostVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageCommentVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageComment", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("PrivateMessageCommentVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageUserFileVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageUserFile", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("PrivateMessageUserFileVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessage", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("PrivateMessageVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectCommentVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectComment", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectCommentVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqCommentVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectFaqComment", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectFaqCommentVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqUserFileVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectFaqUserFile", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectFaqUserFileVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectFaq", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectFaqVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueCommentVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectIssueComment", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectIssueCommentVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueUserFileVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectIssueUserFile", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectIssueUserFileVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectIssue", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectIssueVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseCommentVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectReleaseComment", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectReleaseCommentVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseUserFileVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectReleaseUserFile", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectReleaseUserFileVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectRelease", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectReleaseVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectUserFileVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.ProjectUserFile", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectUserFileVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Projects.Entities.Project", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("ProjectVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathCommentVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.RoadMaps.Entities.LearningPathComment", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("LearningPathCommentVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathUserFileVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.RoadMaps.Entities.LearningPathUserFile", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("LearningPathUserFileVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.RoadMaps.Entities.LearningPath", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("LearningPathVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemCommentVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Searches.Entities.SearchItemComment", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SearchItemCommentVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemUserFileVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Searches.Entities.SearchItemUserFile", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SearchItemUserFileVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Searches.Entities.SearchItem", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SearchItemVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionCommentVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionComment", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("StackExchangeQuestionCommentVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionUserFileVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionUserFile", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("StackExchangeQuestionUserFileVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestion", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("StackExchangeQuestionVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyCommentVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Surveys.Entities.SurveyComment", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SurveyCommentVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyUserFileVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Surveys.Entities.SurveyUserFile", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SurveyUserFileVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.Surveys.Entities.Survey", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("SurveyVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserProfileCommentVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.UserProfileComment", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("UserCommentVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserProfileUserFileVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.UserProfileUserFile", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("UserProfileUserFileVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserProfileVisitor", b =>
                {
                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "Parent")
                        .WithMany("Visitors")
                        .HasForeignKey("ParentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("DntSite.Web.Features.UserProfiles.Entities.User", "User")
                        .WithMany("UserVisitors")
                        .HasForeignKey("UserId");

                    b.Navigation("Parent");

                    b.Navigation("User");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.Advertisement", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Comments");

                    b.Navigation("Reactions");

                    b.Navigation("UserFiles");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementComment", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Children");

                    b.Navigation("Reactions");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.Backlog", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Comments");

                    b.Navigation("Reactions");

                    b.Navigation("UserFiles");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogComment", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Children");

                    b.Navigation("Reactions");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.Course", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Comments");

                    b.Navigation("CourseQuestions");

                    b.Navigation("CourseTopics");

                    b.Navigation("Reactions");

                    b.Navigation("UserFiles");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseComment", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Children");

                    b.Navigation("Reactions");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestion", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Comments");

                    b.Navigation("Reactions");

                    b.Navigation("UserFiles");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionComment", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Children");

                    b.Navigation("Reactions");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopic", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Comments");

                    b.Navigation("Reactions");

                    b.Navigation("UserFiles");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicComment", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Children");

                    b.Navigation("Reactions");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItem", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Comments");

                    b.Navigation("Reactions");

                    b.Navigation("UserFiles");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemComment", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Children");

                    b.Navigation("Reactions");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPost", b =>
                {
                    b.Navigation("Backlogs");

                    b.Navigation("Bookmarks");

                    b.Navigation("Comments");

                    b.Navigation("Reactions");

                    b.Navigation("UserFiles");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostComment", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Children");

                    b.Navigation("Reactions");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessage", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Comments");

                    b.Navigation("Reactions");

                    b.Navigation("UserFiles");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageComment", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Children");

                    b.Navigation("Reactions");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.Project", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Comments");

                    b.Navigation("ProjectFaqs");

                    b.Navigation("ProjectIssues");

                    b.Navigation("ProjectReleases");

                    b.Navigation("Reactions");

                    b.Navigation("UserFiles");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectComment", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Children");

                    b.Navigation("Reactions");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaq", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Comments");

                    b.Navigation("Reactions");

                    b.Navigation("UserFiles");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqComment", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Children");

                    b.Navigation("Reactions");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssue", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Comments");

                    b.Navigation("Reactions");

                    b.Navigation("UserFiles");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueComment", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Children");

                    b.Navigation("Reactions");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssuePriority", b =>
                {
                    b.Navigation("AssociatedEntities");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueStatus", b =>
                {
                    b.Navigation("AssociatedEntities");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueType", b =>
                {
                    b.Navigation("AssociatedEntities");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectRelease", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Comments");

                    b.Navigation("Reactions");

                    b.Navigation("UserFiles");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseComment", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Children");

                    b.Navigation("Reactions");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPath", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Comments");

                    b.Navigation("Reactions");

                    b.Navigation("UserFiles");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathComment", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Children");

                    b.Navigation("Reactions");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItem", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Comments");

                    b.Navigation("Reactions");

                    b.Navigation("UserFiles");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemComment", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Children");

                    b.Navigation("Reactions");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestion", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Comments");

                    b.Navigation("Reactions");

                    b.Navigation("UserFiles");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionComment", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Children");

                    b.Navigation("Reactions");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Stats.Entities.SiteUrl", b =>
                {
                    b.Navigation("SiteReferrers");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.Survey", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Comments");

                    b.Navigation("Reactions");

                    b.Navigation("SurveyItems");

                    b.Navigation("UserFiles");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyComment", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Children");

                    b.Navigation("Reactions");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.User", b =>
                {
                    b.Navigation("AdvertisementBookmarks");

                    b.Navigation("AdvertisementCommentBookmarks");

                    b.Navigation("AdvertisementCommentReactions");

                    b.Navigation("AdvertisementCommentReactionsForUsers");

                    b.Navigation("AdvertisementCommentVisitors");

                    b.Navigation("AdvertisementComments");

                    b.Navigation("AdvertisementReactions");

                    b.Navigation("AdvertisementReactionsForUsers");

                    b.Navigation("AdvertisementTags");

                    b.Navigation("AdvertisementUserFileVisitors");

                    b.Navigation("AdvertisementUserFiles");

                    b.Navigation("AdvertisementVisitors");

                    b.Navigation("Advertisements");

                    b.Navigation("AppDataProtectionKeys");

                    b.Navigation("AppLogItems");

                    b.Navigation("AppSettings");

                    b.Navigation("BacklogBookmarks");

                    b.Navigation("BacklogCommentBookmarks");

                    b.Navigation("BacklogCommentReactions");

                    b.Navigation("BacklogCommentReactionsForUsers");

                    b.Navigation("BacklogCommentVisitors");

                    b.Navigation("BacklogComments");

                    b.Navigation("BacklogReactions");

                    b.Navigation("BacklogReactionsForUsers");

                    b.Navigation("BacklogTags");

                    b.Navigation("BacklogUserFileVisitors");

                    b.Navigation("BacklogUserFiles");

                    b.Navigation("BacklogVisitors");

                    b.Navigation("Backlogs");

                    b.Navigation("BlogPostBookmarks");

                    b.Navigation("BlogPostCommentBookmarks");

                    b.Navigation("BlogPostCommentReactions");

                    b.Navigation("BlogPostCommentReactionsForUsers");

                    b.Navigation("BlogPostCommentVisitors");

                    b.Navigation("BlogPostComments");

                    b.Navigation("BlogPostDrafts");

                    b.Navigation("BlogPostReactions");

                    b.Navigation("BlogPostReactionsForUsers");

                    b.Navigation("BlogPostTags");

                    b.Navigation("BlogPostUserFileVisitors");

                    b.Navigation("BlogPostUserFiles");

                    b.Navigation("BlogPostVisitors");

                    b.Navigation("BlogPosts");

                    b.Navigation("Bookmarks");

                    b.Navigation("Comments");

                    b.Navigation("CourseBookmarks");

                    b.Navigation("CourseCommentBookmarks");

                    b.Navigation("CourseCommentReactions");

                    b.Navigation("CourseCommentReactionsForUsers");

                    b.Navigation("CourseCommentVisitors");

                    b.Navigation("CourseComments");

                    b.Navigation("CourseQuestionBookmarks");

                    b.Navigation("CourseQuestionCommentBookmarks");

                    b.Navigation("CourseQuestionCommentReactions");

                    b.Navigation("CourseQuestionCommentReactionsForUsers");

                    b.Navigation("CourseQuestionCommentVisitors");

                    b.Navigation("CourseQuestionComments");

                    b.Navigation("CourseQuestionReactions");

                    b.Navigation("CourseQuestionReactionsForUsers");

                    b.Navigation("CourseQuestionTags");

                    b.Navigation("CourseQuestionUserFileVisitors");

                    b.Navigation("CourseQuestionUserFiles");

                    b.Navigation("CourseQuestionVisitors");

                    b.Navigation("CourseQuestions");

                    b.Navigation("CourseReactions");

                    b.Navigation("CourseReactionsForUsers");

                    b.Navigation("CourseTags");

                    b.Navigation("CourseTopicBookmarks");

                    b.Navigation("CourseTopicCommentBookmarks");

                    b.Navigation("CourseTopicCommentReactions");

                    b.Navigation("CourseTopicCommentReactionsForUsers");

                    b.Navigation("CourseTopicCommentVisitors");

                    b.Navigation("CourseTopicComments");

                    b.Navigation("CourseTopicReactions");

                    b.Navigation("CourseTopicReactionsForUsers");

                    b.Navigation("CourseTopicTags");

                    b.Navigation("CourseTopicUserFileVisitors");

                    b.Navigation("CourseTopicUserFiles");

                    b.Navigation("CourseTopicVisitors");

                    b.Navigation("CourseTopics");

                    b.Navigation("CourseUserFileVisitors");

                    b.Navigation("CourseUserFiles");

                    b.Navigation("CourseVisitors");

                    b.Navigation("Courses");

                    b.Navigation("CreatedRoles");

                    b.Navigation("CustomSidebars");

                    b.Navigation("DailyNewsItemBookmarks");

                    b.Navigation("DailyNewsItemCommentBookmarks");

                    b.Navigation("DailyNewsItemCommentReactions");

                    b.Navigation("DailyNewsItemCommentReactionsForUsers");

                    b.Navigation("DailyNewsItemCommentVisitors");

                    b.Navigation("DailyNewsItemComments");

                    b.Navigation("DailyNewsItemReactions");

                    b.Navigation("DailyNewsItemReactionsForUsers");

                    b.Navigation("DailyNewsItemTags");

                    b.Navigation("DailyNewsItemUserFileVisitors");

                    b.Navigation("DailyNewsItemUserFiles");

                    b.Navigation("DailyNewsItemVisitors");

                    b.Navigation("DailyNewsItems");

                    b.Navigation("DoneBacklogs");

                    b.Navigation("LearningPathBookmarks");

                    b.Navigation("LearningPathCommentBookmarks");

                    b.Navigation("LearningPathCommentReactions");

                    b.Navigation("LearningPathCommentReactionsForUsers");

                    b.Navigation("LearningPathCommentVisitors");

                    b.Navigation("LearningPathComments");

                    b.Navigation("LearningPathReactions");

                    b.Navigation("LearningPathReactionsForUsers");

                    b.Navigation("LearningPathTags");

                    b.Navigation("LearningPathUserFileVisitors");

                    b.Navigation("LearningPathUserFiles");

                    b.Navigation("LearningPathVisitors");

                    b.Navigation("LearningPaths");

                    b.Navigation("MassEmails");

                    b.Navigation("PrivateMessageBookmarks");

                    b.Navigation("PrivateMessageCommentBookmarks");

                    b.Navigation("PrivateMessageCommentReactions");

                    b.Navigation("PrivateMessageCommentReactionsForUsers");

                    b.Navigation("PrivateMessageCommentVisitors");

                    b.Navigation("PrivateMessageComments");

                    b.Navigation("PrivateMessageReactions");

                    b.Navigation("PrivateMessageReactionsForUsers");

                    b.Navigation("PrivateMessageTags");

                    b.Navigation("PrivateMessageUserFileVisitors");

                    b.Navigation("PrivateMessageUserFiles");

                    b.Navigation("PrivateMessageVisitors");

                    b.Navigation("ProjectBookmarks");

                    b.Navigation("ProjectCommentBookmarks");

                    b.Navigation("ProjectCommentReactions");

                    b.Navigation("ProjectCommentReactionsForUsers");

                    b.Navigation("ProjectCommentVisitors");

                    b.Navigation("ProjectComments");

                    b.Navigation("ProjectFaqBookmarks");

                    b.Navigation("ProjectFaqCommentBookmarks");

                    b.Navigation("ProjectFaqCommentReactions");

                    b.Navigation("ProjectFaqCommentReactionsForUsers");

                    b.Navigation("ProjectFaqCommentVisitors");

                    b.Navigation("ProjectFaqComments");

                    b.Navigation("ProjectFaqReactions");

                    b.Navigation("ProjectFaqReactionsForUsers");

                    b.Navigation("ProjectFaqTags");

                    b.Navigation("ProjectFaqUserFileVisitors");

                    b.Navigation("ProjectFaqUserFiles");

                    b.Navigation("ProjectFaqVisitors");

                    b.Navigation("ProjectFaqs");

                    b.Navigation("ProjectIssueBookmarks");

                    b.Navigation("ProjectIssueCommentBookmarks");

                    b.Navigation("ProjectIssueCommentReactions");

                    b.Navigation("ProjectIssueCommentReactionsForUsers");

                    b.Navigation("ProjectIssueCommentVisitors");

                    b.Navigation("ProjectIssueComments");

                    b.Navigation("ProjectIssuePriorities");

                    b.Navigation("ProjectIssueReactions");

                    b.Navigation("ProjectIssueReactionsForUsers");

                    b.Navigation("ProjectIssueStatus");

                    b.Navigation("ProjectIssueTags");

                    b.Navigation("ProjectIssueTypes");

                    b.Navigation("ProjectIssueUserFileVisitors");

                    b.Navigation("ProjectIssueUserFiles");

                    b.Navigation("ProjectIssueVisitors");

                    b.Navigation("ProjectIssues");

                    b.Navigation("ProjectReactions");

                    b.Navigation("ProjectReactionsForUsers");

                    b.Navigation("ProjectReleaseBookmarks");

                    b.Navigation("ProjectReleaseCommentBookmarks");

                    b.Navigation("ProjectReleaseCommentReactions");

                    b.Navigation("ProjectReleaseCommentReactionsForUsers");

                    b.Navigation("ProjectReleaseCommentVisitors");

                    b.Navigation("ProjectReleaseComments");

                    b.Navigation("ProjectReleaseReactions");

                    b.Navigation("ProjectReleaseReactionsForUsers");

                    b.Navigation("ProjectReleaseTags");

                    b.Navigation("ProjectReleaseUserFileVisitors");

                    b.Navigation("ProjectReleaseUserFiles");

                    b.Navigation("ProjectReleaseVisitors");

                    b.Navigation("ProjectReleases");

                    b.Navigation("ProjectTags");

                    b.Navigation("ProjectUserFileVisitors");

                    b.Navigation("ProjectUserFiles");

                    b.Navigation("ProjectVisitors");

                    b.Navigation("Projects");

                    b.Navigation("Reactions");

                    b.Navigation("ReceivedPrivateMessages");

                    b.Navigation("SearchItemBookmarks");

                    b.Navigation("SearchItemCommentBookmarks");

                    b.Navigation("SearchItemCommentReactions");

                    b.Navigation("SearchItemCommentReactionsForUsers");

                    b.Navigation("SearchItemCommentVisitors");

                    b.Navigation("SearchItemComments");

                    b.Navigation("SearchItemReactions");

                    b.Navigation("SearchItemReactionsForUsers");

                    b.Navigation("SearchItemTags");

                    b.Navigation("SearchItemUserFileVisitors");

                    b.Navigation("SearchItemUserFiles");

                    b.Navigation("SearchItemVisitors");

                    b.Navigation("SearchItems");

                    b.Navigation("SentPrivateMessages");

                    b.Navigation("SiteReferrers");

                    b.Navigation("SiteUrls");

                    b.Navigation("StackExchangeQuestionBookmarks");

                    b.Navigation("StackExchangeQuestionCommentBookmarks");

                    b.Navigation("StackExchangeQuestionCommentReactions");

                    b.Navigation("StackExchangeQuestionCommentReactionsForUsers");

                    b.Navigation("StackExchangeQuestionCommentVisitors");

                    b.Navigation("StackExchangeQuestionComments");

                    b.Navigation("StackExchangeQuestionReactions");

                    b.Navigation("StackExchangeQuestionReactionsForUsers");

                    b.Navigation("StackExchangeQuestionTags");

                    b.Navigation("StackExchangeQuestionUserFileVisitors");

                    b.Navigation("StackExchangeQuestionUserFiles");

                    b.Navigation("StackExchangeQuestionVisitors");

                    b.Navigation("StackExchangeQuestions");

                    b.Navigation("SurveyBookmarks");

                    b.Navigation("SurveyCommentBookmarks");

                    b.Navigation("SurveyCommentReactions");

                    b.Navigation("SurveyCommentReactionsForUsers");

                    b.Navigation("SurveyCommentVisitors");

                    b.Navigation("SurveyComments");

                    b.Navigation("SurveyReactions");

                    b.Navigation("SurveyReactionsForUsers");

                    b.Navigation("SurveyTags");

                    b.Navigation("SurveyUserFileVisitors");

                    b.Navigation("SurveyUserFiles");

                    b.Navigation("SurveyVisitors");

                    b.Navigation("Surveys");

                    b.Navigation("UserBookmarks");

                    b.Navigation("UserCommentBookmarks");

                    b.Navigation("UserCommentReactions");

                    b.Navigation("UserCommentVisitors");

                    b.Navigation("UserComments");

                    b.Navigation("UserFiles");

                    b.Navigation("UserProfileCommentReactionsForUsers");

                    b.Navigation("UserProfileReactionsForUsers");

                    b.Navigation("UserProfileUserFileVisitors");

                    b.Navigation("UserProfileUserFiles");

                    b.Navigation("UserReactions");

                    b.Navigation("UserSocialNetwork");

                    b.Navigation("UserUsedPasswords");

                    b.Navigation("UserVisitors");

                    b.Navigation("Users");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserProfileComment", b =>
                {
                    b.Navigation("Bookmarks");

                    b.Navigation("Children");

                    b.Navigation("Reactions");

                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Advertisements.Entities.AdvertisementUserFile", b =>
                {
                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Backlogs.Entities.BacklogUserFile", b =>
                {
                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseQuestionUserFile", b =>
                {
                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseTopicUserFile", b =>
                {
                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Courses.Entities.CourseUserFile", b =>
                {
                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.News.Entities.DailyNewsItemUserFile", b =>
                {
                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Posts.Entities.BlogPostUserFile", b =>
                {
                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.PrivateMessages.Entities.PrivateMessageUserFile", b =>
                {
                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectFaqUserFile", b =>
                {
                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectIssueUserFile", b =>
                {
                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectReleaseUserFile", b =>
                {
                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Projects.Entities.ProjectUserFile", b =>
                {
                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.RoadMaps.Entities.LearningPathUserFile", b =>
                {
                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Searches.Entities.SearchItemUserFile", b =>
                {
                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.StackExchangeQuestions.Entities.StackExchangeQuestionUserFile", b =>
                {
                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.Surveys.Entities.SurveyUserFile", b =>
                {
                    b.Navigation("Visitors");
                });

            modelBuilder.Entity("DntSite.Web.Features.UserProfiles.Entities.UserProfileUserFile", b =>
                {
                    b.Navigation("Visitors");
                });
#pragma warning restore 612, 618
        }
    }
}
