diff --git a/RMuseum/Controllers/GanjoorController.cs b/RMuseum/Controllers/GanjoorController.cs
index f1cb798c..e0fbe8d7 100644
--- a/RMuseum/Controllers/GanjoorController.cs
+++ b/RMuseum/Controllers/GanjoorController.cs
@@ -130,7 +130,7 @@ namespace RMuseum.Controllers
/// page by url
///
///
- ///
+ ///
///
[HttpGet]
[Route("page")]
@@ -138,7 +138,7 @@ namespace RMuseum.Controllers
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(GanjoorPageCompleteViewModel))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
[ProducesResponseType((int)HttpStatusCode.NotFound)]
- public async Task GetPageByUrl(string url, bool catPoems = true)
+ public async Task GetPageByUrl(string url, bool catPoems = false)
{
RServiceResult res =
await _ganjoorService.GetPageByUrl(url, catPoems);
diff --git a/RMuseum/DbContext/RMuseumDbContext.cs b/RMuseum/DbContext/RMuseumDbContext.cs
index a92b6739..4f958e1f 100644
--- a/RMuseum/DbContext/RMuseumDbContext.cs
+++ b/RMuseum/DbContext/RMuseumDbContext.cs
@@ -80,6 +80,9 @@ namespace RMuseum.DbContext
builder.Entity()
.HasIndex(c => c.FullUrl);
+ builder.Entity()
+ .HasIndex(c => c.FullUrl);
+
}
diff --git a/RMuseum/Migrations/20210107144826_GanjoorPageFullUrlIndex.Designer.cs b/RMuseum/Migrations/20210107144826_GanjoorPageFullUrlIndex.Designer.cs
new file mode 100644
index 00000000..ac73ca35
--- /dev/null
+++ b/RMuseum/Migrations/20210107144826_GanjoorPageFullUrlIndex.Designer.cs
@@ -0,0 +1,1734 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using RMuseum.DbContext;
+
+namespace RMuseum.Migrations
+{
+ [DbContext(typeof(RMuseumDbContext))]
+ [Migration("20210107144826_GanjoorPageFullUrlIndex")]
+ partial class GanjoorPageFullUrlIndex
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "3.1.3")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128)
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("ClaimType")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ClaimValue")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RoleId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RoleId");
+
+ b.ToTable("AspNetRoleClaims");
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("ClaimType")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ClaimValue")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("AspNetUserClaims");
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b =>
+ {
+ b.Property("LoginProvider")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("ProviderKey")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("ProviderDisplayName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("LoginProvider", "ProviderKey");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("AspNetUserLogins");
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b =>
+ {
+ b.Property("UserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("RoleId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("UserId", "RoleId");
+
+ b.HasIndex("RoleId");
+
+ b.ToTable("AspNetUserRoles");
+ });
+
+ modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b =>
+ {
+ b.Property("UserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("LoginProvider")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("Name")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("Value")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("UserId", "LoginProvider", "Name");
+
+ b.ToTable("AspNetUserTokens");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactItemRecord", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("CoverImageIndex")
+ .HasColumnType("int");
+
+ b.Property("Description")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DescriptionInEnglish")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FriendlyUrl")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("LastModified")
+ .HasColumnType("datetime2");
+
+ b.Property("Name")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("NameInEnglish")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Order")
+ .HasColumnType("int");
+
+ b.Property("RArtifactMasterRecordId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RArtifactMasterRecordId", "FriendlyUrl")
+ .IsUnique()
+ .HasFilter("[FriendlyUrl] IS NOT NULL");
+
+ b.HasIndex("RArtifactMasterRecordId", "Order")
+ .IsUnique();
+
+ b.ToTable("Items");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactMasterRecord", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("CoverImageId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("CoverItemIndex")
+ .HasColumnType("int");
+
+ b.Property("DateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("Description")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DescriptionInEnglish")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FriendlyUrl")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("ItemCount")
+ .HasColumnType("int");
+
+ b.Property("LastModified")
+ .HasColumnType("datetime2");
+
+ b.Property("Name")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("NameInEnglish")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Status")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CoverImageId");
+
+ b.HasIndex("FriendlyUrl")
+ .IsUnique()
+ .HasFilter("[FriendlyUrl] IS NOT NULL");
+
+ b.ToTable("Artifacts");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.Artifact.RTag", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("FriendlyUrl")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("GlobalValue")
+ .HasColumnType("bit");
+
+ b.Property("Name")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("NameInEnglish")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Order")
+ .HasColumnType("int");
+
+ b.Property("PluralName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("PluralNameInEnglish")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Status")
+ .HasColumnType("int");
+
+ b.Property("TagType")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("FriendlyUrl");
+
+ b.ToTable("Tags");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.Artifact.RTagValue", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("FriendlyUrl")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("Order")
+ .HasColumnType("int");
+
+ b.Property("RArtifactItemRecordId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("RArtifactMasterRecordId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("RTagId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Status")
+ .HasColumnType("int");
+
+ b.Property("Value")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ValueInEnglish")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ValueSupplement")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("FriendlyUrl");
+
+ b.HasIndex("RArtifactItemRecordId");
+
+ b.HasIndex("RArtifactMasterRecordId");
+
+ b.HasIndex("RTagId");
+
+ b.ToTable("TagValues");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.Bookmark.RUserBookmark", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("DateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("Note")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RAppUserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("RArtifactItemRecordId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("RArtifactMasterRecordId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("RBookmarkType")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RAppUserId");
+
+ b.HasIndex("RArtifactItemRecordId");
+
+ b.HasIndex("RArtifactMasterRecordId");
+
+ b.ToTable("UserBookmarks");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorCat", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("int");
+
+ b.Property("FullUrl")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("ParentId")
+ .HasColumnType("int");
+
+ b.Property("PoetId")
+ .HasColumnType("int");
+
+ b.Property("Title")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UrlSlug")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("FullUrl");
+
+ b.HasIndex("ParentId");
+
+ b.HasIndex("PoetId");
+
+ b.ToTable("GanjoorCategories");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPage", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("int");
+
+ b.Property("CatId")
+ .HasColumnType("int");
+
+ b.Property("FullTitle")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FullUrl")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("GanjoorPageType")
+ .HasColumnType("int");
+
+ b.Property("HtmlText")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("PageOrder")
+ .HasColumnType("int");
+
+ b.Property("ParentId")
+ .HasColumnType("int");
+
+ b.Property("PoemId")
+ .HasColumnType("int");
+
+ b.Property("PoetId")
+ .HasColumnType("int");
+
+ b.Property("PostDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Published")
+ .HasColumnType("bit");
+
+ b.Property("SecondPoetId")
+ .HasColumnType("int");
+
+ b.Property("Title")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UrlSlug")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CatId");
+
+ b.HasIndex("FullUrl");
+
+ b.HasIndex("ParentId");
+
+ b.HasIndex("PoemId");
+
+ b.HasIndex("PoetId");
+
+ b.HasIndex("SecondPoetId");
+
+ b.ToTable("GanjoorPages");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoem", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("int");
+
+ b.Property("CatId")
+ .HasColumnType("int");
+
+ b.Property("FullTitle")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FullUrl")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("HtmlText")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("PlainText")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Title")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UrlSlug")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CatId");
+
+ b.HasIndex("FullUrl");
+
+ b.ToTable("GanjoorPoems");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoet", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("int");
+
+ b.Property("Description")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Name")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.ToTable("GanjoorPoets");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorVerse", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("PoemId")
+ .HasColumnType("int");
+
+ b.Property("Text")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("VOrder")
+ .HasColumnType("int");
+
+ b.Property("VersePosition")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("PoemId");
+
+ b.ToTable("GanjoorVerses");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.GanjoorAudio.Recitation", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("AudioArtist")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("AudioArtistUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("AudioOrder")
+ .HasColumnType("int");
+
+ b.Property("AudioSrc")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("AudioSrcUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("AudioSyncStatus")
+ .HasColumnType("int");
+
+ b.Property("AudioTitle")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FileLastUpdated")
+ .HasColumnType("datetime2");
+
+ b.Property("FileNameWithoutExtension")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("GanjoorAudioId")
+ .HasColumnType("int");
+
+ b.Property("GanjoorPostId")
+ .HasColumnType("int");
+
+ b.Property("LegacyAudioGuid")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("LocalMp3FilePath")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("LocalXmlFilePath")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Mp3FileCheckSum")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Mp3SizeInBytes")
+ .HasColumnType("int");
+
+ b.Property("OggSizeInBytes")
+ .HasColumnType("int");
+
+ b.Property("OwnerId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ReviewDate")
+ .HasColumnType("datetime2");
+
+ b.Property("ReviewMsg")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ReviewStatus")
+ .HasColumnType("int");
+
+ b.Property("ReviewerId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("SoundFilesFolder")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UploadDate")
+ .HasColumnType("datetime2");
+
+ b.HasKey("Id");
+
+ b.HasIndex("GanjoorPostId");
+
+ b.HasIndex("OwnerId");
+
+ b.HasIndex("ReviewerId");
+
+ b.ToTable("Recitations");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.GanjoorAudio.RecitationPublishingTracker", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("FinishDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Finished")
+ .HasColumnType("bit");
+
+ b.Property("FirstDbUpdated")
+ .HasColumnType("bit");
+
+ b.Property("LastException")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Mp3FileCopied")
+ .HasColumnType("bit");
+
+ b.Property("PoemNarrationId")
+ .HasColumnType("int");
+
+ b.Property("SecondDbUpdated")
+ .HasColumnType("bit");
+
+ b.Property("StartDate")
+ .HasColumnType("datetime2");
+
+ b.Property("XmlFileCopied")
+ .HasColumnType("bit");
+
+ b.HasKey("Id");
+
+ b.HasIndex("PoemNarrationId");
+
+ b.ToTable("RecitationPublishingTrackers");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.GanjoorAudio.UserRecitationProfile", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ArtistName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ArtistUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("AudioSrc")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("AudioSrcUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FileSuffixWithoutDash")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("IsDefault")
+ .HasColumnType("bit");
+
+ b.Property("Name")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("UserRecitationProfiles");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.GanjoorLink", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ArtifactId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("GanjoorPostId")
+ .HasColumnType("int");
+
+ b.Property("GanjoorTitle")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("GanjoorUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ItemId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ReviewDate")
+ .HasColumnType("datetime2");
+
+ b.Property("ReviewResult")
+ .HasColumnType("int");
+
+ b.Property("ReviewerId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("SuggestedById")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("SuggestionDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Synchronized")
+ .HasColumnType("bit");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ArtifactId");
+
+ b.HasIndex("ItemId");
+
+ b.HasIndex("ReviewerId");
+
+ b.HasIndex("SuggestedById");
+
+ b.ToTable("GanjoorLinks");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.PinterestLink", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("AltText")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ArtifactId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("GanjoorPostId")
+ .HasColumnType("int");
+
+ b.Property("GanjoorTitle")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("GanjoorUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ItemId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("LinkType")
+ .HasColumnType("int");
+
+ b.Property("PinterestImageUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("PinterestUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ReviewDate")
+ .HasColumnType("datetime2");
+
+ b.Property("ReviewDesc")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ReviewResult")
+ .HasColumnType("int");
+
+ b.Property("ReviewerId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("SuggestedById")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("SuggestionDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Synchronized")
+ .HasColumnType("bit");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ArtifactId");
+
+ b.HasIndex("ItemId");
+
+ b.HasIndex("ReviewerId");
+
+ b.HasIndex("SuggestedById");
+
+ b.ToTable("PinterestLinks");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.ImportJob.ImportJob", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ArtifactId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("EndTime")
+ .HasColumnType("datetime2");
+
+ b.Property("Exception")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FriendlyUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("JobType")
+ .HasColumnType("int");
+
+ b.Property("ProgressPercent")
+ .HasColumnType("decimal(18,2)");
+
+ b.Property("QueueTime")
+ .HasColumnType("datetime2");
+
+ b.Property("ResourceNumber")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("SrcContent")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("SrcUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("StartTime")
+ .HasColumnType("datetime2");
+
+ b.Property("Status")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ArtifactId");
+
+ b.ToTable("ImportJobs");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.Note.RUserNote", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("DateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("HtmlContent")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("LastModified")
+ .HasColumnType("datetime2");
+
+ b.Property("Modified")
+ .HasColumnType("bit");
+
+ b.Property("NoteType")
+ .HasColumnType("int");
+
+ b.Property("RAppUserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("RArtifactItemRecordId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("RArtifactMasterRecordId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ReferenceNoteId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Status")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RAppUserId");
+
+ b.HasIndex("RArtifactItemRecordId");
+
+ b.HasIndex("RArtifactMasterRecordId");
+
+ b.HasIndex("ReferenceNoteId");
+
+ b.ToTable("UserNotes");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.Notification.RUserNotification", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("DateTime")
+ .HasColumnType("datetime2");
+
+ b.Property("HtmlText")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Status")
+ .HasColumnType("int");
+
+ b.Property("Subject")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("Notifications");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSession", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ProcessEndTime")
+ .HasColumnType("datetime2");
+
+ b.Property("ProcessProgress")
+ .HasColumnType("int");
+
+ b.Property("ProcessStartTime")
+ .HasColumnType("datetime2");
+
+ b.Property("SessionType")
+ .HasColumnType("int");
+
+ b.Property("Status")
+ .HasColumnType("int");
+
+ b.Property("UploadEndTime")
+ .HasColumnType("datetime2");
+
+ b.Property("UploadStartTime")
+ .HasColumnType("datetime2");
+
+ b.Property("UseId")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("UserId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("UploadSessions");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSessionFile", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ContentDisposition")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ContentType")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FileName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("FilePath")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Length")
+ .HasColumnType("bigint");
+
+ b.Property("MP3FileCheckSum")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Name")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ProcessResult")
+ .HasColumnType("bit");
+
+ b.Property("ProcessResultMsg")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UploadSessionId")
+ .HasColumnType("uniqueidentifier");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UploadSessionId");
+
+ b.ToTable("UploadedFiles");
+ });
+
+ modelBuilder.Entity("RSecurityBackend.Models.Audit.Db.REvent", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("Duration")
+ .HasColumnType("int");
+
+ b.Property("EndDate")
+ .HasColumnType("datetime2");
+
+ b.Property("EventType")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("IpAddress")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("JsonData")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RequestUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ResponseStatusCode")
+ .HasColumnType("int");
+
+ b.Property("StartDate")
+ .HasColumnType("datetime2");
+
+ b.Property("UserName")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.ToTable("AuditLogs");
+ });
+
+ modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RAppRole", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Description")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Name")
+ .HasColumnType("nvarchar(256)")
+ .HasMaxLength(256);
+
+ b.Property("NormalizedName")
+ .HasColumnType("nvarchar(256)")
+ .HasMaxLength(256);
+
+ b.HasKey("Id");
+
+ b.HasIndex("NormalizedName")
+ .IsUnique()
+ .HasName("RoleNameIndex")
+ .HasFilter("[NormalizedName] IS NOT NULL");
+
+ b.ToTable("AspNetRoles");
+ });
+
+ modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RAppUser", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property