diff --git a/RMuseum/Migrations/20200830054142_AudioFiles.Designer.cs b/RMuseum/Migrations/20200830054142_AudioFiles.Designer.cs deleted file mode 100644 index a4f4e2db..00000000 --- a/RMuseum/Migrations/20200830054142_AudioFiles.Designer.cs +++ /dev/null @@ -1,1265 +0,0 @@ -// -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("20200830054142_AudioFiles")] - partial class AudioFiles - { - 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.GanjoorAudio.PoemNarration", 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("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("ReviewStatus") - .HasColumnType("int"); - - b.Property("SoundFilesFolder") - .HasColumnType("nvarchar(max)"); - - b.Property("UploadDate") - .HasColumnType("datetime2"); - - b.HasKey("Id"); - - b.HasIndex("OwnerId"); - - b.ToTable("AudioFiles"); - }); - - 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("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("AccessFailedCount") - .HasColumnType("int"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("nvarchar(max)"); - - b.Property("CreateDate") - .HasColumnType("datetime2"); - - b.Property("Email") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.Property("EmailConfirmed") - .HasColumnType("bit"); - - b.Property("FirstName") - .HasColumnType("nvarchar(max)"); - - b.Property("LockoutEnabled") - .HasColumnType("bit"); - - b.Property("LockoutEnd") - .HasColumnType("datetimeoffset"); - - b.Property("NormalizedEmail") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.Property("NormalizedUserName") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.Property("PasswordHash") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumber") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumberConfirmed") - .HasColumnType("bit"); - - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); - - b.Property("SecurityStamp") - .HasColumnType("nvarchar(max)"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("SureName") - .HasColumnType("nvarchar(max)"); - - b.Property("TwoFactorEnabled") - .HasColumnType("bit"); - - b.Property("UserName") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); - - b.HasIndex("RImageId"); - - b.ToTable("AspNetUsers"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RCaptchaImage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("DateTime") - .HasColumnType("datetime2"); - - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); - - b.Property("Value") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("RImageId"); - - b.ToTable("CaptchaImages"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RPermission", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("OperationShortName") - .HasColumnType("nvarchar(max)"); - - b.Property("RAppRoleId") - .HasColumnType("uniqueidentifier"); - - b.Property("SecurableItemShortName") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("RAppRoleId"); - - b.ToTable("Permissions"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RTemporaryUserSession", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientAppName") - .HasColumnType("nvarchar(max)"); - - b.Property("ClientIPAddress") - .HasColumnType("nvarchar(max)"); - - b.Property("Language") - .HasColumnType("nvarchar(max)"); - - b.Property("LastRenewal") - .HasColumnType("datetime2"); - - b.Property("LoginTime") - .HasColumnType("datetime2"); - - b.Property("RAppUserId") - .HasColumnType("uniqueidentifier"); - - b.Property("Token") - .HasColumnType("nvarchar(max)"); - - b.Property("ValidUntil") - .HasColumnType("datetime2"); - - b.HasKey("Id"); - - b.HasIndex("RAppUserId"); - - b.ToTable("Sessions"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RVerifyQueueItem", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientAppName") - .HasColumnType("nvarchar(max)"); - - b.Property("ClientIPAddress") - .HasColumnType("nvarchar(max)"); - - b.Property("DateTime") - .HasColumnType("datetime2"); - - b.Property("Email") - .HasColumnType("nvarchar(max)"); - - b.Property("Language") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumber") - .HasColumnType("nvarchar(max)"); - - b.Property("QueueType") - .HasColumnType("int"); - - b.Property("Secret") - .HasColumnType("nvarchar(450)"); - - b.HasKey("Id"); - - b.HasIndex("Secret") - .IsUnique() - .HasFilter("[Secret] IS NOT NULL"); - - b.ToTable("VerifyQueueItems"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Image.RImage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ContentType") - .HasColumnType("nvarchar(max)"); - - b.Property("DataTime") - .HasColumnType("datetime2"); - - b.Property("Discriminator") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("FileSizeInBytes") - .HasColumnType("bigint"); - - b.Property("FolderName") - .HasColumnType("nvarchar(max)"); - - b.Property("ImageHeight") - .HasColumnType("int"); - - b.Property("ImageWidth") - .HasColumnType("int"); - - b.Property("LastModified") - .HasColumnType("datetime2"); - - b.Property("OriginalFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("StoredFileName") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("GeneralImages"); - - b.HasDiscriminator("Discriminator").HasValue("RImage"); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RPictureFile", b => - { - b.HasBaseType("RSecurityBackend.Models.Image.RImage"); - - b.Property("Description") - .HasColumnType("nvarchar(max)"); - - b.Property("DescriptionInEnglish") - .HasColumnType("nvarchar(max)"); - - b.Property("LastModifiedMeta") - .HasColumnType("datetime2"); - - b.Property("NormalSizeImageHeight") - .HasColumnType("int"); - - b.Property("NormalSizeImageStoredFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("NormalSizeImageWidth") - .HasColumnType("int"); - - b.Property("Order") - .HasColumnType("int"); - - b.Property("RArtifactItemRecordId") - .HasColumnType("uniqueidentifier"); - - b.Property("SrcUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("ThumbnailImageHeight") - .HasColumnType("int"); - - b.Property("ThumbnailImageStoredFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("ThumbnailImageWidth") - .HasColumnType("int"); - - b.Property("Title") - .HasColumnType("nvarchar(max)"); - - b.Property("TitleInEnglish") - .HasColumnType("nvarchar(max)"); - - b.HasIndex("RArtifactItemRecordId"); - - b.HasDiscriminator().HasValue("RPictureFile"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactItemRecord", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", null) - .WithMany("Items") - .HasForeignKey("RArtifactMasterRecordId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactMasterRecord", b => - { - b.HasOne("RMuseum.Models.Artifact.RPictureFile", "CoverImage") - .WithMany() - .HasForeignKey("CoverImageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RTagValue", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", null) - .WithMany("Tags") - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", null) - .WithMany("Tags") - .HasForeignKey("RArtifactMasterRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RTag", "RTag") - .WithMany() - .HasForeignKey("RTagId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Bookmark.RUserBookmark", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "RArtifactItemRecord") - .WithMany() - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "RArtifactMasterRecord") - .WithMany() - .HasForeignKey("RArtifactMasterRecordId"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.PoemNarration", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Owner") - .WithMany() - .HasForeignKey("OwnerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.GanjoorLink", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "Item") - .WithMany() - .HasForeignKey("ItemId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") - .WithMany() - .HasForeignKey("SuggestedById") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.PinterestLink", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "Item") - .WithMany() - .HasForeignKey("ItemId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") - .WithMany() - .HasForeignKey("SuggestedById"); - }); - - modelBuilder.Entity("RMuseum.Models.ImportJob.ImportJob", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId"); - }); - - modelBuilder.Entity("RMuseum.Models.Note.RUserNote", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "RArtifactItemRecord") - .WithMany() - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "RArtifactMasterRecord") - .WithMany() - .HasForeignKey("RArtifactMasterRecordId"); - - b.HasOne("RMuseum.Models.Note.RUserNote", "ReferenceNote") - .WithMany() - .HasForeignKey("ReferenceNoteId"); - }); - - modelBuilder.Entity("RMuseum.Models.Notification.RUserNotification", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RAppUser", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RCaptchaImage", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RPermission", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany("Permissions") - .HasForeignKey("RAppRoleId"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RTemporaryUserSession", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RPictureFile", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", null) - .WithMany("Images") - .HasForeignKey("RArtifactItemRecordId"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/RMuseum/Migrations/20200830054142_AudioFiles.cs b/RMuseum/Migrations/20200830054142_AudioFiles.cs deleted file mode 100644 index ba28c3db..00000000 --- a/RMuseum/Migrations/20200830054142_AudioFiles.cs +++ /dev/null @@ -1,61 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; - -namespace RMuseum.Migrations -{ - public partial class AudioFiles : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "AudioFiles", - columns: table => new - { - Id = table.Column(nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - OwnerId = table.Column(nullable: false), - GanjoorAudioId = table.Column(nullable: false), - GanjoorPostId = table.Column(nullable: false), - AudioOrder = table.Column(nullable: false), - FileNameWithoutExtension = table.Column(nullable: true), - SoundFilesFolder = table.Column(nullable: true), - AudioTitle = table.Column(nullable: true), - AudioArtist = table.Column(nullable: true), - AudioArtistUrl = table.Column(nullable: true), - AudioSrc = table.Column(nullable: true), - AudioSrcUrl = table.Column(nullable: true), - LegacyAudioGuid = table.Column(nullable: false), - Mp3FileCheckSum = table.Column(nullable: true), - Mp3SizeInBytes = table.Column(nullable: false), - OggSizeInBytes = table.Column(nullable: false), - UploadDate = table.Column(nullable: false), - ReviewDate = table.Column(nullable: false), - LocalMp3FilePath = table.Column(nullable: true), - LocalXmlFilePath = table.Column(nullable: true), - AudioSyncStatus = table.Column(nullable: false), - ReviewStatus = table.Column(nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_AudioFiles", x => x.Id); - table.ForeignKey( - name: "FK_AudioFiles_AspNetUsers_OwnerId", - column: x => x.OwnerId, - principalTable: "AspNetUsers", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateIndex( - name: "IX_AudioFiles_OwnerId", - table: "AudioFiles", - column: "OwnerId"); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "AudioFiles"); - } - } -} diff --git a/RMuseum/Migrations/20200913163614_UploadNarration.Designer.cs b/RMuseum/Migrations/20200913163614_UploadNarration.Designer.cs deleted file mode 100644 index af3f5116..00000000 --- a/RMuseum/Migrations/20200913163614_UploadNarration.Designer.cs +++ /dev/null @@ -1,1404 +0,0 @@ -// -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("20200913163614_UploadNarration")] - partial class UploadNarration - { - 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.GanjoorAudio.PoemNarration", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - 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("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("ReviewStatus") - .HasColumnType("int"); - - b.Property("SoundFilesFolder") - .HasColumnType("nvarchar(max)"); - - b.Property("UploadDate") - .HasColumnType("datetime2"); - - b.HasKey("Id"); - - b.HasIndex("OwnerId"); - - b.ToTable("AudioFiles"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.UserNarrationProfile", 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("UserId") - .HasColumnType("uniqueidentifier"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("UserNarrationProfiles"); - }); - - 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("UploadSessionFile"); - }); - - 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("AccessFailedCount") - .HasColumnType("int"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("nvarchar(max)"); - - b.Property("CreateDate") - .HasColumnType("datetime2"); - - b.Property("Email") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.Property("EmailConfirmed") - .HasColumnType("bit"); - - b.Property("FirstName") - .HasColumnType("nvarchar(max)"); - - b.Property("LockoutEnabled") - .HasColumnType("bit"); - - b.Property("LockoutEnd") - .HasColumnType("datetimeoffset"); - - b.Property("NormalizedEmail") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.Property("NormalizedUserName") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.Property("PasswordHash") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumber") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumberConfirmed") - .HasColumnType("bit"); - - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); - - b.Property("SecurityStamp") - .HasColumnType("nvarchar(max)"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("SureName") - .HasColumnType("nvarchar(max)"); - - b.Property("TwoFactorEnabled") - .HasColumnType("bit"); - - b.Property("UserName") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); - - b.HasIndex("RImageId"); - - b.ToTable("AspNetUsers"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RCaptchaImage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("DateTime") - .HasColumnType("datetime2"); - - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); - - b.Property("Value") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("RImageId"); - - b.ToTable("CaptchaImages"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RPermission", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("OperationShortName") - .HasColumnType("nvarchar(max)"); - - b.Property("RAppRoleId") - .HasColumnType("uniqueidentifier"); - - b.Property("SecurableItemShortName") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("RAppRoleId"); - - b.ToTable("Permissions"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RTemporaryUserSession", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientAppName") - .HasColumnType("nvarchar(max)"); - - b.Property("ClientIPAddress") - .HasColumnType("nvarchar(max)"); - - b.Property("Language") - .HasColumnType("nvarchar(max)"); - - b.Property("LastRenewal") - .HasColumnType("datetime2"); - - b.Property("LoginTime") - .HasColumnType("datetime2"); - - b.Property("RAppUserId") - .HasColumnType("uniqueidentifier"); - - b.Property("Token") - .HasColumnType("nvarchar(max)"); - - b.Property("ValidUntil") - .HasColumnType("datetime2"); - - b.HasKey("Id"); - - b.HasIndex("RAppUserId"); - - b.ToTable("Sessions"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RVerifyQueueItem", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientAppName") - .HasColumnType("nvarchar(max)"); - - b.Property("ClientIPAddress") - .HasColumnType("nvarchar(max)"); - - b.Property("DateTime") - .HasColumnType("datetime2"); - - b.Property("Email") - .HasColumnType("nvarchar(max)"); - - b.Property("Language") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumber") - .HasColumnType("nvarchar(max)"); - - b.Property("QueueType") - .HasColumnType("int"); - - b.Property("Secret") - .HasColumnType("nvarchar(450)"); - - b.HasKey("Id"); - - b.HasIndex("Secret") - .IsUnique() - .HasFilter("[Secret] IS NOT NULL"); - - b.ToTable("VerifyQueueItems"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Image.RImage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ContentType") - .HasColumnType("nvarchar(max)"); - - b.Property("DataTime") - .HasColumnType("datetime2"); - - b.Property("Discriminator") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("FileSizeInBytes") - .HasColumnType("bigint"); - - b.Property("FolderName") - .HasColumnType("nvarchar(max)"); - - b.Property("ImageHeight") - .HasColumnType("int"); - - b.Property("ImageWidth") - .HasColumnType("int"); - - b.Property("LastModified") - .HasColumnType("datetime2"); - - b.Property("OriginalFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("StoredFileName") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("GeneralImages"); - - b.HasDiscriminator("Discriminator").HasValue("RImage"); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RPictureFile", b => - { - b.HasBaseType("RSecurityBackend.Models.Image.RImage"); - - b.Property("Description") - .HasColumnType("nvarchar(max)"); - - b.Property("DescriptionInEnglish") - .HasColumnType("nvarchar(max)"); - - b.Property("LastModifiedMeta") - .HasColumnType("datetime2"); - - b.Property("NormalSizeImageHeight") - .HasColumnType("int"); - - b.Property("NormalSizeImageStoredFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("NormalSizeImageWidth") - .HasColumnType("int"); - - b.Property("Order") - .HasColumnType("int"); - - b.Property("RArtifactItemRecordId") - .HasColumnType("uniqueidentifier"); - - b.Property("SrcUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("ThumbnailImageHeight") - .HasColumnType("int"); - - b.Property("ThumbnailImageStoredFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("ThumbnailImageWidth") - .HasColumnType("int"); - - b.Property("Title") - .HasColumnType("nvarchar(max)"); - - b.Property("TitleInEnglish") - .HasColumnType("nvarchar(max)"); - - b.HasIndex("RArtifactItemRecordId"); - - b.HasDiscriminator().HasValue("RPictureFile"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactItemRecord", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", null) - .WithMany("Items") - .HasForeignKey("RArtifactMasterRecordId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactMasterRecord", b => - { - b.HasOne("RMuseum.Models.Artifact.RPictureFile", "CoverImage") - .WithMany() - .HasForeignKey("CoverImageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RTagValue", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", null) - .WithMany("Tags") - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", null) - .WithMany("Tags") - .HasForeignKey("RArtifactMasterRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RTag", "RTag") - .WithMany() - .HasForeignKey("RTagId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Bookmark.RUserBookmark", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "RArtifactItemRecord") - .WithMany() - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "RArtifactMasterRecord") - .WithMany() - .HasForeignKey("RArtifactMasterRecordId"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.PoemNarration", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Owner") - .WithMany() - .HasForeignKey("OwnerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.UserNarrationProfile", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.GanjoorLink", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "Item") - .WithMany() - .HasForeignKey("ItemId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") - .WithMany() - .HasForeignKey("SuggestedById") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.PinterestLink", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "Item") - .WithMany() - .HasForeignKey("ItemId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") - .WithMany() - .HasForeignKey("SuggestedById"); - }); - - modelBuilder.Entity("RMuseum.Models.ImportJob.ImportJob", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId"); - }); - - modelBuilder.Entity("RMuseum.Models.Note.RUserNote", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "RArtifactItemRecord") - .WithMany() - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "RArtifactMasterRecord") - .WithMany() - .HasForeignKey("RArtifactMasterRecordId"); - - b.HasOne("RMuseum.Models.Note.RUserNote", "ReferenceNote") - .WithMany() - .HasForeignKey("ReferenceNoteId"); - }); - - modelBuilder.Entity("RMuseum.Models.Notification.RUserNotification", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSession", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId"); - }); - - modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSessionFile", b => - { - b.HasOne("RMuseum.Models.UploadSession.UploadSession", null) - .WithMany("UploadedFiles") - .HasForeignKey("UploadSessionId"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RAppUser", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RCaptchaImage", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RPermission", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany("Permissions") - .HasForeignKey("RAppRoleId"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RTemporaryUserSession", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RPictureFile", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", null) - .WithMany("Images") - .HasForeignKey("RArtifactItemRecordId"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/RMuseum/Migrations/20200913163614_UploadNarration.cs b/RMuseum/Migrations/20200913163614_UploadNarration.cs deleted file mode 100644 index 03efc8cc..00000000 --- a/RMuseum/Migrations/20200913163614_UploadNarration.cs +++ /dev/null @@ -1,115 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; - -namespace RMuseum.Migrations -{ - public partial class UploadNarration : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "UploadSessions", - columns: table => new - { - Id = table.Column(nullable: false), - SessionType = table.Column(nullable: false), - UserId = table.Column(nullable: true), - UseId = table.Column(nullable: false), - UploadStartTime = table.Column(nullable: false), - UploadEndTime = table.Column(nullable: false), - ProcessStartTime = table.Column(nullable: false), - ProcessEndTime = table.Column(nullable: false), - ProcessProgress = table.Column(nullable: false), - Status = table.Column(nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_UploadSessions", x => x.Id); - table.ForeignKey( - name: "FK_UploadSessions_AspNetUsers_UserId", - column: x => x.UserId, - principalTable: "AspNetUsers", - principalColumn: "Id", - onDelete: ReferentialAction.Restrict); - }); - - migrationBuilder.CreateTable( - name: "UserNarrationProfiles", - columns: table => new - { - Id = table.Column(nullable: false), - UserId = table.Column(nullable: false), - FileSuffixWithoutDash = table.Column(nullable: true), - ArtistName = table.Column(nullable: true), - ArtistUrl = table.Column(nullable: true), - AudioSrc = table.Column(nullable: true), - AudioSrcUrl = table.Column(nullable: true), - IsDefault = table.Column(nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_UserNarrationProfiles", x => x.Id); - table.ForeignKey( - name: "FK_UserNarrationProfiles_AspNetUsers_UserId", - column: x => x.UserId, - principalTable: "AspNetUsers", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "UploadSessionFile", - columns: table => new - { - Id = table.Column(nullable: false), - ContentDisposition = table.Column(nullable: true), - ContentType = table.Column(nullable: true), - FileName = table.Column(nullable: true), - Length = table.Column(nullable: false), - Name = table.Column(nullable: true), - FilePath = table.Column(nullable: true), - MP3FileCheckSum = table.Column(nullable: true), - ProcessResult = table.Column(nullable: false), - ProcessResultMsg = table.Column(nullable: true), - UploadSessionId = table.Column(nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_UploadSessionFile", x => x.Id); - table.ForeignKey( - name: "FK_UploadSessionFile_UploadSessions_UploadSessionId", - column: x => x.UploadSessionId, - principalTable: "UploadSessions", - principalColumn: "Id", - onDelete: ReferentialAction.Restrict); - }); - - migrationBuilder.CreateIndex( - name: "IX_UploadSessionFile_UploadSessionId", - table: "UploadSessionFile", - column: "UploadSessionId"); - - migrationBuilder.CreateIndex( - name: "IX_UploadSessions_UserId", - table: "UploadSessions", - column: "UserId"); - - migrationBuilder.CreateIndex( - name: "IX_UserNarrationProfiles_UserId", - table: "UserNarrationProfiles", - column: "UserId"); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "UploadSessionFile"); - - migrationBuilder.DropTable( - name: "UserNarrationProfiles"); - - migrationBuilder.DropTable( - name: "UploadSessions"); - } - } -} diff --git a/RMuseum/Migrations/20201004155741_UploadedFiles.Designer.cs b/RMuseum/Migrations/20201004155741_UploadedFiles.Designer.cs deleted file mode 100644 index bbc1422c..00000000 --- a/RMuseum/Migrations/20201004155741_UploadedFiles.Designer.cs +++ /dev/null @@ -1,1406 +0,0 @@ -// -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("20201004155741_UploadedFiles")] - partial class UploadedFiles - { - 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.GanjoorAudio.PoemNarration", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - 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("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("ReviewStatus") - .HasColumnType("int"); - - b.Property("SoundFilesFolder") - .HasColumnType("nvarchar(max)"); - - b.Property("UploadDate") - .HasColumnType("datetime2"); - - b.HasKey("Id"); - - b.HasIndex("OwnerId"); - - b.ToTable("AudioFiles"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.UserNarrationProfile", 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("UserId") - .HasColumnType("uniqueidentifier"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("UserNarrationProfiles"); - }); - - 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("AccessFailedCount") - .HasColumnType("int"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("nvarchar(max)"); - - b.Property("CreateDate") - .HasColumnType("datetime2"); - - b.Property("Email") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.Property("EmailConfirmed") - .HasColumnType("bit"); - - b.Property("FirstName") - .HasColumnType("nvarchar(max)"); - - b.Property("LockoutEnabled") - .HasColumnType("bit"); - - b.Property("LockoutEnd") - .HasColumnType("datetimeoffset"); - - b.Property("NormalizedEmail") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.Property("NormalizedUserName") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.Property("PasswordHash") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumber") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumberConfirmed") - .HasColumnType("bit"); - - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); - - b.Property("SecurityStamp") - .HasColumnType("nvarchar(max)"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("SureName") - .HasColumnType("nvarchar(max)"); - - b.Property("TwoFactorEnabled") - .HasColumnType("bit"); - - b.Property("UserName") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); - - b.HasIndex("RImageId"); - - b.ToTable("AspNetUsers"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RCaptchaImage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("DateTime") - .HasColumnType("datetime2"); - - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); - - b.Property("Value") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("RImageId"); - - b.ToTable("CaptchaImages"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RPermission", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("OperationShortName") - .HasColumnType("nvarchar(max)"); - - b.Property("RAppRoleId") - .HasColumnType("uniqueidentifier"); - - b.Property("SecurableItemShortName") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("RAppRoleId"); - - b.ToTable("Permissions"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RTemporaryUserSession", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientAppName") - .HasColumnType("nvarchar(max)"); - - b.Property("ClientIPAddress") - .HasColumnType("nvarchar(max)"); - - b.Property("Language") - .HasColumnType("nvarchar(max)"); - - b.Property("LastRenewal") - .HasColumnType("datetime2"); - - b.Property("LoginTime") - .HasColumnType("datetime2"); - - b.Property("RAppUserId") - .HasColumnType("uniqueidentifier"); - - b.Property("Token") - .HasColumnType("nvarchar(max)"); - - b.Property("ValidUntil") - .HasColumnType("datetime2"); - - b.HasKey("Id"); - - b.HasIndex("RAppUserId"); - - b.ToTable("Sessions"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RVerifyQueueItem", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientAppName") - .HasColumnType("nvarchar(max)"); - - b.Property("ClientIPAddress") - .HasColumnType("nvarchar(max)"); - - b.Property("DateTime") - .HasColumnType("datetime2"); - - b.Property("Email") - .HasColumnType("nvarchar(max)"); - - b.Property("Language") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumber") - .HasColumnType("nvarchar(max)"); - - b.Property("QueueType") - .HasColumnType("int"); - - b.Property("Secret") - .HasColumnType("nvarchar(450)"); - - b.HasKey("Id"); - - b.HasIndex("Secret") - .IsUnique() - .HasFilter("[Secret] IS NOT NULL"); - - b.ToTable("VerifyQueueItems"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Image.RImage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ContentType") - .HasColumnType("nvarchar(max)"); - - b.Property("DataTime") - .HasColumnType("datetime2"); - - b.Property("Discriminator") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("FileSizeInBytes") - .HasColumnType("bigint"); - - b.Property("FolderName") - .HasColumnType("nvarchar(max)"); - - b.Property("ImageHeight") - .HasColumnType("int"); - - b.Property("ImageWidth") - .HasColumnType("int"); - - b.Property("LastModified") - .HasColumnType("datetime2"); - - b.Property("OriginalFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("StoredFileName") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("GeneralImages"); - - b.HasDiscriminator("Discriminator").HasValue("RImage"); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RPictureFile", b => - { - b.HasBaseType("RSecurityBackend.Models.Image.RImage"); - - b.Property("Description") - .HasColumnType("nvarchar(max)"); - - b.Property("DescriptionInEnglish") - .HasColumnType("nvarchar(max)"); - - b.Property("LastModifiedMeta") - .HasColumnType("datetime2"); - - b.Property("NormalSizeImageHeight") - .HasColumnType("int"); - - b.Property("NormalSizeImageStoredFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("NormalSizeImageWidth") - .HasColumnType("int"); - - b.Property("Order") - .HasColumnType("int"); - - b.Property("RArtifactItemRecordId") - .HasColumnType("uniqueidentifier"); - - b.Property("SrcUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("ThumbnailImageHeight") - .HasColumnType("int"); - - b.Property("ThumbnailImageStoredFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("ThumbnailImageWidth") - .HasColumnType("int"); - - b.Property("Title") - .HasColumnType("nvarchar(max)"); - - b.Property("TitleInEnglish") - .HasColumnType("nvarchar(max)"); - - b.HasIndex("RArtifactItemRecordId"); - - b.HasDiscriminator().HasValue("RPictureFile"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactItemRecord", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", null) - .WithMany("Items") - .HasForeignKey("RArtifactMasterRecordId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactMasterRecord", b => - { - b.HasOne("RMuseum.Models.Artifact.RPictureFile", "CoverImage") - .WithMany() - .HasForeignKey("CoverImageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RTagValue", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", null) - .WithMany("Tags") - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", null) - .WithMany("Tags") - .HasForeignKey("RArtifactMasterRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RTag", "RTag") - .WithMany() - .HasForeignKey("RTagId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Bookmark.RUserBookmark", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "RArtifactItemRecord") - .WithMany() - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "RArtifactMasterRecord") - .WithMany() - .HasForeignKey("RArtifactMasterRecordId"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.PoemNarration", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Owner") - .WithMany() - .HasForeignKey("OwnerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.UserNarrationProfile", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.GanjoorLink", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "Item") - .WithMany() - .HasForeignKey("ItemId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") - .WithMany() - .HasForeignKey("SuggestedById") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.PinterestLink", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "Item") - .WithMany() - .HasForeignKey("ItemId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") - .WithMany() - .HasForeignKey("SuggestedById"); - }); - - modelBuilder.Entity("RMuseum.Models.ImportJob.ImportJob", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId"); - }); - - modelBuilder.Entity("RMuseum.Models.Note.RUserNote", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "RArtifactItemRecord") - .WithMany() - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "RArtifactMasterRecord") - .WithMany() - .HasForeignKey("RArtifactMasterRecordId"); - - b.HasOne("RMuseum.Models.Note.RUserNote", "ReferenceNote") - .WithMany() - .HasForeignKey("ReferenceNoteId"); - }); - - modelBuilder.Entity("RMuseum.Models.Notification.RUserNotification", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSession", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId"); - }); - - modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSessionFile", b => - { - b.HasOne("RMuseum.Models.UploadSession.UploadSession", null) - .WithMany("UploadedFiles") - .HasForeignKey("UploadSessionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RAppUser", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RCaptchaImage", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RPermission", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany("Permissions") - .HasForeignKey("RAppRoleId"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RTemporaryUserSession", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RPictureFile", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", null) - .WithMany("Images") - .HasForeignKey("RArtifactItemRecordId"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/RMuseum/Migrations/20201004155741_UploadedFiles.cs b/RMuseum/Migrations/20201004155741_UploadedFiles.cs deleted file mode 100644 index 8d813dc7..00000000 --- a/RMuseum/Migrations/20201004155741_UploadedFiles.cs +++ /dev/null @@ -1,89 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; - -namespace RMuseum.Migrations -{ - public partial class UploadedFiles : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_UploadSessionFile_UploadSessions_UploadSessionId", - table: "UploadSessionFile"); - - migrationBuilder.DropPrimaryKey( - name: "PK_UploadSessionFile", - table: "UploadSessionFile"); - - migrationBuilder.RenameTable( - name: "UploadSessionFile", - newName: "UploadedFiles"); - - migrationBuilder.RenameIndex( - name: "IX_UploadSessionFile_UploadSessionId", - table: "UploadedFiles", - newName: "IX_UploadedFiles_UploadSessionId"); - - migrationBuilder.AlterColumn( - name: "UploadSessionId", - table: "UploadedFiles", - nullable: false, - oldClrType: typeof(Guid), - oldType: "uniqueidentifier", - oldNullable: true); - - migrationBuilder.AddPrimaryKey( - name: "PK_UploadedFiles", - table: "UploadedFiles", - column: "Id"); - - migrationBuilder.AddForeignKey( - name: "FK_UploadedFiles_UploadSessions_UploadSessionId", - table: "UploadedFiles", - column: "UploadSessionId", - principalTable: "UploadSessions", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_UploadedFiles_UploadSessions_UploadSessionId", - table: "UploadedFiles"); - - migrationBuilder.DropPrimaryKey( - name: "PK_UploadedFiles", - table: "UploadedFiles"); - - migrationBuilder.RenameTable( - name: "UploadedFiles", - newName: "UploadSessionFile"); - - migrationBuilder.RenameIndex( - name: "IX_UploadedFiles_UploadSessionId", - table: "UploadSessionFile", - newName: "IX_UploadSessionFile_UploadSessionId"); - - migrationBuilder.AlterColumn( - name: "UploadSessionId", - table: "UploadSessionFile", - type: "uniqueidentifier", - nullable: true, - oldClrType: typeof(Guid)); - - migrationBuilder.AddPrimaryKey( - name: "PK_UploadSessionFile", - table: "UploadSessionFile", - column: "Id"); - - migrationBuilder.AddForeignKey( - name: "FK_UploadSessionFile_UploadSessions_UploadSessionId", - table: "UploadSessionFile", - column: "UploadSessionId", - principalTable: "UploadSessions", - principalColumn: "Id", - onDelete: ReferentialAction.Restrict); - } - } -} diff --git a/RMuseum/Migrations/20201006161604_ReviewFields.Designer.cs b/RMuseum/Migrations/20201006161604_ReviewFields.Designer.cs deleted file mode 100644 index da02b819..00000000 --- a/RMuseum/Migrations/20201006161604_ReviewFields.Designer.cs +++ /dev/null @@ -1,1418 +0,0 @@ -// -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("20201006161604_ReviewFields")] - partial class ReviewFields - { - 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.GanjoorAudio.PoemNarration", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - 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("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("OwnerId"); - - b.HasIndex("ReviewerId"); - - b.ToTable("AudioFiles"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.UserNarrationProfile", 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("UserId") - .HasColumnType("uniqueidentifier"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("UserNarrationProfiles"); - }); - - 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("AccessFailedCount") - .HasColumnType("int"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("nvarchar(max)"); - - b.Property("CreateDate") - .HasColumnType("datetime2"); - - b.Property("Email") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.Property("EmailConfirmed") - .HasColumnType("bit"); - - b.Property("FirstName") - .HasColumnType("nvarchar(max)"); - - b.Property("LockoutEnabled") - .HasColumnType("bit"); - - b.Property("LockoutEnd") - .HasColumnType("datetimeoffset"); - - b.Property("NormalizedEmail") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.Property("NormalizedUserName") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.Property("PasswordHash") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumber") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumberConfirmed") - .HasColumnType("bit"); - - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); - - b.Property("SecurityStamp") - .HasColumnType("nvarchar(max)"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("SureName") - .HasColumnType("nvarchar(max)"); - - b.Property("TwoFactorEnabled") - .HasColumnType("bit"); - - b.Property("UserName") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); - - b.HasIndex("RImageId"); - - b.ToTable("AspNetUsers"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RCaptchaImage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("DateTime") - .HasColumnType("datetime2"); - - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); - - b.Property("Value") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("RImageId"); - - b.ToTable("CaptchaImages"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RPermission", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("OperationShortName") - .HasColumnType("nvarchar(max)"); - - b.Property("RAppRoleId") - .HasColumnType("uniqueidentifier"); - - b.Property("SecurableItemShortName") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("RAppRoleId"); - - b.ToTable("Permissions"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RTemporaryUserSession", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientAppName") - .HasColumnType("nvarchar(max)"); - - b.Property("ClientIPAddress") - .HasColumnType("nvarchar(max)"); - - b.Property("Language") - .HasColumnType("nvarchar(max)"); - - b.Property("LastRenewal") - .HasColumnType("datetime2"); - - b.Property("LoginTime") - .HasColumnType("datetime2"); - - b.Property("RAppUserId") - .HasColumnType("uniqueidentifier"); - - b.Property("Token") - .HasColumnType("nvarchar(max)"); - - b.Property("ValidUntil") - .HasColumnType("datetime2"); - - b.HasKey("Id"); - - b.HasIndex("RAppUserId"); - - b.ToTable("Sessions"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RVerifyQueueItem", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientAppName") - .HasColumnType("nvarchar(max)"); - - b.Property("ClientIPAddress") - .HasColumnType("nvarchar(max)"); - - b.Property("DateTime") - .HasColumnType("datetime2"); - - b.Property("Email") - .HasColumnType("nvarchar(max)"); - - b.Property("Language") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumber") - .HasColumnType("nvarchar(max)"); - - b.Property("QueueType") - .HasColumnType("int"); - - b.Property("Secret") - .HasColumnType("nvarchar(450)"); - - b.HasKey("Id"); - - b.HasIndex("Secret") - .IsUnique() - .HasFilter("[Secret] IS NOT NULL"); - - b.ToTable("VerifyQueueItems"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Image.RImage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ContentType") - .HasColumnType("nvarchar(max)"); - - b.Property("DataTime") - .HasColumnType("datetime2"); - - b.Property("Discriminator") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("FileSizeInBytes") - .HasColumnType("bigint"); - - b.Property("FolderName") - .HasColumnType("nvarchar(max)"); - - b.Property("ImageHeight") - .HasColumnType("int"); - - b.Property("ImageWidth") - .HasColumnType("int"); - - b.Property("LastModified") - .HasColumnType("datetime2"); - - b.Property("OriginalFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("StoredFileName") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("GeneralImages"); - - b.HasDiscriminator("Discriminator").HasValue("RImage"); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RPictureFile", b => - { - b.HasBaseType("RSecurityBackend.Models.Image.RImage"); - - b.Property("Description") - .HasColumnType("nvarchar(max)"); - - b.Property("DescriptionInEnglish") - .HasColumnType("nvarchar(max)"); - - b.Property("LastModifiedMeta") - .HasColumnType("datetime2"); - - b.Property("NormalSizeImageHeight") - .HasColumnType("int"); - - b.Property("NormalSizeImageStoredFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("NormalSizeImageWidth") - .HasColumnType("int"); - - b.Property("Order") - .HasColumnType("int"); - - b.Property("RArtifactItemRecordId") - .HasColumnType("uniqueidentifier"); - - b.Property("SrcUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("ThumbnailImageHeight") - .HasColumnType("int"); - - b.Property("ThumbnailImageStoredFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("ThumbnailImageWidth") - .HasColumnType("int"); - - b.Property("Title") - .HasColumnType("nvarchar(max)"); - - b.Property("TitleInEnglish") - .HasColumnType("nvarchar(max)"); - - b.HasIndex("RArtifactItemRecordId"); - - b.HasDiscriminator().HasValue("RPictureFile"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactItemRecord", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", null) - .WithMany("Items") - .HasForeignKey("RArtifactMasterRecordId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactMasterRecord", b => - { - b.HasOne("RMuseum.Models.Artifact.RPictureFile", "CoverImage") - .WithMany() - .HasForeignKey("CoverImageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RTagValue", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", null) - .WithMany("Tags") - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", null) - .WithMany("Tags") - .HasForeignKey("RArtifactMasterRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RTag", "RTag") - .WithMany() - .HasForeignKey("RTagId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Bookmark.RUserBookmark", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "RArtifactItemRecord") - .WithMany() - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "RArtifactMasterRecord") - .WithMany() - .HasForeignKey("RArtifactMasterRecordId"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.PoemNarration", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Owner") - .WithMany() - .HasForeignKey("OwnerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.UserNarrationProfile", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.GanjoorLink", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "Item") - .WithMany() - .HasForeignKey("ItemId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") - .WithMany() - .HasForeignKey("SuggestedById") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.PinterestLink", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "Item") - .WithMany() - .HasForeignKey("ItemId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") - .WithMany() - .HasForeignKey("SuggestedById"); - }); - - modelBuilder.Entity("RMuseum.Models.ImportJob.ImportJob", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId"); - }); - - modelBuilder.Entity("RMuseum.Models.Note.RUserNote", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "RArtifactItemRecord") - .WithMany() - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "RArtifactMasterRecord") - .WithMany() - .HasForeignKey("RArtifactMasterRecordId"); - - b.HasOne("RMuseum.Models.Note.RUserNote", "ReferenceNote") - .WithMany() - .HasForeignKey("ReferenceNoteId"); - }); - - modelBuilder.Entity("RMuseum.Models.Notification.RUserNotification", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSession", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId"); - }); - - modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSessionFile", b => - { - b.HasOne("RMuseum.Models.UploadSession.UploadSession", null) - .WithMany("UploadedFiles") - .HasForeignKey("UploadSessionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RAppUser", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RCaptchaImage", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RPermission", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany("Permissions") - .HasForeignKey("RAppRoleId"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RTemporaryUserSession", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RPictureFile", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", null) - .WithMany("Images") - .HasForeignKey("RArtifactItemRecordId"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/RMuseum/Migrations/20201006161604_ReviewFields.cs b/RMuseum/Migrations/20201006161604_ReviewFields.cs deleted file mode 100644 index 5c9d3788..00000000 --- a/RMuseum/Migrations/20201006161604_ReviewFields.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; - -namespace RMuseum.Migrations -{ - public partial class ReviewFields : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AddColumn( - name: "ReviewMsg", - table: "AudioFiles", - nullable: true); - - migrationBuilder.AddColumn( - name: "ReviewerId", - table: "AudioFiles", - nullable: true); - - migrationBuilder.CreateIndex( - name: "IX_AudioFiles_ReviewerId", - table: "AudioFiles", - column: "ReviewerId"); - - migrationBuilder.AddForeignKey( - name: "FK_AudioFiles_AspNetUsers_ReviewerId", - table: "AudioFiles", - column: "ReviewerId", - principalTable: "AspNetUsers", - principalColumn: "Id", - onDelete: ReferentialAction.Restrict); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_AudioFiles_AspNetUsers_ReviewerId", - table: "AudioFiles"); - - migrationBuilder.DropIndex( - name: "IX_AudioFiles_ReviewerId", - table: "AudioFiles"); - - migrationBuilder.DropColumn( - name: "ReviewMsg", - table: "AudioFiles"); - - migrationBuilder.DropColumn( - name: "ReviewerId", - table: "AudioFiles"); - } - } -} diff --git a/RMuseum/Migrations/20201022150541_GanjoorStructures.Designer.cs b/RMuseum/Migrations/20201022150541_GanjoorStructures.Designer.cs deleted file mode 100644 index ef1dc0eb..00000000 --- a/RMuseum/Migrations/20201022150541_GanjoorStructures.Designer.cs +++ /dev/null @@ -1,1541 +0,0 @@ -// -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("20201022150541_GanjoorStructures")] - partial class GanjoorStructures - { - 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("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("ParentId"); - - b.HasIndex("PoetId"); - - b.ToTable("GanjoorCategories"); - }); - - 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("Title") - .HasColumnType("nvarchar(max)"); - - b.Property("UrlSlug") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("CatId"); - - 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.PoemNarration", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - 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("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("OwnerId"); - - b.HasIndex("ReviewerId"); - - b.ToTable("AudioFiles"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.UserNarrationProfile", 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("UserId") - .HasColumnType("uniqueidentifier"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("UserNarrationProfiles"); - }); - - 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("AccessFailedCount") - .HasColumnType("int"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("nvarchar(max)"); - - b.Property("CreateDate") - .HasColumnType("datetime2"); - - b.Property("Email") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.Property("EmailConfirmed") - .HasColumnType("bit"); - - b.Property("FirstName") - .HasColumnType("nvarchar(max)"); - - b.Property("LockoutEnabled") - .HasColumnType("bit"); - - b.Property("LockoutEnd") - .HasColumnType("datetimeoffset"); - - b.Property("NormalizedEmail") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.Property("NormalizedUserName") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.Property("PasswordHash") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumber") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumberConfirmed") - .HasColumnType("bit"); - - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); - - b.Property("SecurityStamp") - .HasColumnType("nvarchar(max)"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("SureName") - .HasColumnType("nvarchar(max)"); - - b.Property("TwoFactorEnabled") - .HasColumnType("bit"); - - b.Property("UserName") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); - - b.HasIndex("RImageId"); - - b.ToTable("AspNetUsers"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RCaptchaImage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("DateTime") - .HasColumnType("datetime2"); - - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); - - b.Property("Value") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("RImageId"); - - b.ToTable("CaptchaImages"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RPermission", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("OperationShortName") - .HasColumnType("nvarchar(max)"); - - b.Property("RAppRoleId") - .HasColumnType("uniqueidentifier"); - - b.Property("SecurableItemShortName") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("RAppRoleId"); - - b.ToTable("Permissions"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RTemporaryUserSession", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientAppName") - .HasColumnType("nvarchar(max)"); - - b.Property("ClientIPAddress") - .HasColumnType("nvarchar(max)"); - - b.Property("Language") - .HasColumnType("nvarchar(max)"); - - b.Property("LastRenewal") - .HasColumnType("datetime2"); - - b.Property("LoginTime") - .HasColumnType("datetime2"); - - b.Property("RAppUserId") - .HasColumnType("uniqueidentifier"); - - b.Property("Token") - .HasColumnType("nvarchar(max)"); - - b.Property("ValidUntil") - .HasColumnType("datetime2"); - - b.HasKey("Id"); - - b.HasIndex("RAppUserId"); - - b.ToTable("Sessions"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RVerifyQueueItem", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientAppName") - .HasColumnType("nvarchar(max)"); - - b.Property("ClientIPAddress") - .HasColumnType("nvarchar(max)"); - - b.Property("DateTime") - .HasColumnType("datetime2"); - - b.Property("Email") - .HasColumnType("nvarchar(max)"); - - b.Property("Language") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumber") - .HasColumnType("nvarchar(max)"); - - b.Property("QueueType") - .HasColumnType("int"); - - b.Property("Secret") - .HasColumnType("nvarchar(450)"); - - b.HasKey("Id"); - - b.HasIndex("Secret") - .IsUnique() - .HasFilter("[Secret] IS NOT NULL"); - - b.ToTable("VerifyQueueItems"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Image.RImage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ContentType") - .HasColumnType("nvarchar(max)"); - - b.Property("DataTime") - .HasColumnType("datetime2"); - - b.Property("Discriminator") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("FileSizeInBytes") - .HasColumnType("bigint"); - - b.Property("FolderName") - .HasColumnType("nvarchar(max)"); - - b.Property("ImageHeight") - .HasColumnType("int"); - - b.Property("ImageWidth") - .HasColumnType("int"); - - b.Property("LastModified") - .HasColumnType("datetime2"); - - b.Property("OriginalFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("StoredFileName") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("GeneralImages"); - - b.HasDiscriminator("Discriminator").HasValue("RImage"); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RPictureFile", b => - { - b.HasBaseType("RSecurityBackend.Models.Image.RImage"); - - b.Property("Description") - .HasColumnType("nvarchar(max)"); - - b.Property("DescriptionInEnglish") - .HasColumnType("nvarchar(max)"); - - b.Property("LastModifiedMeta") - .HasColumnType("datetime2"); - - b.Property("NormalSizeImageHeight") - .HasColumnType("int"); - - b.Property("NormalSizeImageStoredFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("NormalSizeImageWidth") - .HasColumnType("int"); - - b.Property("Order") - .HasColumnType("int"); - - b.Property("RArtifactItemRecordId") - .HasColumnType("uniqueidentifier"); - - b.Property("SrcUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("ThumbnailImageHeight") - .HasColumnType("int"); - - b.Property("ThumbnailImageStoredFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("ThumbnailImageWidth") - .HasColumnType("int"); - - b.Property("Title") - .HasColumnType("nvarchar(max)"); - - b.Property("TitleInEnglish") - .HasColumnType("nvarchar(max)"); - - b.HasIndex("RArtifactItemRecordId"); - - b.HasDiscriminator().HasValue("RPictureFile"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactItemRecord", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", null) - .WithMany("Items") - .HasForeignKey("RArtifactMasterRecordId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactMasterRecord", b => - { - b.HasOne("RMuseum.Models.Artifact.RPictureFile", "CoverImage") - .WithMany() - .HasForeignKey("CoverImageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RTagValue", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", null) - .WithMany("Tags") - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", null) - .WithMany("Tags") - .HasForeignKey("RArtifactMasterRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RTag", "RTag") - .WithMany() - .HasForeignKey("RTagId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Bookmark.RUserBookmark", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "RArtifactItemRecord") - .WithMany() - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "RArtifactMasterRecord") - .WithMany() - .HasForeignKey("RArtifactMasterRecordId"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorCat", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorCat", "Parent") - .WithMany() - .HasForeignKey("ParentId"); - - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoet", "Poet") - .WithMany() - .HasForeignKey("PoetId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoem", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorCat", "Cat") - .WithMany() - .HasForeignKey("CatId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorVerse", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoem", "Poem") - .WithMany() - .HasForeignKey("PoemId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.PoemNarration", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Owner") - .WithMany() - .HasForeignKey("OwnerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.UserNarrationProfile", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.GanjoorLink", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "Item") - .WithMany() - .HasForeignKey("ItemId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") - .WithMany() - .HasForeignKey("SuggestedById") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.PinterestLink", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "Item") - .WithMany() - .HasForeignKey("ItemId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") - .WithMany() - .HasForeignKey("SuggestedById"); - }); - - modelBuilder.Entity("RMuseum.Models.ImportJob.ImportJob", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId"); - }); - - modelBuilder.Entity("RMuseum.Models.Note.RUserNote", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "RArtifactItemRecord") - .WithMany() - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "RArtifactMasterRecord") - .WithMany() - .HasForeignKey("RArtifactMasterRecordId"); - - b.HasOne("RMuseum.Models.Note.RUserNote", "ReferenceNote") - .WithMany() - .HasForeignKey("ReferenceNoteId"); - }); - - modelBuilder.Entity("RMuseum.Models.Notification.RUserNotification", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSession", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId"); - }); - - modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSessionFile", b => - { - b.HasOne("RMuseum.Models.UploadSession.UploadSession", null) - .WithMany("UploadedFiles") - .HasForeignKey("UploadSessionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RAppUser", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RCaptchaImage", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RPermission", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany("Permissions") - .HasForeignKey("RAppRoleId"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RTemporaryUserSession", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RPictureFile", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", null) - .WithMany("Images") - .HasForeignKey("RArtifactItemRecordId"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/RMuseum/Migrations/20201022150541_GanjoorStructures.cs b/RMuseum/Migrations/20201022150541_GanjoorStructures.cs deleted file mode 100644 index d1afb2e9..00000000 --- a/RMuseum/Migrations/20201022150541_GanjoorStructures.cs +++ /dev/null @@ -1,128 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace RMuseum.Migrations -{ - public partial class GanjoorStructures : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "GanjoorPoets", - columns: table => new - { - Id = table.Column(nullable: false), - Name = table.Column(nullable: true), - Description = table.Column(nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_GanjoorPoets", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "GanjoorCategories", - columns: table => new - { - Id = table.Column(nullable: false), - PoetId = table.Column(nullable: false), - Title = table.Column(nullable: true), - ParentId = table.Column(nullable: true), - UrlSlug = table.Column(nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_GanjoorCategories", x => x.Id); - table.ForeignKey( - name: "FK_GanjoorCategories_GanjoorCategories_ParentId", - column: x => x.ParentId, - principalTable: "GanjoorCategories", - principalColumn: "Id", - onDelete: ReferentialAction.Restrict); - table.ForeignKey( - name: "FK_GanjoorCategories_GanjoorPoets_PoetId", - column: x => x.PoetId, - principalTable: "GanjoorPoets", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "GanjoorPoems", - columns: table => new - { - Id = table.Column(nullable: false), - CatId = table.Column(nullable: false), - Title = table.Column(nullable: true), - FullTitle = table.Column(nullable: true), - UrlSlug = table.Column(nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_GanjoorPoems", x => x.Id); - table.ForeignKey( - name: "FK_GanjoorPoems_GanjoorCategories_CatId", - column: x => x.CatId, - principalTable: "GanjoorCategories", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "GanjoorVerses", - columns: table => new - { - Id = table.Column(nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - PoemId = table.Column(nullable: false), - VOrder = table.Column(nullable: false), - VersePosition = table.Column(nullable: false), - Text = table.Column(nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_GanjoorVerses", x => x.Id); - table.ForeignKey( - name: "FK_GanjoorVerses_GanjoorPoems_PoemId", - column: x => x.PoemId, - principalTable: "GanjoorPoems", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateIndex( - name: "IX_GanjoorCategories_ParentId", - table: "GanjoorCategories", - column: "ParentId"); - - migrationBuilder.CreateIndex( - name: "IX_GanjoorCategories_PoetId", - table: "GanjoorCategories", - column: "PoetId"); - - migrationBuilder.CreateIndex( - name: "IX_GanjoorPoems_CatId", - table: "GanjoorPoems", - column: "CatId"); - - migrationBuilder.CreateIndex( - name: "IX_GanjoorVerses_PoemId", - table: "GanjoorVerses", - column: "PoemId"); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "GanjoorVerses"); - - migrationBuilder.DropTable( - name: "GanjoorPoems"); - - migrationBuilder.DropTable( - name: "GanjoorCategories"); - - migrationBuilder.DropTable( - name: "GanjoorPoets"); - } - } -} diff --git a/RMuseum/Migrations/20201023091130_GanjoorCachingFields.Designer.cs b/RMuseum/Migrations/20201023091130_GanjoorCachingFields.Designer.cs deleted file mode 100644 index 7054c1a8..00000000 --- a/RMuseum/Migrations/20201023091130_GanjoorCachingFields.Designer.cs +++ /dev/null @@ -1,1547 +0,0 @@ -// -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("20201023091130_GanjoorCachingFields")] - partial class GanjoorCachingFields - { - 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(max)"); - - 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("ParentId"); - - b.HasIndex("PoetId"); - - b.ToTable("GanjoorCategories"); - }); - - 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(max)"); - - b.Property("Title") - .HasColumnType("nvarchar(max)"); - - b.Property("UrlSlug") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("CatId"); - - 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.PoemNarration", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - 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("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("OwnerId"); - - b.HasIndex("ReviewerId"); - - b.ToTable("AudioFiles"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.UserNarrationProfile", 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("UserId") - .HasColumnType("uniqueidentifier"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("UserNarrationProfiles"); - }); - - 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("AccessFailedCount") - .HasColumnType("int"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("nvarchar(max)"); - - b.Property("CreateDate") - .HasColumnType("datetime2"); - - b.Property("Email") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.Property("EmailConfirmed") - .HasColumnType("bit"); - - b.Property("FirstName") - .HasColumnType("nvarchar(max)"); - - b.Property("LockoutEnabled") - .HasColumnType("bit"); - - b.Property("LockoutEnd") - .HasColumnType("datetimeoffset"); - - b.Property("NormalizedEmail") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.Property("NormalizedUserName") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.Property("PasswordHash") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumber") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumberConfirmed") - .HasColumnType("bit"); - - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); - - b.Property("SecurityStamp") - .HasColumnType("nvarchar(max)"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("SureName") - .HasColumnType("nvarchar(max)"); - - b.Property("TwoFactorEnabled") - .HasColumnType("bit"); - - b.Property("UserName") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); - - b.HasIndex("RImageId"); - - b.ToTable("AspNetUsers"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RCaptchaImage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("DateTime") - .HasColumnType("datetime2"); - - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); - - b.Property("Value") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("RImageId"); - - b.ToTable("CaptchaImages"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RPermission", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("OperationShortName") - .HasColumnType("nvarchar(max)"); - - b.Property("RAppRoleId") - .HasColumnType("uniqueidentifier"); - - b.Property("SecurableItemShortName") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("RAppRoleId"); - - b.ToTable("Permissions"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RTemporaryUserSession", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientAppName") - .HasColumnType("nvarchar(max)"); - - b.Property("ClientIPAddress") - .HasColumnType("nvarchar(max)"); - - b.Property("Language") - .HasColumnType("nvarchar(max)"); - - b.Property("LastRenewal") - .HasColumnType("datetime2"); - - b.Property("LoginTime") - .HasColumnType("datetime2"); - - b.Property("RAppUserId") - .HasColumnType("uniqueidentifier"); - - b.Property("Token") - .HasColumnType("nvarchar(max)"); - - b.Property("ValidUntil") - .HasColumnType("datetime2"); - - b.HasKey("Id"); - - b.HasIndex("RAppUserId"); - - b.ToTable("Sessions"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RVerifyQueueItem", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientAppName") - .HasColumnType("nvarchar(max)"); - - b.Property("ClientIPAddress") - .HasColumnType("nvarchar(max)"); - - b.Property("DateTime") - .HasColumnType("datetime2"); - - b.Property("Email") - .HasColumnType("nvarchar(max)"); - - b.Property("Language") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumber") - .HasColumnType("nvarchar(max)"); - - b.Property("QueueType") - .HasColumnType("int"); - - b.Property("Secret") - .HasColumnType("nvarchar(450)"); - - b.HasKey("Id"); - - b.HasIndex("Secret") - .IsUnique() - .HasFilter("[Secret] IS NOT NULL"); - - b.ToTable("VerifyQueueItems"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Image.RImage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ContentType") - .HasColumnType("nvarchar(max)"); - - b.Property("DataTime") - .HasColumnType("datetime2"); - - b.Property("Discriminator") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("FileSizeInBytes") - .HasColumnType("bigint"); - - b.Property("FolderName") - .HasColumnType("nvarchar(max)"); - - b.Property("ImageHeight") - .HasColumnType("int"); - - b.Property("ImageWidth") - .HasColumnType("int"); - - b.Property("LastModified") - .HasColumnType("datetime2"); - - b.Property("OriginalFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("StoredFileName") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("GeneralImages"); - - b.HasDiscriminator("Discriminator").HasValue("RImage"); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RPictureFile", b => - { - b.HasBaseType("RSecurityBackend.Models.Image.RImage"); - - b.Property("Description") - .HasColumnType("nvarchar(max)"); - - b.Property("DescriptionInEnglish") - .HasColumnType("nvarchar(max)"); - - b.Property("LastModifiedMeta") - .HasColumnType("datetime2"); - - b.Property("NormalSizeImageHeight") - .HasColumnType("int"); - - b.Property("NormalSizeImageStoredFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("NormalSizeImageWidth") - .HasColumnType("int"); - - b.Property("Order") - .HasColumnType("int"); - - b.Property("RArtifactItemRecordId") - .HasColumnType("uniqueidentifier"); - - b.Property("SrcUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("ThumbnailImageHeight") - .HasColumnType("int"); - - b.Property("ThumbnailImageStoredFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("ThumbnailImageWidth") - .HasColumnType("int"); - - b.Property("Title") - .HasColumnType("nvarchar(max)"); - - b.Property("TitleInEnglish") - .HasColumnType("nvarchar(max)"); - - b.HasIndex("RArtifactItemRecordId"); - - b.HasDiscriminator().HasValue("RPictureFile"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactItemRecord", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", null) - .WithMany("Items") - .HasForeignKey("RArtifactMasterRecordId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactMasterRecord", b => - { - b.HasOne("RMuseum.Models.Artifact.RPictureFile", "CoverImage") - .WithMany() - .HasForeignKey("CoverImageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RTagValue", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", null) - .WithMany("Tags") - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", null) - .WithMany("Tags") - .HasForeignKey("RArtifactMasterRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RTag", "RTag") - .WithMany() - .HasForeignKey("RTagId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Bookmark.RUserBookmark", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "RArtifactItemRecord") - .WithMany() - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "RArtifactMasterRecord") - .WithMany() - .HasForeignKey("RArtifactMasterRecordId"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorCat", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorCat", "Parent") - .WithMany() - .HasForeignKey("ParentId"); - - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoet", "Poet") - .WithMany() - .HasForeignKey("PoetId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoem", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorCat", "Cat") - .WithMany() - .HasForeignKey("CatId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorVerse", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoem", "Poem") - .WithMany() - .HasForeignKey("PoemId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.PoemNarration", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Owner") - .WithMany() - .HasForeignKey("OwnerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.UserNarrationProfile", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.GanjoorLink", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "Item") - .WithMany() - .HasForeignKey("ItemId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") - .WithMany() - .HasForeignKey("SuggestedById") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.PinterestLink", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "Item") - .WithMany() - .HasForeignKey("ItemId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") - .WithMany() - .HasForeignKey("SuggestedById"); - }); - - modelBuilder.Entity("RMuseum.Models.ImportJob.ImportJob", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId"); - }); - - modelBuilder.Entity("RMuseum.Models.Note.RUserNote", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "RArtifactItemRecord") - .WithMany() - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "RArtifactMasterRecord") - .WithMany() - .HasForeignKey("RArtifactMasterRecordId"); - - b.HasOne("RMuseum.Models.Note.RUserNote", "ReferenceNote") - .WithMany() - .HasForeignKey("ReferenceNoteId"); - }); - - modelBuilder.Entity("RMuseum.Models.Notification.RUserNotification", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSession", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId"); - }); - - modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSessionFile", b => - { - b.HasOne("RMuseum.Models.UploadSession.UploadSession", null) - .WithMany("UploadedFiles") - .HasForeignKey("UploadSessionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RAppUser", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RCaptchaImage", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RPermission", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany("Permissions") - .HasForeignKey("RAppRoleId"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RTemporaryUserSession", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RPictureFile", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", null) - .WithMany("Images") - .HasForeignKey("RArtifactItemRecordId"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/RMuseum/Migrations/20201023091130_GanjoorCachingFields.cs b/RMuseum/Migrations/20201023091130_GanjoorCachingFields.cs deleted file mode 100644 index 09c6a9a8..00000000 --- a/RMuseum/Migrations/20201023091130_GanjoorCachingFields.cs +++ /dev/null @@ -1,31 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace RMuseum.Migrations -{ - public partial class GanjoorCachingFields : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AddColumn( - name: "FullUrl", - table: "GanjoorPoems", - nullable: true); - - migrationBuilder.AddColumn( - name: "FullUrl", - table: "GanjoorCategories", - nullable: true); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropColumn( - name: "FullUrl", - table: "GanjoorPoems"); - - migrationBuilder.DropColumn( - name: "FullUrl", - table: "GanjoorCategories"); - } - } -} diff --git a/RMuseum/Migrations/20201023091559_GanjoorIndices.Designer.cs b/RMuseum/Migrations/20201023091559_GanjoorIndices.Designer.cs deleted file mode 100644 index 4a2878f9..00000000 --- a/RMuseum/Migrations/20201023091559_GanjoorIndices.Designer.cs +++ /dev/null @@ -1,1551 +0,0 @@ -// -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("20201023091559_GanjoorIndices")] - partial class GanjoorIndices - { - 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.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("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.PoemNarration", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - 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("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("OwnerId"); - - b.HasIndex("ReviewerId"); - - b.ToTable("AudioFiles"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.UserNarrationProfile", 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("UserId") - .HasColumnType("uniqueidentifier"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("UserNarrationProfiles"); - }); - - 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("AccessFailedCount") - .HasColumnType("int"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasColumnType("nvarchar(max)"); - - b.Property("CreateDate") - .HasColumnType("datetime2"); - - b.Property("Email") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.Property("EmailConfirmed") - .HasColumnType("bit"); - - b.Property("FirstName") - .HasColumnType("nvarchar(max)"); - - b.Property("LockoutEnabled") - .HasColumnType("bit"); - - b.Property("LockoutEnd") - .HasColumnType("datetimeoffset"); - - b.Property("NormalizedEmail") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.Property("NormalizedUserName") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.Property("PasswordHash") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumber") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumberConfirmed") - .HasColumnType("bit"); - - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); - - b.Property("SecurityStamp") - .HasColumnType("nvarchar(max)"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("SureName") - .HasColumnType("nvarchar(max)"); - - b.Property("TwoFactorEnabled") - .HasColumnType("bit"); - - b.Property("UserName") - .HasColumnType("nvarchar(256)") - .HasMaxLength(256); - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasName("UserNameIndex") - .HasFilter("[NormalizedUserName] IS NOT NULL"); - - b.HasIndex("RImageId"); - - b.ToTable("AspNetUsers"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RCaptchaImage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("DateTime") - .HasColumnType("datetime2"); - - b.Property("RImageId") - .HasColumnType("uniqueidentifier"); - - b.Property("Value") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("RImageId"); - - b.ToTable("CaptchaImages"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RPermission", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("OperationShortName") - .HasColumnType("nvarchar(max)"); - - b.Property("RAppRoleId") - .HasColumnType("uniqueidentifier"); - - b.Property("SecurableItemShortName") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("RAppRoleId"); - - b.ToTable("Permissions"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RTemporaryUserSession", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientAppName") - .HasColumnType("nvarchar(max)"); - - b.Property("ClientIPAddress") - .HasColumnType("nvarchar(max)"); - - b.Property("Language") - .HasColumnType("nvarchar(max)"); - - b.Property("LastRenewal") - .HasColumnType("datetime2"); - - b.Property("LoginTime") - .HasColumnType("datetime2"); - - b.Property("RAppUserId") - .HasColumnType("uniqueidentifier"); - - b.Property("Token") - .HasColumnType("nvarchar(max)"); - - b.Property("ValidUntil") - .HasColumnType("datetime2"); - - b.HasKey("Id"); - - b.HasIndex("RAppUserId"); - - b.ToTable("Sessions"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RVerifyQueueItem", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientAppName") - .HasColumnType("nvarchar(max)"); - - b.Property("ClientIPAddress") - .HasColumnType("nvarchar(max)"); - - b.Property("DateTime") - .HasColumnType("datetime2"); - - b.Property("Email") - .HasColumnType("nvarchar(max)"); - - b.Property("Language") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumber") - .HasColumnType("nvarchar(max)"); - - b.Property("QueueType") - .HasColumnType("int"); - - b.Property("Secret") - .HasColumnType("nvarchar(450)"); - - b.HasKey("Id"); - - b.HasIndex("Secret") - .IsUnique() - .HasFilter("[Secret] IS NOT NULL"); - - b.ToTable("VerifyQueueItems"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Image.RImage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ContentType") - .HasColumnType("nvarchar(max)"); - - b.Property("DataTime") - .HasColumnType("datetime2"); - - b.Property("Discriminator") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("FileSizeInBytes") - .HasColumnType("bigint"); - - b.Property("FolderName") - .HasColumnType("nvarchar(max)"); - - b.Property("ImageHeight") - .HasColumnType("int"); - - b.Property("ImageWidth") - .HasColumnType("int"); - - b.Property("LastModified") - .HasColumnType("datetime2"); - - b.Property("OriginalFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("StoredFileName") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("GeneralImages"); - - b.HasDiscriminator("Discriminator").HasValue("RImage"); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RPictureFile", b => - { - b.HasBaseType("RSecurityBackend.Models.Image.RImage"); - - b.Property("Description") - .HasColumnType("nvarchar(max)"); - - b.Property("DescriptionInEnglish") - .HasColumnType("nvarchar(max)"); - - b.Property("LastModifiedMeta") - .HasColumnType("datetime2"); - - b.Property("NormalSizeImageHeight") - .HasColumnType("int"); - - b.Property("NormalSizeImageStoredFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("NormalSizeImageWidth") - .HasColumnType("int"); - - b.Property("Order") - .HasColumnType("int"); - - b.Property("RArtifactItemRecordId") - .HasColumnType("uniqueidentifier"); - - b.Property("SrcUrl") - .HasColumnType("nvarchar(max)"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("ThumbnailImageHeight") - .HasColumnType("int"); - - b.Property("ThumbnailImageStoredFileName") - .HasColumnType("nvarchar(max)"); - - b.Property("ThumbnailImageWidth") - .HasColumnType("int"); - - b.Property("Title") - .HasColumnType("nvarchar(max)"); - - b.Property("TitleInEnglish") - .HasColumnType("nvarchar(max)"); - - b.HasIndex("RArtifactItemRecordId"); - - b.HasDiscriminator().HasValue("RPictureFile"); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", null) - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactItemRecord", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", null) - .WithMany("Items") - .HasForeignKey("RArtifactMasterRecordId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RArtifactMasterRecord", b => - { - b.HasOne("RMuseum.Models.Artifact.RPictureFile", "CoverImage") - .WithMany() - .HasForeignKey("CoverImageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RTagValue", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", null) - .WithMany("Tags") - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", null) - .WithMany("Tags") - .HasForeignKey("RArtifactMasterRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RTag", "RTag") - .WithMany() - .HasForeignKey("RTagId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Bookmark.RUserBookmark", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "RArtifactItemRecord") - .WithMany() - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "RArtifactMasterRecord") - .WithMany() - .HasForeignKey("RArtifactMasterRecordId"); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorCat", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorCat", "Parent") - .WithMany() - .HasForeignKey("ParentId"); - - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoet", "Poet") - .WithMany() - .HasForeignKey("PoetId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorPoem", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorCat", "Cat") - .WithMany() - .HasForeignKey("CatId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Ganjoor.GanjoorVerse", b => - { - b.HasOne("RMuseum.Models.Ganjoor.GanjoorPoem", "Poem") - .WithMany() - .HasForeignKey("PoemId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.PoemNarration", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Owner") - .WithMany() - .HasForeignKey("OwnerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorAudio.UserNarrationProfile", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.GanjoorLink", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "Item") - .WithMany() - .HasForeignKey("ItemId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") - .WithMany() - .HasForeignKey("SuggestedById") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.GanjoorIntegration.PinterestLink", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "Item") - .WithMany() - .HasForeignKey("ItemId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "Reviewer") - .WithMany() - .HasForeignKey("ReviewerId"); - - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "SuggestedBy") - .WithMany() - .HasForeignKey("SuggestedById"); - }); - - modelBuilder.Entity("RMuseum.Models.ImportJob.ImportJob", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "Artifact") - .WithMany() - .HasForeignKey("ArtifactId"); - }); - - modelBuilder.Entity("RMuseum.Models.Note.RUserNote", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", "RArtifactItemRecord") - .WithMany() - .HasForeignKey("RArtifactItemRecordId"); - - b.HasOne("RMuseum.Models.Artifact.RArtifactMasterRecord", "RArtifactMasterRecord") - .WithMany() - .HasForeignKey("RArtifactMasterRecordId"); - - b.HasOne("RMuseum.Models.Note.RUserNote", "ReferenceNote") - .WithMany() - .HasForeignKey("ReferenceNoteId"); - }); - - modelBuilder.Entity("RMuseum.Models.Notification.RUserNotification", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSession", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "User") - .WithMany() - .HasForeignKey("UserId"); - }); - - modelBuilder.Entity("RMuseum.Models.UploadSession.UploadSessionFile", b => - { - b.HasOne("RMuseum.Models.UploadSession.UploadSession", null) - .WithMany("UploadedFiles") - .HasForeignKey("UploadSessionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RAppUser", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RCaptchaImage", b => - { - b.HasOne("RSecurityBackend.Models.Image.RImage", "RImage") - .WithMany() - .HasForeignKey("RImageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RPermission", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppRole", null) - .WithMany("Permissions") - .HasForeignKey("RAppRoleId"); - }); - - modelBuilder.Entity("RSecurityBackend.Models.Auth.Db.RTemporaryUserSession", b => - { - b.HasOne("RSecurityBackend.Models.Auth.Db.RAppUser", "RAppUser") - .WithMany() - .HasForeignKey("RAppUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("RMuseum.Models.Artifact.RPictureFile", b => - { - b.HasOne("RMuseum.Models.Artifact.RArtifactItemRecord", null) - .WithMany("Images") - .HasForeignKey("RArtifactItemRecordId"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/RMuseum/Migrations/20201023091559_GanjoorIndices.cs b/RMuseum/Migrations/20201023091559_GanjoorIndices.cs deleted file mode 100644 index dea6b3c4..00000000 --- a/RMuseum/Migrations/20201023091559_GanjoorIndices.cs +++ /dev/null @@ -1,63 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace RMuseum.Migrations -{ - public partial class GanjoorIndices : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AlterColumn( - name: "FullUrl", - table: "GanjoorPoems", - nullable: true, - oldClrType: typeof(string), - oldType: "nvarchar(max)", - oldNullable: true); - - migrationBuilder.AlterColumn( - name: "FullUrl", - table: "GanjoorCategories", - nullable: true, - oldClrType: typeof(string), - oldType: "nvarchar(max)", - oldNullable: true); - - migrationBuilder.CreateIndex( - name: "IX_GanjoorPoems_FullUrl", - table: "GanjoorPoems", - column: "FullUrl"); - - migrationBuilder.CreateIndex( - name: "IX_GanjoorCategories_FullUrl", - table: "GanjoorCategories", - column: "FullUrl"); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropIndex( - name: "IX_GanjoorPoems_FullUrl", - table: "GanjoorPoems"); - - migrationBuilder.DropIndex( - name: "IX_GanjoorCategories_FullUrl", - table: "GanjoorCategories"); - - migrationBuilder.AlterColumn( - name: "FullUrl", - table: "GanjoorPoems", - type: "nvarchar(max)", - nullable: true, - oldClrType: typeof(string), - oldNullable: true); - - migrationBuilder.AlterColumn( - name: "FullUrl", - table: "GanjoorCategories", - type: "nvarchar(max)", - nullable: true, - oldClrType: typeof(string), - oldNullable: true); - } - } -} diff --git a/RMuseum/Migrations/20201025094846_GanjoorPostIdIndex.cs b/RMuseum/Migrations/20201025094846_GanjoorPostIdIndex.cs deleted file mode 100644 index 9768fca7..00000000 --- a/RMuseum/Migrations/20201025094846_GanjoorPostIdIndex.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace RMuseum.Migrations -{ - public partial class GanjoorPostIdIndex : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateIndex( - name: "IX_AudioFiles_GanjoorPostId", - table: "AudioFiles", - column: "GanjoorPostId"); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropIndex( - name: "IX_AudioFiles_GanjoorPostId", - table: "AudioFiles"); - } - } -} diff --git a/RMuseum/Migrations/20201025094846_GanjoorPostIdIndex.Designer.cs b/RMuseum/Migrations/20201106070554_AudioNarrations.Designer.cs similarity index 99% rename from RMuseum/Migrations/20201025094846_GanjoorPostIdIndex.Designer.cs rename to RMuseum/Migrations/20201106070554_AudioNarrations.Designer.cs index d6d8e393..138bb3c9 100644 --- a/RMuseum/Migrations/20201025094846_GanjoorPostIdIndex.Designer.cs +++ b/RMuseum/Migrations/20201106070554_AudioNarrations.Designer.cs @@ -10,8 +10,8 @@ using RMuseum.DbContext; namespace RMuseum.Migrations { [DbContext(typeof(RMuseumDbContext))] - [Migration("20201025094846_GanjoorPostIdIndex")] - partial class GanjoorPostIdIndex + [Migration("20201106070554_AudioNarrations")] + partial class AudioNarrations { protected override void BuildTargetModel(ModelBuilder modelBuilder) { @@ -442,9 +442,10 @@ namespace RMuseum.Migrations modelBuilder.Entity("RMuseum.Models.GanjoorAudio.PoemNarration", b => { - b.Property("Id") + b.Property("Id") .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); b.Property("AudioArtist") .HasColumnType("nvarchar(max)"); @@ -467,6 +468,9 @@ namespace RMuseum.Migrations b.Property("AudioTitle") .HasColumnType("nvarchar(max)"); + b.Property("FileLastUpdated") + .HasColumnType("datetime2"); + b.Property("FileNameWithoutExtension") .HasColumnType("nvarchar(max)"); @@ -550,6 +554,9 @@ namespace RMuseum.Migrations b.Property("IsDefault") .HasColumnType("bit"); + b.Property("Name") + .HasColumnType("nvarchar(max)"); + b.Property("UserId") .HasColumnType("uniqueidentifier"); diff --git a/RMuseum/Migrations/20201106070554_AudioNarrations.cs b/RMuseum/Migrations/20201106070554_AudioNarrations.cs new file mode 100644 index 00000000..aeb8ab1c --- /dev/null +++ b/RMuseum/Migrations/20201106070554_AudioNarrations.cs @@ -0,0 +1,309 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +namespace RMuseum.Migrations +{ + public partial class AudioNarrations : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "AudioFiles", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + OwnerId = table.Column(nullable: false), + GanjoorAudioId = table.Column(nullable: false), + GanjoorPostId = table.Column(nullable: false), + AudioOrder = table.Column(nullable: false), + FileNameWithoutExtension = table.Column(nullable: true), + SoundFilesFolder = table.Column(nullable: true), + AudioTitle = table.Column(nullable: true), + AudioArtist = table.Column(nullable: true), + AudioArtistUrl = table.Column(nullable: true), + AudioSrc = table.Column(nullable: true), + AudioSrcUrl = table.Column(nullable: true), + LegacyAudioGuid = table.Column(nullable: false), + Mp3FileCheckSum = table.Column(nullable: true), + Mp3SizeInBytes = table.Column(nullable: false), + OggSizeInBytes = table.Column(nullable: false), + UploadDate = table.Column(nullable: false), + FileLastUpdated = table.Column(nullable: false), + ReviewDate = table.Column(nullable: false), + LocalMp3FilePath = table.Column(nullable: true), + LocalXmlFilePath = table.Column(nullable: true), + AudioSyncStatus = table.Column(nullable: false), + ReviewStatus = table.Column(nullable: false), + ReviewerId = table.Column(nullable: true), + ReviewMsg = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AudioFiles", x => x.Id); + table.ForeignKey( + name: "FK_AudioFiles_AspNetUsers_OwnerId", + column: x => x.OwnerId, + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_AudioFiles_AspNetUsers_ReviewerId", + column: x => x.ReviewerId, + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateTable( + name: "GanjoorPoets", + columns: table => new + { + Id = table.Column(nullable: false), + Name = table.Column(nullable: true), + Description = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_GanjoorPoets", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "UploadSessions", + columns: table => new + { + Id = table.Column(nullable: false), + SessionType = table.Column(nullable: false), + UserId = table.Column(nullable: true), + UseId = table.Column(nullable: false), + UploadStartTime = table.Column(nullable: false), + UploadEndTime = table.Column(nullable: false), + ProcessStartTime = table.Column(nullable: false), + ProcessEndTime = table.Column(nullable: false), + ProcessProgress = table.Column(nullable: false), + Status = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_UploadSessions", x => x.Id); + table.ForeignKey( + name: "FK_UploadSessions_AspNetUsers_UserId", + column: x => x.UserId, + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateTable( + name: "UserNarrationProfiles", + columns: table => new + { + Id = table.Column(nullable: false), + UserId = table.Column(nullable: false), + Name = table.Column(nullable: true), + FileSuffixWithoutDash = table.Column(nullable: true), + ArtistName = table.Column(nullable: true), + ArtistUrl = table.Column(nullable: true), + AudioSrc = table.Column(nullable: true), + AudioSrcUrl = table.Column(nullable: true), + IsDefault = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_UserNarrationProfiles", x => x.Id); + table.ForeignKey( + name: "FK_UserNarrationProfiles_AspNetUsers_UserId", + column: x => x.UserId, + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "GanjoorCategories", + columns: table => new + { + Id = table.Column(nullable: false), + PoetId = table.Column(nullable: false), + Title = table.Column(nullable: true), + ParentId = table.Column(nullable: true), + UrlSlug = table.Column(nullable: true), + FullUrl = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_GanjoorCategories", x => x.Id); + table.ForeignKey( + name: "FK_GanjoorCategories_GanjoorCategories_ParentId", + column: x => x.ParentId, + principalTable: "GanjoorCategories", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + table.ForeignKey( + name: "FK_GanjoorCategories_GanjoorPoets_PoetId", + column: x => x.PoetId, + principalTable: "GanjoorPoets", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "UploadedFiles", + columns: table => new + { + Id = table.Column(nullable: false), + UploadSessionId = table.Column(nullable: false), + ContentDisposition = table.Column(nullable: true), + ContentType = table.Column(nullable: true), + FileName = table.Column(nullable: true), + Length = table.Column(nullable: false), + Name = table.Column(nullable: true), + FilePath = table.Column(nullable: true), + MP3FileCheckSum = table.Column(nullable: true), + ProcessResult = table.Column(nullable: false), + ProcessResultMsg = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_UploadedFiles", x => x.Id); + table.ForeignKey( + name: "FK_UploadedFiles_UploadSessions_UploadSessionId", + column: x => x.UploadSessionId, + principalTable: "UploadSessions", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "GanjoorPoems", + columns: table => new + { + Id = table.Column(nullable: false), + CatId = table.Column(nullable: false), + Title = table.Column(nullable: true), + FullTitle = table.Column(nullable: true), + UrlSlug = table.Column(nullable: true), + FullUrl = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_GanjoorPoems", x => x.Id); + table.ForeignKey( + name: "FK_GanjoorPoems_GanjoorCategories_CatId", + column: x => x.CatId, + principalTable: "GanjoorCategories", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "GanjoorVerses", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + PoemId = table.Column(nullable: false), + VOrder = table.Column(nullable: false), + VersePosition = table.Column(nullable: false), + Text = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_GanjoorVerses", x => x.Id); + table.ForeignKey( + name: "FK_GanjoorVerses_GanjoorPoems_PoemId", + column: x => x.PoemId, + principalTable: "GanjoorPoems", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_AudioFiles_GanjoorPostId", + table: "AudioFiles", + column: "GanjoorPostId"); + + migrationBuilder.CreateIndex( + name: "IX_AudioFiles_OwnerId", + table: "AudioFiles", + column: "OwnerId"); + + migrationBuilder.CreateIndex( + name: "IX_AudioFiles_ReviewerId", + table: "AudioFiles", + column: "ReviewerId"); + + migrationBuilder.CreateIndex( + name: "IX_GanjoorCategories_FullUrl", + table: "GanjoorCategories", + column: "FullUrl"); + + migrationBuilder.CreateIndex( + name: "IX_GanjoorCategories_ParentId", + table: "GanjoorCategories", + column: "ParentId"); + + migrationBuilder.CreateIndex( + name: "IX_GanjoorCategories_PoetId", + table: "GanjoorCategories", + column: "PoetId"); + + migrationBuilder.CreateIndex( + name: "IX_GanjoorPoems_CatId", + table: "GanjoorPoems", + column: "CatId"); + + migrationBuilder.CreateIndex( + name: "IX_GanjoorPoems_FullUrl", + table: "GanjoorPoems", + column: "FullUrl"); + + migrationBuilder.CreateIndex( + name: "IX_GanjoorVerses_PoemId", + table: "GanjoorVerses", + column: "PoemId"); + + migrationBuilder.CreateIndex( + name: "IX_UploadedFiles_UploadSessionId", + table: "UploadedFiles", + column: "UploadSessionId"); + + migrationBuilder.CreateIndex( + name: "IX_UploadSessions_UserId", + table: "UploadSessions", + column: "UserId"); + + migrationBuilder.CreateIndex( + name: "IX_UserNarrationProfiles_UserId", + table: "UserNarrationProfiles", + column: "UserId"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "AudioFiles"); + + migrationBuilder.DropTable( + name: "GanjoorVerses"); + + migrationBuilder.DropTable( + name: "UploadedFiles"); + + migrationBuilder.DropTable( + name: "UserNarrationProfiles"); + + migrationBuilder.DropTable( + name: "GanjoorPoems"); + + migrationBuilder.DropTable( + name: "UploadSessions"); + + migrationBuilder.DropTable( + name: "GanjoorCategories"); + + migrationBuilder.DropTable( + name: "GanjoorPoets"); + } + } +} diff --git a/RMuseum/Migrations/RMuseumDbContextModelSnapshot.cs b/RMuseum/Migrations/RMuseumDbContextModelSnapshot.cs index 2a8d3cfb..52bec85e 100644 --- a/RMuseum/Migrations/RMuseumDbContextModelSnapshot.cs +++ b/RMuseum/Migrations/RMuseumDbContextModelSnapshot.cs @@ -440,9 +440,10 @@ namespace RMuseum.Migrations modelBuilder.Entity("RMuseum.Models.GanjoorAudio.PoemNarration", b => { - b.Property("Id") + b.Property("Id") .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); + .HasColumnType("int") + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); b.Property("AudioArtist") .HasColumnType("nvarchar(max)"); @@ -465,6 +466,9 @@ namespace RMuseum.Migrations b.Property("AudioTitle") .HasColumnType("nvarchar(max)"); + b.Property("FileLastUpdated") + .HasColumnType("datetime2"); + b.Property("FileNameWithoutExtension") .HasColumnType("nvarchar(max)"); @@ -548,6 +552,9 @@ namespace RMuseum.Migrations b.Property("IsDefault") .HasColumnType("bit"); + b.Property("Name") + .HasColumnType("nvarchar(max)"); + b.Property("UserId") .HasColumnType("uniqueidentifier"); diff --git a/RMuseum/Models/GanjoorAudio/PoemNarration.cs b/RMuseum/Models/GanjoorAudio/PoemNarration.cs index 1890c772..d73b08d6 100644 --- a/RMuseum/Models/GanjoorAudio/PoemNarration.cs +++ b/RMuseum/Models/GanjoorAudio/PoemNarration.cs @@ -148,6 +148,11 @@ namespace RMuseum.Models.GanjoorAudio /// public DateTime UploadDate { get; set; } + /// + /// File Last Updated + /// + public DateTime FileLastUpdated { get; set; } + /// /// Review Date (Approve or Reject) /// diff --git a/RMuseum/Models/GanjoorAudio/UserNarrationProfile.cs b/RMuseum/Models/GanjoorAudio/UserNarrationProfile.cs index 86b17a99..33dcb880 100644 --- a/RMuseum/Models/GanjoorAudio/UserNarrationProfile.cs +++ b/RMuseum/Models/GanjoorAudio/UserNarrationProfile.cs @@ -23,6 +23,11 @@ namespace RMuseum.Models.GanjoorAudio /// public Guid UserId { get; set; } + /// + /// Profile Name + /// + public string Name { get; set; } + /// /// this would be appended to audio files names prefixed by a dash to make them unique and specfic to user /// filenames usually would look like {GanjoorPostId}-{FileSuffixWithoutDash}.{ext} diff --git a/RMuseum/Models/GanjoorAudio/ViewModels/PoemNarrationViewModel.cs b/RMuseum/Models/GanjoorAudio/ViewModels/PoemNarrationViewModel.cs index 97d907b4..c08cddf2 100644 --- a/RMuseum/Models/GanjoorAudio/ViewModels/PoemNarrationViewModel.cs +++ b/RMuseum/Models/GanjoorAudio/ViewModels/PoemNarrationViewModel.cs @@ -39,6 +39,7 @@ namespace RMuseum.Models.GanjoorAudio.ViewModels LocalXmlFilePath = src.LocalXmlFilePath; ReviewStatus = src.ReviewStatus; UploadDate = src.UploadDate; + FileLastUpdated = src.FileLastUpdated; ReviewDate = src.ReviewDate; if(poem != null) { @@ -209,6 +210,11 @@ namespace RMuseum.Models.GanjoorAudio.ViewModels /// public DateTime UploadDate { get; set; } + /// + /// File Last Updated + /// + public DateTime FileLastUpdated { get; set; } + /// /// Review Date (Approve or Reject) /// diff --git a/RMuseum/Models/GanjoorAudio/ViewModels/UserNarrationProfileViewModel.cs b/RMuseum/Models/GanjoorAudio/ViewModels/UserNarrationProfileViewModel.cs index bfbd27db..97d99d98 100644 --- a/RMuseum/Models/GanjoorAudio/ViewModels/UserNarrationProfileViewModel.cs +++ b/RMuseum/Models/GanjoorAudio/ViewModels/UserNarrationProfileViewModel.cs @@ -24,6 +24,7 @@ namespace RMuseum.Models.GanjoorAudio.ViewModels Id = src.Id; User = src.User == null ? null : new PublicRAppUser(src.User); UserId = src.UserId; + Name = src.Name; FileSuffixWithoutDash = src.FileSuffixWithoutDash; ArtistName = src.ArtistName; ArtistUrl = src.ArtistUrl; @@ -56,6 +57,11 @@ namespace RMuseum.Models.GanjoorAudio.ViewModels /// public Guid UserId { get; set; } + /// + /// Profile Name + /// + public string Name { get; set; } + /// /// this would be appended to audio files names prefixed by a dash to make them unique and specfic to user /// filenames usually would look like {GanjoorPostId}-{FileSuffixWithoutDash}.{ext} diff --git a/RMuseum/RMuseum.xml b/RMuseum/RMuseum.xml index 76fead6f..f513d336 100644 --- a/RMuseum/RMuseum.xml +++ b/RMuseum/RMuseum.xml @@ -1904,6 +1904,11 @@ Upload Date + + + File Last Updated + + Review Date (Approve or Reject) @@ -1964,6 +1969,11 @@ UserId + + + Profile Name + + this would be appended to audio files names prefixed by a dash to make them unique and specfic to user @@ -2241,6 +2251,11 @@ Upload Date + + + File Last Updated + + Review Date (Approve or Reject) @@ -2306,6 +2321,11 @@ Do not fill it in POST api + + + Profile Name + + this would be appended to audio files names prefixed by a dash to make them unique and specfic to user diff --git a/RMuseum/Services/Implementation/AudioNarrationService.cs b/RMuseum/Services/Implementation/AudioNarrationService.cs index 0336999b..2231006c 100644 --- a/RMuseum/Services/Implementation/AudioNarrationService.cs +++ b/RMuseum/Services/Implementation/AudioNarrationService.cs @@ -4,7 +4,6 @@ using Microsoft.AspNetCore.Http; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using MySql.Data.MySqlClient; -using Org.BouncyCastle.Crypto.Engines; using Renci.SshNet; using RMuseum.DbContext; using RMuseum.Models.Ganjoor; @@ -15,7 +14,6 @@ using RMuseum.Models.UploadSession.ViewModels; using RMuseum.Services.Implementation.ImportedFromDesktopGanjoor; using RSecurityBackend.Models.Generic; using RSecurityBackend.Services.Implementation; -using SQLitePCL; using System; using System.Collections.Generic; using System.Data; @@ -227,6 +225,7 @@ namespace RMuseum.Services.Implementation AudioSyncStatus = audioSyncStatus, ReviewStatus = AudioReviewStatus.Approved }; + newRecord.FileLastUpdated = newRecord.UploadDate; newRecord.ReviewDate = newRecord.UploadDate; string audio_xml = row["audio_xml"].ToString(); //sample audio_xml value: /i/a/x/11876-Simorgh.xml @@ -322,6 +321,13 @@ namespace RMuseum.Services.Implementation } } profile.FileSuffixWithoutDash = ext; + profile.Name = profile.ArtistName; + int pIndex = 1; + while((await _context.UserNarrationProfiles.Where(p => p.UserId == ownerRAppUserId && p.Name == profile.Name).SingleOrDefaultAsync())!=null) + { + pIndex++; + profile.Name = $"{profile.ArtistName} {GPersianTextSync.Sync(pIndex.ToString())}"; + } _context.UserNarrationProfiles.Add(profile); await _context.SaveChangesAsync(); //this logically should be outside this loop, //but it messes with the order of records so I decided @@ -566,6 +572,7 @@ namespace RMuseum.Services.Implementation Mp3SizeInBytes = mp3fileSize, OggSizeInBytes = 0, UploadDate = session.UploadEndTime, + FileLastUpdated = session.UploadEndTime, LocalMp3FilePath = localMp3FilePath, LocalXmlFilePath = localXmlFilePath, AudioSyncStatus = (int)AudioSyncStatus.NewItem, @@ -873,6 +880,10 @@ namespace RMuseum.Services.Implementation /// private static string GetUserProfileValidationError(UserNarrationProfile p) { + if(string.IsNullOrEmpty(p.Name)) + { + return "نام نمایه نباید خالی باشد."; + } if (p.ArtistName.Length < 3) { return "نام خوانشگر باید حداقل شامل سه نویسه باشد."; @@ -927,9 +938,10 @@ namespace RMuseum.Services.Implementation { try { - var p = new UserNarrationProfile() + var p = new UserNarrationProfile() { UserId = profile.UserId, + Name = profile.Name.Trim(), ArtistName = profile.ArtistName.Trim(), ArtistUrl = profile.ArtistUrl.Trim(), AudioSrc = profile.AudioSrc.Trim(), @@ -944,6 +956,11 @@ namespace RMuseum.Services.Implementation return new RServiceResult(null, error); } + if((await _context.UserNarrationProfiles.Where(e => e.UserId == p.Id && e.Name == p.Name).SingleOrDefaultAsync())!=null) + { + return new RServiceResult(null, "شما نمایهٔ دیگری با همین نام دارید."); + } + await _context.UserNarrationProfiles.AddAsync(p); await _context.SaveChangesAsync(); @@ -979,6 +996,7 @@ namespace RMuseum.Services.Implementation if (p.UserId != profile.UserId) return new RServiceResult(null, "permission error"); + p.Name = profile.Name.Trim(); p.ArtistName = profile.ArtistName.Trim(); p.ArtistUrl = profile.ArtistUrl.Trim(); p.AudioSrc = profile.AudioSrc.Trim(); @@ -992,6 +1010,11 @@ namespace RMuseum.Services.Implementation return new RServiceResult(null, error); } + if ((await _context.UserNarrationProfiles.Where(e => e.UserId == p.Id && e.Name == p.Name && e.Id != p.Id).SingleOrDefaultAsync()) != null) + { + return new RServiceResult(null, "شما نمایهٔ دیگری با همین نام دارید."); + } + _context.UserNarrationProfiles.Update(p); await _context.SaveChangesAsync();