// 
using System;
using MareSynchronosShared.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace MareSynchronosServer.Migrations
{
    [DbContext(typeof(MareDbContext))]
    [Migration("20250627174541_MCDO")]
    partial class MCDO
    {
        /// 
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasAnnotation("ProductVersion", "8.0.4")
                .HasAnnotation("Relational:MaxIdentifierLength", 63);
            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
            modelBuilder.Entity("MareSynchronosShared.Models.Auth", b =>
                {
                    b.Property("HashedKey")
                        .HasMaxLength(64)
                        .HasColumnType("character varying(64)")
                        .HasColumnName("hashed_key");
                    b.Property("IsBanned")
                        .HasColumnType("boolean")
                        .HasColumnName("is_banned");
                    b.Property("PrimaryUserUID")
                        .HasColumnType("character varying(10)")
                        .HasColumnName("primary_user_uid");
                    b.Property("UserUID")
                        .HasColumnType("character varying(10)")
                        .HasColumnName("user_uid");
                    b.HasKey("HashedKey")
                        .HasName("pk_auth");
                    b.HasIndex("PrimaryUserUID")
                        .HasDatabaseName("ix_auth_primary_user_uid");
                    b.HasIndex("UserUID")
                        .HasDatabaseName("ix_auth_user_uid");
                    b.ToTable("auth", (string)null);
                });
            modelBuilder.Entity("MareSynchronosShared.Models.Banned", b =>
                {
                    b.Property("CharacterIdentification")
                        .HasMaxLength(100)
                        .HasColumnType("character varying(100)")
                        .HasColumnName("character_identification");
                    b.Property("Reason")
                        .HasColumnType("text")
                        .HasColumnName("reason");
                    b.Property("Timestamp")
                        .IsConcurrencyToken()
                        .ValueGeneratedOnAddOrUpdate()
                        .HasColumnType("bytea")
                        .HasColumnName("timestamp");
                    b.HasKey("CharacterIdentification")
                        .HasName("pk_banned_users");
                    b.ToTable("banned_users", (string)null);
                });
            modelBuilder.Entity("MareSynchronosShared.Models.BannedRegistrations", b =>
                {
                    b.Property("DiscordIdOrLodestoneAuth")
                        .HasMaxLength(100)
                        .HasColumnType("character varying(100)")
                        .HasColumnName("discord_id_or_lodestone_auth");
                    b.HasKey("DiscordIdOrLodestoneAuth")
                        .HasName("pk_banned_registrations");
                    b.ToTable("banned_registrations", (string)null);
                });
            modelBuilder.Entity("MareSynchronosShared.Models.CharaData", b =>
                {
                    b.Property("Id")
                        .HasColumnType("text")
                        .HasColumnName("id");
                    b.Property("UploaderUID")
                        .HasColumnType("character varying(10)")
                        .HasColumnName("uploader_uid");
                    b.Property("AccessType")
                        .HasColumnType("integer")
                        .HasColumnName("access_type");
                    b.Property("CreatedDate")
                        .HasColumnType("timestamp with time zone")
                        .HasColumnName("created_date");
                    b.Property("CustomizeData")
                        .HasColumnType("text")
                        .HasColumnName("customize_data");
                    b.Property("Description")
                        .HasColumnType("text")
                        .HasColumnName("description");
                    b.Property("DownloadCount")
                        .HasColumnType("integer")
                        .HasColumnName("download_count");
                    b.Property("ExpiryDate")
                        .HasColumnType("timestamp with time zone")
                        .HasColumnName("expiry_date");
                    b.Property("GlamourerData")
                        .HasColumnType("text")
                        .HasColumnName("glamourer_data");
                    b.Property("ManipulationData")
                        .HasColumnType("text")
                        .HasColumnName("manipulation_data");
                    b.Property("ShareType")
                        .HasColumnType("integer")
                        .HasColumnName("share_type");
                    b.Property("UpdatedDate")
                        .HasColumnType("timestamp with time zone")
                        .HasColumnName("updated_date");
                    b.HasKey("Id", "UploaderUID")
                        .HasName("pk_chara_data");
                    b.HasIndex("Id")
                        .HasDatabaseName("ix_chara_data_id");
                    b.HasIndex("UploaderUID")
                        .HasDatabaseName("ix_chara_data_uploader_uid");
                    b.ToTable("chara_data", (string)null);
                });
            modelBuilder.Entity("MareSynchronosShared.Models.CharaDataAllowance", b =>
                {
                    b.Property("ParentId")
                        .HasColumnType("text")
                        .HasColumnName("parent_id");
                    b.Property("ParentUploaderUID")
                        .HasColumnType("character varying(10)")
                        .HasColumnName("parent_uploader_uid");
                    b.Property("AllowedUserUID")
                        .HasColumnType("character varying(10)")
                        .HasColumnName("allowed_user_uid");
                    b.HasKey("ParentId", "ParentUploaderUID", "AllowedUserUID")
                        .HasName("pk_chara_data_allowance");
                    b.HasIndex("AllowedUserUID")
                        .HasDatabaseName("ix_chara_data_allowance_allowed_user_uid");
                    b.HasIndex("ParentId")
                        .HasDatabaseName("ix_chara_data_allowance_parent_id");
                    b.ToTable("chara_data_allowance", (string)null);
                });
            modelBuilder.Entity("MareSynchronosShared.Models.CharaDataFile", b =>
                {
                    b.Property("ParentId")
                        .HasColumnType("text")
                        .HasColumnName("parent_id");
                    b.Property("ParentUploaderUID")
                        .HasColumnType("character varying(10)")
                        .HasColumnName("parent_uploader_uid");
                    b.Property("GamePath")
                        .HasColumnType("text")
                        .HasColumnName("game_path");
                    b.Property("FileCacheHash")
                        .HasColumnType("character varying(40)")
                        .HasColumnName("file_cache_hash");
                    b.HasKey("ParentId", "ParentUploaderUID", "GamePath")
                        .HasName("pk_chara_data_files");
                    b.HasIndex("FileCacheHash")
                        .HasDatabaseName("ix_chara_data_files_file_cache_hash");
                    b.HasIndex("ParentId")
                        .HasDatabaseName("ix_chara_data_files_parent_id");
                    b.ToTable("chara_data_files", (string)null);
                });
            modelBuilder.Entity("MareSynchronosShared.Models.CharaDataFileSwap", b =>
                {
                    b.Property("ParentId")
                        .HasColumnType("text")
                        .HasColumnName("parent_id");
                    b.Property("ParentUploaderUID")
                        .HasColumnType("character varying(10)")
                        .HasColumnName("parent_uploader_uid");
                    b.Property("GamePath")
                        .HasColumnType("text")
                        .HasColumnName("game_path");
                    b.Property("FilePath")
                        .HasColumnType("text")
                        .HasColumnName("file_path");
                    b.HasKey("ParentId", "ParentUploaderUID", "GamePath")
                        .HasName("pk_chara_data_file_swaps");
                    b.HasIndex("ParentId")
                        .HasDatabaseName("ix_chara_data_file_swaps_parent_id");
                    b.ToTable("chara_data_file_swaps", (string)null);
                });
            modelBuilder.Entity("MareSynchronosShared.Models.CharaDataOriginalFile", b =>
                {
                    b.Property("ParentId")
                        .HasColumnType("text")
                        .HasColumnName("parent_id");
                    b.Property("ParentUploaderUID")
                        .HasColumnType("character varying(10)")
                        .HasColumnName("parent_uploader_uid");
                    b.Property("GamePath")
                        .HasColumnType("text")
                        .HasColumnName("game_path");
                    b.Property("Hash")
                        .HasColumnType("text")
                        .HasColumnName("hash");
                    b.HasKey("ParentId", "ParentUploaderUID", "GamePath")
                        .HasName("pk_chara_data_orig_files");
                    b.HasIndex("ParentId")
                        .HasDatabaseName("ix_chara_data_orig_files_parent_id");
                    b.ToTable("chara_data_orig_files", (string)null);
                });
            modelBuilder.Entity("MareSynchronosShared.Models.CharaDataPose", b =>
                {
                    b.Property("ParentId")
                        .HasColumnType("text")
                        .HasColumnName("parent_id");
                    b.Property("ParentUploaderUID")
                        .HasColumnType("character varying(10)")
                        .HasColumnName("parent_uploader_uid");
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("bigint")
                        .HasColumnName("id");
                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
                    b.Property("Description")
                        .HasColumnType("text")
                        .HasColumnName("description");
                    b.Property("PoseData")
                        .HasColumnType("text")
                        .HasColumnName("pose_data");
                    b.Property("WorldData")
                        .HasColumnType("text")
                        .HasColumnName("world_data");
                    b.HasKey("ParentId", "ParentUploaderUID", "Id")
                        .HasName("pk_chara_data_poses");
                    b.HasIndex("ParentId")
                        .HasDatabaseName("ix_chara_data_poses_parent_id");
                    b.ToTable("chara_data_poses", (string)null);
                });
            modelBuilder.Entity("MareSynchronosShared.Models.ClientPair", b =>
                {
                    b.Property("UserUID")
                        .HasMaxLength(10)
                        .HasColumnType("character varying(10)")
                        .HasColumnName("user_uid");
                    b.Property("OtherUserUID")
                        .HasMaxLength(10)
                        .HasColumnType("character varying(10)")
                        .HasColumnName("other_user_uid");
                    b.Property("AllowReceivingMessages")
                        .HasColumnType("boolean")
                        .HasColumnName("allow_receiving_messages");
                    b.Property("DisableAnimations")
                        .HasColumnType("boolean")
                        .HasColumnName("disable_animations");
                    b.Property("DisableSounds")
                        .HasColumnType("boolean")
                        .HasColumnName("disable_sounds");
                    b.Property("DisableVFX")
                        .HasColumnType("boolean")
                        .HasColumnName("disable_vfx");
                    b.Property("IsPaused")
                        .HasColumnType("boolean")
                        .HasColumnName("is_paused");
                    b.Property("Timestamp")
                        .IsConcurrencyToken()
                        .ValueGeneratedOnAddOrUpdate()
                        .HasColumnType("bytea")
                        .HasColumnName("timestamp");
                    b.HasKey("UserUID", "OtherUserUID")
                        .HasName("pk_client_pairs");
                    b.HasIndex("OtherUserUID")
                        .HasDatabaseName("ix_client_pairs_other_user_uid");
                    b.HasIndex("UserUID")
                        .HasDatabaseName("ix_client_pairs_user_uid");
                    b.ToTable("client_pairs", (string)null);
                });
            modelBuilder.Entity("MareSynchronosShared.Models.FileCache", b =>
                {
                    b.Property("Hash")
                        .HasMaxLength(40)
                        .HasColumnType("character varying(40)")
                        .HasColumnName("hash");
                    b.Property("Size")
                        .HasColumnType("bigint")
                        .HasColumnName("size");
                    b.Property("Timestamp")
                        .IsConcurrencyToken()
                        .ValueGeneratedOnAddOrUpdate()
                        .HasColumnType("bytea")
                        .HasColumnName("timestamp");
                    b.Property("UploadDate")
                        .HasColumnType("timestamp with time zone")
                        .HasColumnName("upload_date");
                    b.Property("Uploaded")
                        .HasColumnType("boolean")
                        .HasColumnName("uploaded");
                    b.Property("UploaderUID")
                        .HasMaxLength(10)
                        .HasColumnType("character varying(10)")
                        .HasColumnName("uploader_uid");
                    b.HasKey("Hash")
                        .HasName("pk_file_caches");
                    b.HasIndex("UploaderUID")
                        .HasDatabaseName("ix_file_caches_uploader_uid");
                    b.ToTable("file_caches", (string)null);
                });
            modelBuilder.Entity("MareSynchronosShared.Models.ForbiddenUploadEntry", b =>
                {
                    b.Property("Hash")
                        .HasMaxLength(40)
                        .HasColumnType("character varying(40)")
                        .HasColumnName("hash");
                    b.Property("ForbiddenBy")
                        .HasMaxLength(100)
                        .HasColumnType("character varying(100)")
                        .HasColumnName("forbidden_by");
                    b.Property("Timestamp")
                        .IsConcurrencyToken()
                        .ValueGeneratedOnAddOrUpdate()
                        .HasColumnType("bytea")
                        .HasColumnName("timestamp");
                    b.HasKey("Hash")
                        .HasName("pk_forbidden_upload_entries");
                    b.ToTable("forbidden_upload_entries", (string)null);
                });
            modelBuilder.Entity("MareSynchronosShared.Models.Group", b =>
                {
                    b.Property("GID")
                        .HasMaxLength(20)
                        .HasColumnType("character varying(20)")
                        .HasColumnName("gid");
                    b.Property("Alias")
                        .HasMaxLength(50)
                        .HasColumnType("character varying(50)")
                        .HasColumnName("alias");
                    b.Property("DisableAnimations")
                        .HasColumnType("boolean")
                        .HasColumnName("disable_animations");
                    b.Property("DisableSounds")
                        .HasColumnType("boolean")
                        .HasColumnName("disable_sounds");
                    b.Property("DisableVFX")
                        .HasColumnType("boolean")
                        .HasColumnName("disable_vfx");
                    b.Property("HashedPassword")
                        .HasColumnType("text")
                        .HasColumnName("hashed_password");
                    b.Property("InvitesEnabled")
                        .HasColumnType("boolean")
                        .HasColumnName("invites_enabled");
                    b.Property("OwnerUID")
                        .HasColumnType("character varying(10)")
                        .HasColumnName("owner_uid");
                    b.HasKey("GID")
                        .HasName("pk_groups");
                    b.HasIndex("OwnerUID")
                        .HasDatabaseName("ix_groups_owner_uid");
                    b.ToTable("groups", (string)null);
                });
            modelBuilder.Entity("MareSynchronosShared.Models.GroupBan", b =>
                {
                    b.Property("GroupGID")
                        .HasColumnType("character varying(20)")
                        .HasColumnName("group_gid");
                    b.Property("BannedUserUID")
                        .HasColumnType("character varying(10)")
                        .HasColumnName("banned_user_uid");
                    b.Property("BannedByUID")
                        .HasColumnType("character varying(10)")
                        .HasColumnName("banned_by_uid");
                    b.Property("BannedOn")
                        .HasColumnType("timestamp with time zone")
                        .HasColumnName("banned_on");
                    b.Property("BannedReason")
                        .HasColumnType("text")
                        .HasColumnName("banned_reason");
                    b.HasKey("GroupGID", "BannedUserUID")
                        .HasName("pk_group_bans");
                    b.HasIndex("BannedByUID")
                        .HasDatabaseName("ix_group_bans_banned_by_uid");
                    b.HasIndex("BannedUserUID")
                        .HasDatabaseName("ix_group_bans_banned_user_uid");
                    b.HasIndex("GroupGID")
                        .HasDatabaseName("ix_group_bans_group_gid");
                    b.ToTable("group_bans", (string)null);
                });
            modelBuilder.Entity("MareSynchronosShared.Models.GroupPair", b =>
                {
                    b.Property("GroupGID")
                        .HasColumnType("character varying(20)")
                        .HasColumnName("group_gid");
                    b.Property("GroupUserUID")
                        .HasColumnType("character varying(10)")
                        .HasColumnName("group_user_uid");
                    b.Property("DisableAnimations")
                        .HasColumnType("boolean")
                        .HasColumnName("disable_animations");
                    b.Property("DisableSounds")
                        .HasColumnType("boolean")
                        .HasColumnName("disable_sounds");
                    b.Property("DisableVFX")
                        .HasColumnType("boolean")
                        .HasColumnName("disable_vfx");
                    b.Property("IsModerator")
                        .HasColumnType("boolean")
                        .HasColumnName("is_moderator");
                    b.Property("IsPaused")
                        .HasColumnType("boolean")
                        .HasColumnName("is_paused");
                    b.Property("IsPinned")
                        .HasColumnType("boolean")
                        .HasColumnName("is_pinned");
                    b.HasKey("GroupGID", "GroupUserUID")
                        .HasName("pk_group_pairs");
                    b.HasIndex("GroupGID")
                        .HasDatabaseName("ix_group_pairs_group_gid");
                    b.HasIndex("GroupUserUID")
                        .HasDatabaseName("ix_group_pairs_group_user_uid");
                    b.ToTable("group_pairs", (string)null);
                });
            modelBuilder.Entity("MareSynchronosShared.Models.GroupTempInvite", b =>
                {
                    b.Property("GroupGID")
                        .HasColumnType("character varying(20)")
                        .HasColumnName("group_gid");
                    b.Property("Invite")
                        .HasMaxLength(64)
                        .HasColumnType("character varying(64)")
                        .HasColumnName("invite");
                    b.Property("ExpirationDate")
                        .HasColumnType("timestamp with time zone")
                        .HasColumnName("expiration_date");
                    b.HasKey("GroupGID", "Invite")
                        .HasName("pk_group_temp_invites");
                    b.HasIndex("GroupGID")
                        .HasDatabaseName("ix_group_temp_invites_group_gid");
                    b.HasIndex("Invite")
                        .HasDatabaseName("ix_group_temp_invites_invite");
                    b.ToTable("group_temp_invites", (string)null);
                });
            modelBuilder.Entity("MareSynchronosShared.Models.LodeStoneAuth", b =>
                {
                    b.Property("DiscordId")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("discord_id");
                    b.Property("HashedLodestoneId")
                        .HasMaxLength(100)
                        .HasColumnType("character varying(100)")
                        .HasColumnName("hashed_lodestone_id");
                    b.Property("LodestoneAuthString")
                        .HasMaxLength(100)
                        .HasColumnType("character varying(100)")
                        .HasColumnName("lodestone_auth_string");
                    b.Property("StartedAt")
                        .HasColumnType("timestamp with time zone")
                        .HasColumnName("started_at");
                    b.Property("UserUID")
                        .HasColumnType("character varying(10)")
                        .HasColumnName("user_uid");
                    b.HasKey("DiscordId")
                        .HasName("pk_lodestone_auth");
                    b.HasIndex("UserUID")
                        .HasDatabaseName("ix_lodestone_auth_user_uid");
                    b.ToTable("lodestone_auth", (string)null);
                });
            modelBuilder.Entity("MareSynchronosShared.Models.User", b =>
                {
                    b.Property("UID")
                        .HasMaxLength(10)
                        .HasColumnType("character varying(10)")
                        .HasColumnName("uid");
                    b.Property("Alias")
                        .HasMaxLength(15)
                        .HasColumnType("character varying(15)")
                        .HasColumnName("alias");
                    b.Property("IsAdmin")
                        .HasColumnType("boolean")
                        .HasColumnName("is_admin");
                    b.Property("IsModerator")
                        .HasColumnType("boolean")
                        .HasColumnName("is_moderator");
                    b.Property("LastLoggedIn")
                        .HasColumnType("timestamp with time zone")
                        .HasColumnName("last_logged_in");
                    b.Property("Timestamp")
                        .IsConcurrencyToken()
                        .ValueGeneratedOnAddOrUpdate()
                        .HasColumnType("bytea")
                        .HasColumnName("timestamp");
                    b.HasKey("UID")
                        .HasName("pk_users");
                    b.ToTable("users", (string)null);
                });
            modelBuilder.Entity("MareSynchronosShared.Models.UserProfileData", b =>
                {
                    b.Property("UserUID")
                        .HasColumnType("character varying(10)")
                        .HasColumnName("user_uid");
                    b.Property("Base64ProfileImage")
                        .HasColumnType("text")
                        .HasColumnName("base64profile_image");
                    b.Property("FlaggedForReport")
                        .HasColumnType("boolean")
                        .HasColumnName("flagged_for_report");
                    b.Property("IsNSFW")
                        .HasColumnType("boolean")
                        .HasColumnName("is_nsfw");
                    b.Property("ProfileDisabled")
                        .HasColumnType("boolean")
                        .HasColumnName("profile_disabled");
                    b.Property("UserDescription")
                        .HasColumnType("text")
                        .HasColumnName("user_description");
                    b.HasKey("UserUID")
                        .HasName("pk_user_profile_data");
                    b.ToTable("user_profile_data", (string)null);
                });
            modelBuilder.Entity("MareSynchronosShared.Models.UserProfileDataReport", b =>
                {
                    b.Property("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");
                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id"));
                    b.Property("ReportDate")
                        .HasColumnType("timestamp with time zone")
                        .HasColumnName("report_date");
                    b.Property("ReportReason")
                        .HasColumnType("text")
                        .HasColumnName("report_reason");
                    b.Property("ReportedUserUID")
                        .HasColumnType("character varying(10)")
                        .HasColumnName("reported_user_uid");
                    b.Property("ReportingUserUID")
                        .HasColumnType("character varying(10)")
                        .HasColumnName("reporting_user_uid");
                    b.HasKey("Id")
                        .HasName("pk_user_profile_data_reports");
                    b.HasIndex("ReportedUserUID")
                        .HasDatabaseName("ix_user_profile_data_reports_reported_user_uid");
                    b.HasIndex("ReportingUserUID")
                        .HasDatabaseName("ix_user_profile_data_reports_reporting_user_uid");
                    b.ToTable("user_profile_data_reports", (string)null);
                });
            modelBuilder.Entity("MareSynchronosShared.Models.Auth", b =>
                {
                    b.HasOne("MareSynchronosShared.Models.User", "PrimaryUser")
                        .WithMany()
                        .HasForeignKey("PrimaryUserUID")
                        .HasConstraintName("fk_auth_users_primary_user_uid");
                    b.HasOne("MareSynchronosShared.Models.User", "User")
                        .WithMany()
                        .HasForeignKey("UserUID")
                        .HasConstraintName("fk_auth_users_user_uid");
                    b.Navigation("PrimaryUser");
                    b.Navigation("User");
                });
            modelBuilder.Entity("MareSynchronosShared.Models.CharaData", b =>
                {
                    b.HasOne("MareSynchronosShared.Models.User", "Uploader")
                        .WithMany()
                        .HasForeignKey("UploaderUID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_chara_data_users_uploader_uid");
                    b.Navigation("Uploader");
                });
            modelBuilder.Entity("MareSynchronosShared.Models.CharaDataAllowance", b =>
                {
                    b.HasOne("MareSynchronosShared.Models.User", "AllowedUser")
                        .WithMany()
                        .HasForeignKey("AllowedUserUID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_chara_data_allowance_users_allowed_user_uid");
                    b.HasOne("MareSynchronosShared.Models.CharaData", "Parent")
                        .WithMany("AllowedIndividiuals")
                        .HasForeignKey("ParentId", "ParentUploaderUID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_chara_data_allowance_chara_data_parent_id_parent_uploader_u");
                    b.Navigation("AllowedUser");
                    b.Navigation("Parent");
                });
            modelBuilder.Entity("MareSynchronosShared.Models.CharaDataFile", b =>
                {
                    b.HasOne("MareSynchronosShared.Models.FileCache", "FileCache")
                        .WithMany()
                        .HasForeignKey("FileCacheHash")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_chara_data_files_files_file_cache_hash");
                    b.HasOne("MareSynchronosShared.Models.CharaData", "Parent")
                        .WithMany("Files")
                        .HasForeignKey("ParentId", "ParentUploaderUID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_chara_data_files_chara_data_parent_id_parent_uploader_uid");
                    b.Navigation("FileCache");
                    b.Navigation("Parent");
                });
            modelBuilder.Entity("MareSynchronosShared.Models.CharaDataFileSwap", b =>
                {
                    b.HasOne("MareSynchronosShared.Models.CharaData", "Parent")
                        .WithMany("FileSwaps")
                        .HasForeignKey("ParentId", "ParentUploaderUID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_chara_data_file_swaps_chara_data_parent_id_parent_uploader_");
                    b.Navigation("Parent");
                });
            modelBuilder.Entity("MareSynchronosShared.Models.CharaDataOriginalFile", b =>
                {
                    b.HasOne("MareSynchronosShared.Models.CharaData", "Parent")
                        .WithMany("OriginalFiles")
                        .HasForeignKey("ParentId", "ParentUploaderUID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_chara_data_orig_files_chara_data_parent_id_parent_uploader_");
                    b.Navigation("Parent");
                });
            modelBuilder.Entity("MareSynchronosShared.Models.CharaDataPose", b =>
                {
                    b.HasOne("MareSynchronosShared.Models.CharaData", "Parent")
                        .WithMany("Poses")
                        .HasForeignKey("ParentId", "ParentUploaderUID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_chara_data_poses_chara_data_parent_id_parent_uploader_uid");
                    b.Navigation("Parent");
                });
            modelBuilder.Entity("MareSynchronosShared.Models.ClientPair", b =>
                {
                    b.HasOne("MareSynchronosShared.Models.User", "OtherUser")
                        .WithMany()
                        .HasForeignKey("OtherUserUID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_client_pairs_users_other_user_uid");
                    b.HasOne("MareSynchronosShared.Models.User", "User")
                        .WithMany()
                        .HasForeignKey("UserUID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_client_pairs_users_user_uid");
                    b.Navigation("OtherUser");
                    b.Navigation("User");
                });
            modelBuilder.Entity("MareSynchronosShared.Models.FileCache", b =>
                {
                    b.HasOne("MareSynchronosShared.Models.User", "Uploader")
                        .WithMany()
                        .HasForeignKey("UploaderUID")
                        .HasConstraintName("fk_file_caches_users_uploader_uid");
                    b.Navigation("Uploader");
                });
            modelBuilder.Entity("MareSynchronosShared.Models.Group", b =>
                {
                    b.HasOne("MareSynchronosShared.Models.User", "Owner")
                        .WithMany()
                        .HasForeignKey("OwnerUID")
                        .HasConstraintName("fk_groups_users_owner_uid");
                    b.Navigation("Owner");
                });
            modelBuilder.Entity("MareSynchronosShared.Models.GroupBan", b =>
                {
                    b.HasOne("MareSynchronosShared.Models.User", "BannedBy")
                        .WithMany()
                        .HasForeignKey("BannedByUID")
                        .HasConstraintName("fk_group_bans_users_banned_by_uid");
                    b.HasOne("MareSynchronosShared.Models.User", "BannedUser")
                        .WithMany()
                        .HasForeignKey("BannedUserUID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_group_bans_users_banned_user_uid");
                    b.HasOne("MareSynchronosShared.Models.Group", "Group")
                        .WithMany()
                        .HasForeignKey("GroupGID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_group_bans_groups_group_gid");
                    b.Navigation("BannedBy");
                    b.Navigation("BannedUser");
                    b.Navigation("Group");
                });
            modelBuilder.Entity("MareSynchronosShared.Models.GroupPair", b =>
                {
                    b.HasOne("MareSynchronosShared.Models.Group", "Group")
                        .WithMany()
                        .HasForeignKey("GroupGID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_group_pairs_groups_group_gid");
                    b.HasOne("MareSynchronosShared.Models.User", "GroupUser")
                        .WithMany()
                        .HasForeignKey("GroupUserUID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_group_pairs_users_group_user_uid");
                    b.Navigation("Group");
                    b.Navigation("GroupUser");
                });
            modelBuilder.Entity("MareSynchronosShared.Models.GroupTempInvite", b =>
                {
                    b.HasOne("MareSynchronosShared.Models.Group", "Group")
                        .WithMany()
                        .HasForeignKey("GroupGID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_group_temp_invites_groups_group_gid");
                    b.Navigation("Group");
                });
            modelBuilder.Entity("MareSynchronosShared.Models.LodeStoneAuth", b =>
                {
                    b.HasOne("MareSynchronosShared.Models.User", "User")
                        .WithMany()
                        .HasForeignKey("UserUID")
                        .HasConstraintName("fk_lodestone_auth_users_user_uid");
                    b.Navigation("User");
                });
            modelBuilder.Entity("MareSynchronosShared.Models.UserProfileData", b =>
                {
                    b.HasOne("MareSynchronosShared.Models.User", "User")
                        .WithMany()
                        .HasForeignKey("UserUID")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_user_profile_data_users_user_uid");
                    b.Navigation("User");
                });
            modelBuilder.Entity("MareSynchronosShared.Models.UserProfileDataReport", b =>
                {
                    b.HasOne("MareSynchronosShared.Models.User", "ReportedUser")
                        .WithMany()
                        .HasForeignKey("ReportedUserUID")
                        .HasConstraintName("fk_user_profile_data_reports_users_reported_user_uid");
                    b.HasOne("MareSynchronosShared.Models.User", "ReportingUser")
                        .WithMany()
                        .HasForeignKey("ReportingUserUID")
                        .HasConstraintName("fk_user_profile_data_reports_users_reporting_user_uid");
                    b.Navigation("ReportedUser");
                    b.Navigation("ReportingUser");
                });
            modelBuilder.Entity("MareSynchronosShared.Models.CharaData", b =>
                {
                    b.Navigation("AllowedIndividiuals");
                    b.Navigation("FileSwaps");
                    b.Navigation("Files");
                    b.Navigation("OriginalFiles");
                    b.Navigation("Poses");
                });
#pragma warning restore 612, 618
        }
    }
}