diff --git a/RMuseum/Migrations/20210128111216_PoemMusicTrack-Rejected.Designer.cs b/RMuseum/Migrations/20210128111216_PoemMusicTrack-Rejected.Designer.cs
new file mode 100644
index 00000000..21415a58
--- /dev/null
+++ b/RMuseum/Migrations/20210128111216_PoemMusicTrack-Rejected.Designer.cs
@@ -0,0 +1,2072 @@
+//
+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("20210128111216_PoemMusicTrack-Rejected")]
+ partial class PoemMusicTrackRejected
+ {
+ 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.GanjoorMetre", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("Description")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Name")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Rhythm")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("UrlSlug")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("VerseCount")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.ToTable("GanjoorMetres");
+ });
+
+ 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("GanjoorMetreId")
+ .HasColumnType("int");
+
+ b.Property("HtmlText")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("PlainText")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("RhymeLetters")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("SourceName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("SourceUrlSlug")
+ .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.HasIndex("GanjoorMetreId");
+
+ 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.Ganjoor.PoemMusicTrack", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("AlbumName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("AlbumUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ApprovalDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Approved")
+ .HasColumnType("bit");
+
+ b.Property("ArtistName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ArtistUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("BrokenLink")
+ .HasColumnType("bit");
+
+ b.Property("Description")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("GanjoorTrackId")
+ .HasColumnType("int");
+
+ b.Property("GolhaTrackId")
+ .HasColumnType("int");
+
+ b.Property("PoemId")
+ .HasColumnType("int");
+
+ b.Property("Rejected")
+ .HasColumnType("bit");
+
+ b.Property("RejectionCause")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("SingerId")
+ .HasColumnType("int");
+
+ b.Property("SuggestedById")
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("TrackName")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TrackType")
+ .HasColumnType("int");
+
+ b.Property("TrackUrl")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("GanjoorTrackId");
+
+ b.HasIndex("GolhaTrackId");
+
+ b.HasIndex("PoemId");
+
+ b.HasIndex("SingerId");
+
+ b.HasIndex("SuggestedById");
+
+ b.ToTable("GanjoorPoemMusicTracks");
+ });
+
+ 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("DisplayOnPage")
+ .HasColumnType("bit");
+
+ 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.MusicCatalogue.GanjoorAlbum", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("Name")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("SingerId")
+ .HasColumnType("int");
+
+ b.Property("Url")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("SingerId");
+
+ b.ToTable("GanjoorAlbum");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GanjoorSinger", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("Name")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("Url")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Name");
+
+ b.ToTable("GanjoorSingers");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GanjoorTrack", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ b.Property("AlbumId")
+ .HasColumnType("int");
+
+ b.Property("BlockReason")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Blocked")
+ .HasColumnType("bit");
+
+ b.Property("Name")
+ .HasColumnType("nvarchar(450)");
+
+ b.Property("Url")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("AlbumId");
+
+ b.HasIndex("Name");
+
+ b.ToTable("GanjoorMusicCatalogueTracks");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GolhaCollection", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("int");
+
+ b.Property("Name")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.ToTable("GolhaCollections");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GolhaProgram", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("int");
+
+ b.Property("GolhaCollectionId")
+ .HasColumnType("int");
+
+ b.Property("Mp3")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ProgramOrder")
+ .HasColumnType("int");
+
+ b.Property("Title")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Url")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("GolhaCollectionId");
+
+ b.ToTable("GolhaPrograms");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.MusicCatalogue.GolhaTrack", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("int");
+
+ b.Property("BlockReason")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Blocked")
+ .HasColumnType("bit");
+
+ b.Property("GolhaProgramId")
+ .HasColumnType("int");
+
+ b.Property("SingerId")
+ .HasColumnType("int");
+
+ b.Property("Timing")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Title")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TrackNo")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("GolhaProgramId");
+
+ b.HasIndex("SingerId");
+
+ b.ToTable("GolhaTracks");
+ });
+
+ modelBuilder.Entity("RMuseum.Models.Note.RUserNote", b =>
+ {
+ b.Property