Esempio n. 1
0
        /// <summary>
        /// Build model for mapping entity type do database table.
        /// </summary>
        /// <param name="builder">Entity type builder.</param>
        /// <returns>Model for mapping entity type do database table.</returns>
        protected virtual EntityTypeTableModel BuildEntityModel(EntityTypeBuilder <TEntity> builder)
        {
            var model = new EntityTypeTableModel(this.TableName);

            builder.ToTable(this.TableName);

            builder.Ignore(t => ((IPersistentObject)t).IsTransient);
            builder.Ignore(t => ((IPersistentObject)t).IsDeleted);
            builder.Ignore(t => t.DisplayValue);

            builder.HasKey(t => t.Id);
            var Id             = builder.Property(t => t.Id).IsRequired();
            var idSequenceName = this.namingConvention.ApplyToSequenceName($"{this.TableName}_Id");

            switch (this.connectionSettings.ServerType)
            {
            case DatabaseServerType.MSSQLServer:
                SqlServerPropertyBuilderExtensions.UseHiLo(Id, idSequenceName);
                break;

            case DatabaseServerType.PostgreSQL:
                NpgsqlPropertyBuilderExtensions.UseHiLo(Id, idSequenceName);
                break;
            }

            var TypeGuid = builder.Property(t => t.TypeGuid).IsRequired();

            model.Properties.Add(Id);
            model.Properties.Add(TypeGuid);
            return(model);
        }
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasDefaultSchema("PermissionModule")
            .HasAnnotation("ProductVersion", "6.0.0")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);
            NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "fuzzystrmatch");
            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Permissions.Model.RolePermission", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint")
                .HasColumnName("id");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <bool>("IsGranted")
                .HasColumnType("boolean")
                .HasColumnName("is_granted");
                b.Property <Guid>("Permission")
                .HasColumnType("uuid")
                .HasColumnName("permission");
                b.Property <long>("RoleID")
                .HasColumnType("bigint")
                .HasColumnName("role_id");
                b.Property <int>("Target")
                .HasColumnType("integer")
                .HasColumnName("target");
                b.HasKey("ID")
                .HasName("pk_role_permissions");
                b.ToTable("RolePermissions", "PermissionModule");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Permissions.Model.UserPermission", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint")
                .HasColumnName("id");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <bool>("IsGranted")
                .HasColumnType("boolean")
                .HasColumnName("is_granted");
                b.Property <Guid>("Permission")
                .HasColumnType("uuid")
                .HasColumnName("permission");
                b.Property <long>("ServerID")
                .HasColumnType("bigint")
                .HasColumnName("server_id");
                b.Property <int>("Target")
                .HasColumnType("integer")
                .HasColumnName("target");
                b.Property <long>("UserID")
                .HasColumnType("bigint")
                .HasColumnName("user_id");
                b.HasKey("ID")
                .HasName("pk_user_permissions");
                b.ToTable("UserPermissions", "PermissionModule");
            });
#pragma warning restore 612, 618
        }
Esempio n. 3
0
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasAnnotation("ProductVersion", "6.0.3")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("RFI.WordsTrainer.Data.Models.Word", b =>
            {
                b.Property <int?>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int?>("Id"));

                b.Property <DateTime?>("Created")
                .IsRequired()
                .HasColumnType("timestamp with time zone");

                b.Property <DateTime?>("Updated")
                .IsRequired()
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

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

            modelBuilder.Entity("RFI.WordsTrainer.Data.Models.WordCategory", b =>
            {
                b.Property <int?>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int?>("Id"));

                b.Property <DateTime?>("Created")
                .IsRequired()
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Name")
                .IsRequired()
                .HasMaxLength(50)
                .HasColumnType("character varying(50)");

                b.Property <DateTime?>("Updated")
                .IsRequired()
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

                b.ToTable("WordCategories");
            });
#pragma warning restore 612, 618
        }
Esempio n. 4
0
        protected override void BuildModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasAnnotation("ProductVersion", "6.0.6")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("Simple_Asp.Net_Core.Models.FTPFile", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("FTPFileName")
                .IsRequired()
                .HasMaxLength(250)
                .HasColumnType("character varying(250)");

                b.Property <string>("FTPPath")
                .IsRequired()
                .HasMaxLength(250)
                .HasColumnType("character varying(250)");

                b.Property <string>("FileContentType")
                .IsRequired()
                .HasMaxLength(250)
                .HasColumnType("character varying(250)");

                b.Property <string>("FileName")
                .IsRequired()
                .HasMaxLength(250)
                .HasColumnType("character varying(250)");

                b.HasKey("Id");

                b.ToTable("FTPFiles");
            });
#pragma warning restore 612, 618
        }
Esempio n. 5
0
        public override void Map(EntityTypeBuilder <Customer> builder)
        {
            builder.ToTable(nameof(Customer), CRMConstant.Schema);
            builder.HasKey(args => args.CustomerID);

            var propertyBuilder = builder.Property(args => args.CustomerID);

            NpgsqlPropertyBuilderExtensions.UseHiLo(propertyBuilder, CRMConstant.Hilo, CRMConstant.Schema);
            SqlServerPropertyBuilderExtensions.UseHiLo(propertyBuilder, CRMConstant.Hilo, CRMConstant.Schema);

            builder.Property(args => args.Name).HasMaxLength(CRMConstant.NameLength).IsRequired();
            builder.HasIndex(args => args.Name).IsUnique();

            builder.Property(args => args.Company).HasMaxLength(CRMConstant.NameLength).IsRequired();

            builder.HasMany(args => args.Contacts).WithOne(args => args.Customer).HasForeignKey(args => args.CustomerID).IsRequired();
            builder.HasMany(args => args.Licenses).WithOne(args => args.Customer).HasForeignKey(args => args.CustomerID).IsRequired();
            base.Map(builder);
        }
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasAnnotation("ProductVersion", "6.0.0")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("Content.Server.Database.Admin", b =>
            {
                b.Property <Guid>("UserId")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid")
                .HasColumnName("user_id");

                b.Property <int?>("AdminRankId")
                .HasColumnType("integer")
                .HasColumnName("admin_rank_id");

                b.Property <string>("Title")
                .HasColumnType("text")
                .HasColumnName("title");

                b.HasKey("UserId")
                .HasName("PK_admin");

                b.HasIndex("AdminRankId")
                .HasDatabaseName("IX_admin_admin_rank_id");

                b.ToTable("admin", (string)null);
            });

            modelBuilder.Entity("Content.Server.Database.AdminFlag", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasColumnName("admin_flag_id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <Guid>("AdminId")
                .HasColumnType("uuid")
                .HasColumnName("admin_id");

                b.Property <string>("Flag")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("flag");

                b.Property <bool>("Negative")
                .HasColumnType("boolean")
                .HasColumnName("negative");

                b.HasKey("Id")
                .HasName("PK_admin_flag");

                b.HasIndex("AdminId")
                .HasDatabaseName("IX_admin_flag_admin_id");

                b.HasIndex("Flag", "AdminId")
                .IsUnique();

                b.ToTable("admin_flag", (string)null);
            });

            modelBuilder.Entity("Content.Server.Database.AdminLog", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasColumnName("admin_log_id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("RoundId")
                .HasColumnType("integer")
                .HasColumnName("round_id");

                b.Property <DateTime>("Date")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("date");

                b.Property <short>("Impact")
                .HasColumnType("smallint")
                .HasColumnName("impact");

                b.Property <JsonDocument>("Json")
                .IsRequired()
                .HasColumnType("jsonb")
                .HasColumnName("json");

                b.Property <string>("Message")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("message");

                b.Property <int>("Type")
                .HasColumnType("integer")
                .HasColumnName("type");

                b.HasKey("Id", "RoundId")
                .HasName("PK_admin_log");

                b.HasIndex("RoundId")
                .HasDatabaseName("IX_admin_log_round_id");

                b.HasIndex("Type")
                .HasDatabaseName("IX_admin_log_type");

                b.ToTable("admin_log", (string)null);
            });

            modelBuilder.Entity("Content.Server.Database.AdminLogEntity", b =>
            {
                b.Property <int>("Uid")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasColumnName("uid");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Uid"));

                b.Property <int?>("AdminLogId")
                .HasColumnType("integer")
                .HasColumnName("admin_log_id");

                b.Property <int?>("AdminLogRoundId")
                .HasColumnType("integer")
                .HasColumnName("admin_log_round_id");

                b.Property <string>("Name")
                .HasColumnType("text")
                .HasColumnName("name");

                b.HasKey("Uid")
                .HasName("PK_admin_log_entity");

                b.HasIndex("AdminLogId", "AdminLogRoundId")
                .HasDatabaseName("IX_admin_log_entity_admin_log_id_admin_log_round_id");

                b.ToTable("admin_log_entity", (string)null);
            });

            modelBuilder.Entity("Content.Server.Database.AdminLogPlayer", b =>
            {
                b.Property <Guid>("PlayerUserId")
                .HasColumnType("uuid")
                .HasColumnName("player_user_id");

                b.Property <int>("LogId")
                .HasColumnType("integer")
                .HasColumnName("log_id");

                b.Property <int>("RoundId")
                .HasColumnType("integer")
                .HasColumnName("round_id");

                b.HasKey("PlayerUserId", "LogId", "RoundId")
                .HasName("PK_admin_log_player");

                b.HasIndex("LogId", "RoundId");

                b.ToTable("admin_log_player", (string)null);
            });

            modelBuilder.Entity("Content.Server.Database.AdminRank", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasColumnName("admin_rank_id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("Name")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("name");

                b.HasKey("Id")
                .HasName("PK_admin_rank");

                b.ToTable("admin_rank", (string)null);
            });

            modelBuilder.Entity("Content.Server.Database.AdminRankFlag", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasColumnName("admin_rank_flag_id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("AdminRankId")
                .HasColumnType("integer")
                .HasColumnName("admin_rank_id");

                b.Property <string>("Flag")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("flag");

                b.HasKey("Id")
                .HasName("PK_admin_rank_flag");

                b.HasIndex("AdminRankId")
                .HasDatabaseName("IX_admin_rank_flag_admin_rank_id");

                b.HasIndex("Flag", "AdminRankId")
                .IsUnique();

                b.ToTable("admin_rank_flag", (string)null);
            });

            modelBuilder.Entity("Content.Server.Database.Antag", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasColumnName("antag_id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("AntagName")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("antag_name");

                b.Property <int>("ProfileId")
                .HasColumnType("integer")
                .HasColumnName("profile_id");

                b.HasKey("Id")
                .HasName("PK_antag");

                b.HasIndex("ProfileId", "AntagName")
                .IsUnique();

                b.ToTable("antag", (string)null);
            });

            modelBuilder.Entity("Content.Server.Database.AssignedUserId", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasColumnName("assigned_user_id_id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <Guid>("UserId")
                .HasColumnType("uuid")
                .HasColumnName("user_id");

                b.Property <string>("UserName")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("user_name");

                b.HasKey("Id")
                .HasName("PK_assigned_user_id");

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

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

                b.ToTable("assigned_user_id", (string)null);
            });

            modelBuilder.Entity("Content.Server.Database.ConnectionLog", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasColumnName("connection_log_id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <IPAddress>("Address")
                .IsRequired()
                .HasColumnType("inet")
                .HasColumnName("address");

                b.Property <byte?>("Denied")
                .HasColumnType("smallint")
                .HasColumnName("denied");

                b.Property <byte[]>("HWId")
                .HasColumnType("bytea")
                .HasColumnName("hwid");

                b.Property <DateTime>("Time")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("time");

                b.Property <Guid>("UserId")
                .HasColumnType("uuid")
                .HasColumnName("user_id");

                b.Property <string>("UserName")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("user_name");

                b.HasKey("Id")
                .HasName("PK_connection_log");

                b.HasIndex("UserId");

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

                b.HasCheckConstraint("AddressNotIPv6MappedIPv4", "NOT inet '::ffff:0.0.0.0/96' >>= address");
            });

            modelBuilder.Entity("Content.Server.Database.Job", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasColumnName("job_id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("JobName")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("job_name");

                b.Property <int>("Priority")
                .HasColumnType("integer")
                .HasColumnName("priority");

                b.Property <int>("ProfileId")
                .HasColumnType("integer")
                .HasColumnName("profile_id");

                b.HasKey("Id")
                .HasName("PK_job");

                b.HasIndex("ProfileId")
                .HasDatabaseName("IX_job_profile_id");

                b.HasIndex("ProfileId", "JobName")
                .IsUnique();

                b.HasIndex(new[] { "ProfileId" }, "IX_job_one_high_priority")
                .IsUnique()
                .HasFilter("priority = 3");

                b.ToTable("job", (string)null);
            });

            modelBuilder.Entity("Content.Server.Database.Player", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasColumnName("player_id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <DateTime>("FirstSeenTime")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("first_seen_time");

                b.Property <IPAddress>("LastSeenAddress")
                .IsRequired()
                .HasColumnType("inet")
                .HasColumnName("last_seen_address");

                b.Property <byte[]>("LastSeenHWId")
                .HasColumnType("bytea")
                .HasColumnName("last_seen_hwid");

                b.Property <DateTime>("LastSeenTime")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("last_seen_time");

                b.Property <string>("LastSeenUserName")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("last_seen_user_name");

                b.Property <Guid>("UserId")
                .HasColumnType("uuid")
                .HasColumnName("user_id");

                b.HasKey("Id")
                .HasName("PK_player");

                b.HasAlternateKey("UserId")
                .HasName("ak_player_user_id");

                b.HasIndex("LastSeenUserName");

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

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

                b.HasCheckConstraint("LastSeenAddressNotIPv6MappedIPv4", "NOT inet '::ffff:0.0.0.0/96' >>= last_seen_address");
            });

            modelBuilder.Entity("Content.Server.Database.Preference", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasColumnName("preference_id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("AdminOOCColor")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("admin_ooc_color");

                b.Property <int>("SelectedCharacterSlot")
                .HasColumnType("integer")
                .HasColumnName("selected_character_slot");

                b.Property <Guid>("UserId")
                .HasColumnType("uuid")
                .HasColumnName("user_id");

                b.HasKey("Id")
                .HasName("PK_preference");

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

                b.ToTable("preference", (string)null);
            });

            modelBuilder.Entity("Content.Server.Database.Profile", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasColumnName("profile_id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("Age")
                .HasColumnType("integer")
                .HasColumnName("age");

                b.Property <string>("Backpack")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("backpack");

                b.Property <string>("CharacterName")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("char_name");

                b.Property <string>("Clothing")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("clothing");

                b.Property <string>("EyeColor")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("eye_color");

                b.Property <string>("FacialHairColor")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("facial_hair_color");

                b.Property <string>("FacialHairName")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("facial_hair_name");

                b.Property <string>("Gender")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("gender");

                b.Property <string>("HairColor")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("hair_color");

                b.Property <string>("HairName")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("hair_name");

                b.Property <int>("PreferenceId")
                .HasColumnType("integer")
                .HasColumnName("preference_id");

                b.Property <int>("PreferenceUnavailable")
                .HasColumnType("integer")
                .HasColumnName("pref_unavailable");

                b.Property <string>("Sex")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("sex");

                b.Property <string>("SkinColor")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("skin_color");

                b.Property <int>("Slot")
                .HasColumnType("integer")
                .HasColumnName("slot");

                b.Property <string>("Species")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("species");

                b.HasKey("Id")
                .HasName("PK_profile");

                b.HasIndex("PreferenceId")
                .HasDatabaseName("IX_profile_preference_id");

                b.HasIndex("Slot", "PreferenceId")
                .IsUnique();

                b.ToTable("profile", (string)null);
            });

            modelBuilder.Entity("Content.Server.Database.Round", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasColumnName("round_id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.HasKey("Id")
                .HasName("PK_round");

                b.ToTable("round", (string)null);
            });

            modelBuilder.Entity("Content.Server.Database.ServerBan", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasColumnName("server_ban_id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <ValueTuple <IPAddress, int>?>("Address")
                .HasColumnType("inet")
                .HasColumnName("address");

                b.Property <DateTime>("BanTime")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("ban_time");

                b.Property <Guid?>("BanningAdmin")
                .HasColumnType("uuid")
                .HasColumnName("banning_admin");

                b.Property <DateTime?>("ExpirationTime")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("expiration_time");

                b.Property <byte[]>("HWId")
                .HasColumnType("bytea")
                .HasColumnName("hwid");

                b.Property <string>("Reason")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("reason");

                b.Property <Guid?>("UserId")
                .HasColumnType("uuid")
                .HasColumnName("user_id");

                b.HasKey("Id")
                .HasName("PK_server_ban");

                b.HasIndex("Address");

                b.HasIndex("UserId");

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

                b.HasCheckConstraint("AddressNotIPv6MappedIPv4", "NOT inet '::ffff:0.0.0.0/96' >>= address");

                b.HasCheckConstraint("HaveEitherAddressOrUserIdOrHWId", "address IS NOT NULL OR user_id IS NOT NULL OR hwid IS NOT NULL");
            });

            modelBuilder.Entity("Content.Server.Database.ServerBanHit", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasColumnName("server_ban_hit_id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("BanId")
                .HasColumnType("integer")
                .HasColumnName("ban_id");

                b.Property <int>("ConnectionId")
                .HasColumnType("integer")
                .HasColumnName("connection_id");

                b.HasKey("Id")
                .HasName("PK_server_ban_hit");

                b.HasIndex("BanId")
                .HasDatabaseName("IX_server_ban_hit_ban_id");

                b.HasIndex("ConnectionId")
                .HasDatabaseName("IX_server_ban_hit_connection_id");

                b.ToTable("server_ban_hit", (string)null);
            });

            modelBuilder.Entity("Content.Server.Database.ServerRoleBan", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasColumnName("server_role_ban_id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <ValueTuple <IPAddress, int>?>("Address")
                .HasColumnType("inet")
                .HasColumnName("address");

                b.Property <DateTime>("BanTime")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("ban_time");

                b.Property <Guid?>("BanningAdmin")
                .HasColumnType("uuid")
                .HasColumnName("banning_admin");

                b.Property <DateTime?>("ExpirationTime")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("expiration_time");

                b.Property <byte[]>("HWId")
                .HasColumnType("bytea")
                .HasColumnName("hwid");

                b.Property <string>("Reason")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("reason");

                b.Property <string>("RoleId")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("role_id");

                b.Property <Guid?>("UserId")
                .HasColumnType("uuid")
                .HasColumnName("user_id");

                b.HasKey("Id")
                .HasName("PK_server_role_ban");

                b.HasIndex("Address");

                b.HasIndex("UserId");

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

                b.HasCheckConstraint("AddressNotIPv6MappedIPv4", "NOT inet '::ffff:0.0.0.0/96' >>= address");

                b.HasCheckConstraint("HaveEitherAddressOrUserIdOrHWId", "address IS NOT NULL OR user_id IS NOT NULL OR hwid IS NOT NULL");
            });

            modelBuilder.Entity("Content.Server.Database.ServerRoleUnban", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasColumnName("role_unban_id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("BanId")
                .HasColumnType("integer")
                .HasColumnName("ban_id");

                b.Property <DateTime>("UnbanTime")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("unban_time");

                b.Property <Guid?>("UnbanningAdmin")
                .HasColumnType("uuid")
                .HasColumnName("unbanning_admin");

                b.HasKey("Id")
                .HasName("PK_server_role_unban");

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

                b.ToTable("server_role_unban", (string)null);
            });

            modelBuilder.Entity("Content.Server.Database.ServerUnban", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasColumnName("unban_id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("BanId")
                .HasColumnType("integer")
                .HasColumnName("ban_id");

                b.Property <DateTime>("UnbanTime")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("unban_time");

                b.Property <Guid?>("UnbanningAdmin")
                .HasColumnType("uuid")
                .HasColumnName("unbanning_admin");

                b.HasKey("Id")
                .HasName("PK_server_unban");

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

                b.ToTable("server_unban", (string)null);
            });

            modelBuilder.Entity("Content.Server.Database.Whitelist", b =>
            {
                b.Property <Guid>("UserId")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid")
                .HasColumnName("user_id");

                b.HasKey("UserId")
                .HasName("PK_whitelist");

                b.ToTable("whitelist", (string)null);
            });

            modelBuilder.Entity("PlayerRound", b =>
            {
                b.Property <int>("PlayersId")
                .HasColumnType("integer")
                .HasColumnName("players_id");

                b.Property <int>("RoundsId")
                .HasColumnType("integer")
                .HasColumnName("rounds_id");

                b.HasKey("PlayersId", "RoundsId")
                .HasName("PK_player_round");

                b.HasIndex("RoundsId")
                .HasDatabaseName("IX_player_round_rounds_id");

                b.ToTable("player_round", (string)null);
            });

            modelBuilder.Entity("Content.Server.Database.Admin", b =>
            {
                b.HasOne("Content.Server.Database.AdminRank", "AdminRank")
                .WithMany("Admins")
                .HasForeignKey("AdminRankId")
                .OnDelete(DeleteBehavior.SetNull)
                .HasConstraintName("FK_admin_admin_rank_admin_rank_id");

                b.Navigation("AdminRank");
            });

            modelBuilder.Entity("Content.Server.Database.AdminFlag", b =>
            {
                b.HasOne("Content.Server.Database.Admin", "Admin")
                .WithMany("Flags")
                .HasForeignKey("AdminId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("FK_admin_flag_admin_admin_id");

                b.Navigation("Admin");
            });

            modelBuilder.Entity("Content.Server.Database.AdminLog", b =>
            {
                b.HasOne("Content.Server.Database.Round", "Round")
                .WithMany("AdminLogs")
                .HasForeignKey("RoundId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("FK_admin_log_round_round_id");

                b.Navigation("Round");
            });

            modelBuilder.Entity("Content.Server.Database.AdminLogEntity", b =>
            {
                b.HasOne("Content.Server.Database.AdminLog", null)
                .WithMany("Entities")
                .HasForeignKey("AdminLogId", "AdminLogRoundId")
                .HasConstraintName("FK_admin_log_entity_admin_log_admin_log_id_admin_log_round_id");
            });

            modelBuilder.Entity("Content.Server.Database.AdminLogPlayer", b =>
            {
                b.HasOne("Content.Server.Database.Player", "Player")
                .WithMany("AdminLogs")
                .HasForeignKey("PlayerUserId")
                .HasPrincipalKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("FK_admin_log_player_player_player_user_id");

                b.HasOne("Content.Server.Database.AdminLog", "Log")
                .WithMany("Players")
                .HasForeignKey("LogId", "RoundId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("FK_admin_log_player_admin_log_log_id_round_id");

                b.Navigation("Log");

                b.Navigation("Player");
            });

            modelBuilder.Entity("Content.Server.Database.AdminRankFlag", b =>
            {
                b.HasOne("Content.Server.Database.AdminRank", "Rank")
                .WithMany("Flags")
                .HasForeignKey("AdminRankId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("FK_admin_rank_flag_admin_rank_admin_rank_id");

                b.Navigation("Rank");
            });

            modelBuilder.Entity("Content.Server.Database.Antag", b =>
            {
                b.HasOne("Content.Server.Database.Profile", "Profile")
                .WithMany("Antags")
                .HasForeignKey("ProfileId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("FK_antag_profile_profile_id");

                b.Navigation("Profile");
            });

            modelBuilder.Entity("Content.Server.Database.Job", b =>
            {
                b.HasOne("Content.Server.Database.Profile", "Profile")
                .WithMany("Jobs")
                .HasForeignKey("ProfileId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("FK_job_profile_profile_id");

                b.Navigation("Profile");
            });

            modelBuilder.Entity("Content.Server.Database.Profile", b =>
            {
                b.HasOne("Content.Server.Database.Preference", "Preference")
                .WithMany("Profiles")
                .HasForeignKey("PreferenceId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("FK_profile_preference_preference_id");

                b.Navigation("Preference");
            });

            modelBuilder.Entity("Content.Server.Database.ServerBanHit", b =>
            {
                b.HasOne("Content.Server.Database.ServerBan", "Ban")
                .WithMany("BanHits")
                .HasForeignKey("BanId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("FK_server_ban_hit_server_ban_ban_id");

                b.HasOne("Content.Server.Database.ConnectionLog", "Connection")
                .WithMany("BanHits")
                .HasForeignKey("ConnectionId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("FK_server_ban_hit_connection_log_connection_id");

                b.Navigation("Ban");

                b.Navigation("Connection");
            });

            modelBuilder.Entity("Content.Server.Database.ServerRoleUnban", b =>
            {
                b.HasOne("Content.Server.Database.ServerRoleBan", "Ban")
                .WithOne("Unban")
                .HasForeignKey("Content.Server.Database.ServerRoleUnban", "BanId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("FK_server_role_unban_server_role_ban_ban_id");

                b.Navigation("Ban");
            });

            modelBuilder.Entity("Content.Server.Database.ServerUnban", b =>
            {
                b.HasOne("Content.Server.Database.ServerBan", "Ban")
                .WithOne("Unban")
                .HasForeignKey("Content.Server.Database.ServerUnban", "BanId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("FK_server_unban_server_ban_ban_id");

                b.Navigation("Ban");
            });

            modelBuilder.Entity("PlayerRound", b =>
            {
                b.HasOne("Content.Server.Database.Player", null)
                .WithMany()
                .HasForeignKey("PlayersId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("FK_player_round_player_players_id");

                b.HasOne("Content.Server.Database.Round", null)
                .WithMany()
                .HasForeignKey("RoundsId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("FK_player_round_round_rounds_id");
            });

            modelBuilder.Entity("Content.Server.Database.Admin", b =>
            {
                b.Navigation("Flags");
            });

            modelBuilder.Entity("Content.Server.Database.AdminLog", b =>
            {
                b.Navigation("Entities");

                b.Navigation("Players");
            });

            modelBuilder.Entity("Content.Server.Database.AdminRank", b =>
            {
                b.Navigation("Admins");

                b.Navigation("Flags");
            });

            modelBuilder.Entity("Content.Server.Database.ConnectionLog", b =>
            {
                b.Navigation("BanHits");
            });

            modelBuilder.Entity("Content.Server.Database.Player", b =>
            {
                b.Navigation("AdminLogs");
            });

            modelBuilder.Entity("Content.Server.Database.Preference", b =>
            {
                b.Navigation("Profiles");
            });

            modelBuilder.Entity("Content.Server.Database.Profile", b =>
            {
                b.Navigation("Antags");

                b.Navigation("Jobs");
            });

            modelBuilder.Entity("Content.Server.Database.Round", b =>
            {
                b.Navigation("AdminLogs");
            });

            modelBuilder.Entity("Content.Server.Database.ServerBan", b =>
            {
                b.Navigation("BanHits");

                b.Navigation("Unban");
            });

            modelBuilder.Entity("Content.Server.Database.ServerRoleBan", b =>
            {
                b.Navigation("Unban");
            });
#pragma warning restore 612, 618
        }
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasAnnotation("ProductVersion", "6.0.1")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("Bonsai.Data.Models.AppUser", b =>
            {
                b.Property <string>("Id")
                .HasColumnType("text");

                b.Property <int>("AccessFailedCount")
                .HasColumnType("integer");

                b.Property <int>("AuthType")
                .HasColumnType("integer");

                b.Property <string>("Birthday")
                .HasMaxLength(10)
                .HasColumnType("character varying(10)");

                b.Property <string>("ConcurrencyStamp")
                .IsConcurrencyToken()
                .HasColumnType("text");

                b.Property <string>("Email")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <bool>("EmailConfirmed")
                .HasColumnType("boolean");

                b.Property <string>("FirstName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <bool>("IsValidated")
                .HasColumnType("boolean");

                b.Property <string>("LastName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <bool>("LockoutEnabled")
                .HasColumnType("boolean");

                b.Property <DateTimeOffset?>("LockoutEnd")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("MiddleName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("NormalizedEmail")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("NormalizedUserName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <Guid?>("PageId")
                .HasColumnType("uuid");

                b.Property <string>("PasswordHash")
                .HasColumnType("text");

                b.Property <string>("PhoneNumber")
                .HasColumnType("text");

                b.Property <bool>("PhoneNumberConfirmed")
                .HasColumnType("boolean");

                b.Property <string>("SecurityStamp")
                .HasColumnType("text");

                b.Property <bool>("TwoFactorEnabled")
                .HasColumnType("boolean");

                b.Property <string>("UserName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.HasKey("Id");

                b.HasIndex("NormalizedEmail")
                .HasDatabaseName("EmailIndex");

                b.HasIndex("NormalizedUserName")
                .IsUnique()
                .HasDatabaseName("UserNameIndex");

                b.HasIndex("PageId");

                b.ToTable("AspNetUsers", (string)null);
            });

            modelBuilder.Entity("Bonsai.Data.Models.ChangeEventGroup", b =>
            {
                b.Property <string>("GroupKey")
                .HasColumnType("text");

                b.Property <DateTimeOffset>("Date")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Ids")
                .HasColumnType("text");

                b.HasKey("GroupKey");

                b.ToView("ChangesGrouped");
            });

            modelBuilder.Entity("Bonsai.Data.Models.Changeset", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <string>("AppUserId")
                .HasColumnType("text");

                b.Property <string>("AuthorId")
                .IsRequired()
                .HasColumnType("text");

                b.Property <int>("ChangeType")
                .HasColumnType("integer");

                b.Property <DateTimeOffset>("Date")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid?>("EditedMediaId")
                .HasColumnType("uuid");

                b.Property <Guid?>("EditedPageId")
                .HasColumnType("uuid");

                b.Property <Guid?>("EditedRelationId")
                .HasColumnType("uuid");

                b.Property <int>("EntityType")
                .HasColumnType("integer");

                b.Property <Guid?>("GroupId")
                .HasColumnType("uuid");

                b.Property <Guid?>("RevertedChangesetId")
                .HasColumnType("uuid");

                b.Property <string>("UpdatedState")
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("AppUserId");

                b.HasIndex("AuthorId");

                b.HasIndex("EditedMediaId");

                b.HasIndex("EditedPageId");

                b.HasIndex("EditedRelationId");

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

            modelBuilder.Entity("Bonsai.Data.Models.DynamicConfigWrapper", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <string>("Value")
                .HasColumnType("text");

                b.HasKey("Id");

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

            modelBuilder.Entity("Bonsai.Data.Models.Media", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <string>("Date")
                .HasMaxLength(30)
                .HasColumnType("character varying(30)");

                b.Property <string>("Description")
                .HasColumnType("text");

                b.Property <string>("FilePath")
                .IsRequired()
                .HasMaxLength(300)
                .HasColumnType("character varying(300)");

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

                b.Property <bool>("IsProcessed")
                .HasColumnType("boolean");

                b.Property <string>("Key")
                .IsRequired()
                .HasMaxLength(30)
                .HasColumnType("character varying(30)");

                b.Property <string>("MimeType")
                .IsRequired()
                .HasMaxLength(100)
                .HasColumnType("character varying(100)");

                b.Property <string>("Title")
                .HasColumnType("text");

                b.Property <int>("Type")
                .HasColumnType("integer");

                b.Property <DateTimeOffset>("UploadDate")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("UploaderId")
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("IsDeleted");

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

                b.HasIndex("UploaderId");

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

            modelBuilder.Entity("Bonsai.Data.Models.MediaEncodingJob", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <Guid>("MediaId")
                .HasColumnType("uuid");

                b.HasKey("Id");

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

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

            modelBuilder.Entity("Bonsai.Data.Models.MediaTag", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <string>("Coordinates")
                .HasMaxLength(100)
                .HasColumnType("character varying(100)");

                b.Property <Guid>("MediaId")
                .HasColumnType("uuid");

                b.Property <Guid?>("ObjectId")
                .HasColumnType("uuid");

                b.Property <string>("ObjectTitle")
                .HasColumnType("text");

                b.Property <int>("Type")
                .HasColumnType("integer");

                b.HasKey("Id");

                b.HasIndex("MediaId");

                b.HasIndex("ObjectId");

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

            modelBuilder.Entity("Bonsai.Data.Models.Page", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <DateTimeOffset>("CreationDate")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Description")
                .HasColumnType("text");

                b.Property <string>("Facts")
                .HasColumnType("text");

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

                b.Property <string>("Key")
                .IsRequired()
                .HasMaxLength(200)
                .HasColumnType("character varying(200)");

                b.Property <DateTimeOffset>("LastUpdateDate")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid?>("MainPhotoId")
                .HasColumnType("uuid");

                b.Property <string>("Title")
                .IsRequired()
                .HasMaxLength(200)
                .HasColumnType("character varying(200)");

                b.Property <Guid?>("TreeLayoutId")
                .HasColumnType("uuid");

                b.Property <int>("Type")
                .HasColumnType("integer");

                b.HasKey("Id");

                b.HasIndex("IsDeleted");

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

                b.HasIndex("MainPhotoId");

                b.HasIndex("TreeLayoutId");

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

            modelBuilder.Entity("Bonsai.Data.Models.PageAlias", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <string>("Key")
                .IsRequired()
                .HasMaxLength(200)
                .HasColumnType("character varying(200)");

                b.Property <int>("Order")
                .HasColumnType("integer");

                b.Property <Guid>("PageId")
                .HasColumnType("uuid");

                b.Property <string>("Title")
                .IsRequired()
                .HasMaxLength(200)
                .HasColumnType("character varying(200)");

                b.HasKey("Id");

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

                b.HasIndex("PageId");

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

            modelBuilder.Entity("Bonsai.Data.Models.PageDraft", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <string>("Content")
                .IsRequired()
                .HasColumnType("text");

                b.Property <DateTimeOffset>("LastUpdateDate")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid?>("PageId")
                .HasColumnType("uuid");

                b.Property <string>("UserId")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("PageId");

                b.HasIndex("UserId");

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

            modelBuilder.Entity("Bonsai.Data.Models.PageReference", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <Guid>("DestinationId")
                .HasColumnType("uuid");

                b.Property <Guid>("SourceId")
                .HasColumnType("uuid");

                b.HasKey("Id");

                b.HasIndex("DestinationId");

                b.HasIndex("SourceId");

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

            modelBuilder.Entity("Bonsai.Data.Models.PageScored", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <int>("CompletenessScore")
                .HasColumnType("integer");

                b.Property <DateTimeOffset>("CreationDate")
                .HasColumnType("timestamp with time zone");

                b.Property <bool>("HasAnimalName")
                .HasColumnType("boolean");

                b.Property <bool>("HasAnimalSpecies")
                .HasColumnType("boolean");

                b.Property <bool>("HasBirthPlace")
                .HasColumnType("boolean");

                b.Property <bool>("HasBirthday")
                .HasColumnType("boolean");

                b.Property <bool>("HasEventDate")
                .HasColumnType("boolean");

                b.Property <bool>("HasGender")
                .HasColumnType("boolean");

                b.Property <bool>("HasHumanName")
                .HasColumnType("boolean");

                b.Property <bool>("HasLocationAddress")
                .HasColumnType("boolean");

                b.Property <bool>("HasPhoto")
                .HasColumnType("boolean");

                b.Property <bool>("HasRelations")
                .HasColumnType("boolean");

                b.Property <bool>("HasText")
                .HasColumnType("boolean");

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

                b.Property <string>("Key")
                .HasColumnType("text");

                b.Property <DateTimeOffset>("LastUpdateDate")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid?>("MainPhotoId")
                .HasColumnType("uuid");

                b.Property <string>("Title")
                .HasColumnType("text");

                b.Property <int>("Type")
                .HasColumnType("integer");

                b.HasKey("Id");

                b.HasIndex("MainPhotoId");

                b.ToView("PagesScored");
            });

            modelBuilder.Entity("Bonsai.Data.Models.Relation", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <Guid>("DestinationId")
                .HasColumnType("uuid");

                b.Property <string>("Duration")
                .HasMaxLength(30)
                .HasColumnType("character varying(30)");

                b.Property <Guid?>("EventId")
                .HasColumnType("uuid");

                b.Property <bool>("IsComplementary")
                .HasColumnType("boolean");

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

                b.Property <Guid>("SourceId")
                .HasColumnType("uuid");

                b.Property <int>("Type")
                .HasColumnType("integer");

                b.HasKey("Id");

                b.HasIndex("DestinationId");

                b.HasIndex("EventId");

                b.HasIndex("IsComplementary");

                b.HasIndex("IsDeleted");

                b.HasIndex("SourceId");

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

            modelBuilder.Entity("Bonsai.Data.Models.TreeLayout", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <DateTimeOffset>("GenerationDate")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("LayoutJson")
                .HasColumnType("text");

                b.HasKey("Id");

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

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b =>
            {
                b.Property <string>("Id")
                .HasColumnType("text");

                b.Property <string>("ConcurrencyStamp")
                .IsConcurrencyToken()
                .HasColumnType("text");

                b.Property <string>("Name")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("NormalizedName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.HasKey("Id");

                b.HasIndex("NormalizedName")
                .IsUnique()
                .HasDatabaseName("RoleNameIndex");

                b.ToTable("AspNetRoles", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("ClaimType")
                .HasColumnType("text");

                b.Property <string>("ClaimValue")
                .HasColumnType("text");

                b.Property <string>("RoleId")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("RoleId");

                b.ToTable("AspNetRoleClaims", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("ClaimType")
                .HasColumnType("text");

                b.Property <string>("ClaimValue")
                .HasColumnType("text");

                b.Property <string>("UserId")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("UserId");

                b.ToTable("AspNetUserClaims", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
            {
                b.Property <string>("LoginProvider")
                .HasColumnType("text");

                b.Property <string>("ProviderKey")
                .HasColumnType("text");

                b.Property <string>("ProviderDisplayName")
                .HasColumnType("text");

                b.Property <string>("UserId")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("LoginProvider", "ProviderKey");

                b.HasIndex("UserId");

                b.ToTable("AspNetUserLogins", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
            {
                b.Property <string>("UserId")
                .HasColumnType("text");

                b.Property <string>("RoleId")
                .HasColumnType("text");

                b.HasKey("UserId", "RoleId");

                b.HasIndex("RoleId");

                b.ToTable("AspNetUserRoles", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
            {
                b.Property <string>("UserId")
                .HasColumnType("text");

                b.Property <string>("LoginProvider")
                .HasColumnType("text");

                b.Property <string>("Name")
                .HasColumnType("text");

                b.Property <string>("Value")
                .HasColumnType("text");

                b.HasKey("UserId", "LoginProvider", "Name");

                b.ToTable("AspNetUserTokens", (string)null);
            });

            modelBuilder.Entity("Bonsai.Data.Models.AppUser", b =>
            {
                b.HasOne("Bonsai.Data.Models.Page", "Page")
                .WithMany()
                .HasForeignKey("PageId");

                b.Navigation("Page");
            });

            modelBuilder.Entity("Bonsai.Data.Models.Changeset", b =>
            {
                b.HasOne("Bonsai.Data.Models.AppUser", null)
                .WithMany("Changes")
                .HasForeignKey("AppUserId");

                b.HasOne("Bonsai.Data.Models.AppUser", "Author")
                .WithMany()
                .HasForeignKey("AuthorId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("Bonsai.Data.Models.Media", "EditedMedia")
                .WithMany()
                .HasForeignKey("EditedMediaId");

                b.HasOne("Bonsai.Data.Models.Page", "EditedPage")
                .WithMany()
                .HasForeignKey("EditedPageId");

                b.HasOne("Bonsai.Data.Models.Relation", "EditedRelation")
                .WithMany()
                .HasForeignKey("EditedRelationId");

                b.Navigation("Author");

                b.Navigation("EditedMedia");

                b.Navigation("EditedPage");

                b.Navigation("EditedRelation");
            });

            modelBuilder.Entity("Bonsai.Data.Models.Media", b =>
            {
                b.HasOne("Bonsai.Data.Models.AppUser", "Uploader")
                .WithMany()
                .HasForeignKey("UploaderId");

                b.Navigation("Uploader");
            });

            modelBuilder.Entity("Bonsai.Data.Models.MediaEncodingJob", b =>
            {
                b.HasOne("Bonsai.Data.Models.Media", "Media")
                .WithOne()
                .HasForeignKey("Bonsai.Data.Models.MediaEncodingJob", "MediaId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Media");
            });

            modelBuilder.Entity("Bonsai.Data.Models.MediaTag", b =>
            {
                b.HasOne("Bonsai.Data.Models.Media", "Media")
                .WithMany("Tags")
                .HasForeignKey("MediaId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("Bonsai.Data.Models.Page", "Object")
                .WithMany("MediaTags")
                .HasForeignKey("ObjectId");

                b.Navigation("Media");

                b.Navigation("Object");
            });

            modelBuilder.Entity("Bonsai.Data.Models.Page", b =>
            {
                b.HasOne("Bonsai.Data.Models.Media", "MainPhoto")
                .WithMany()
                .HasForeignKey("MainPhotoId");

                b.HasOne("Bonsai.Data.Models.TreeLayout", "TreeLayout")
                .WithMany()
                .HasForeignKey("TreeLayoutId");

                b.Navigation("MainPhoto");

                b.Navigation("TreeLayout");
            });

            modelBuilder.Entity("Bonsai.Data.Models.PageAlias", b =>
            {
                b.HasOne("Bonsai.Data.Models.Page", "Page")
                .WithMany("Aliases")
                .HasForeignKey("PageId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Page");
            });

            modelBuilder.Entity("Bonsai.Data.Models.PageDraft", b =>
            {
                b.HasOne("Bonsai.Data.Models.AppUser", "User")
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("User");
            });

            modelBuilder.Entity("Bonsai.Data.Models.PageReference", b =>
            {
                b.HasOne("Bonsai.Data.Models.Page", "Destination")
                .WithMany("References")
                .HasForeignKey("DestinationId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("Bonsai.Data.Models.Page", "Source")
                .WithMany()
                .HasForeignKey("SourceId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Destination");

                b.Navigation("Source");
            });

            modelBuilder.Entity("Bonsai.Data.Models.PageScored", b =>
            {
                b.HasOne("Bonsai.Data.Models.Media", "MainPhoto")
                .WithMany()
                .HasForeignKey("MainPhotoId");

                b.Navigation("MainPhoto");
            });

            modelBuilder.Entity("Bonsai.Data.Models.Relation", b =>
            {
                b.HasOne("Bonsai.Data.Models.Page", "Destination")
                .WithMany()
                .HasForeignKey("DestinationId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("Bonsai.Data.Models.Page", "Event")
                .WithMany()
                .HasForeignKey("EventId");

                b.HasOne("Bonsai.Data.Models.Page", "Source")
                .WithMany("Relations")
                .HasForeignKey("SourceId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Destination");

                b.Navigation("Event");

                b.Navigation("Source");
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
            {
                b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
                .WithMany()
                .HasForeignKey("RoleId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
            {
                b.HasOne("Bonsai.Data.Models.AppUser", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
            {
                b.HasOne("Bonsai.Data.Models.AppUser", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
            {
                b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
                .WithMany()
                .HasForeignKey("RoleId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("Bonsai.Data.Models.AppUser", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
            {
                b.HasOne("Bonsai.Data.Models.AppUser", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Bonsai.Data.Models.AppUser", b =>
            {
                b.Navigation("Changes");
            });

            modelBuilder.Entity("Bonsai.Data.Models.Media", b =>
            {
                b.Navigation("Tags");
            });

            modelBuilder.Entity("Bonsai.Data.Models.Page", b =>
            {
                b.Navigation("Aliases");

                b.Navigation("MediaTags");

                b.Navigation("References");

                b.Navigation("Relations");
            });
#pragma warning restore 612, 618
        }
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasAnnotation("ProductVersion", "6.0.0")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "postgis");
            NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "uuid-ossp");
            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.AccommodationChangeLog", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("AccommodationId")
                .HasColumnType("integer");

                b.Property <JsonDocument>("ChangeEventData")
                .IsRequired()
                .HasColumnType("jsonb");

                b.Property <DateTimeOffset>("Created")
                .HasColumnType("timestamp with time zone");

                b.Property <int>("EventSource")
                .HasColumnType("integer");

                b.Property <int>("EventType")
                .HasColumnType("integer");

                b.HasKey("Id");

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

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.Accommodations.RichAccommodationDetails", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("AccommodationWithManualCorrections")
                .IsRequired()
                .HasColumnType("jsonb");

                b.Property <string>("CountryCode")
                .HasColumnType("text");

                b.Property <int>("CountryId")
                .HasColumnType("integer");

                b.Property <DateTimeOffset>("Created")
                .ValueGeneratedOnAdd()
                .HasColumnType("timestamp with time zone")
                .HasDefaultValueSql("now() at time zone 'utc'");

                b.Property <int>("DeactivationReason")
                .HasColumnType("integer");

                b.Property <string>("DeactivationReasonDescription")
                .HasColumnType("text");

                b.Property <string>("FinalAccommodation")
                .IsRequired()
                .HasColumnType("jsonb");

                b.Property <bool>("HasDirectContract")
                .HasColumnType("boolean");

                b.Property <bool>("IsActive")
                .HasColumnType("boolean");

                b.Property <bool>("IsCorrected")
                .ValueGeneratedOnAdd()
                .HasColumnType("boolean")
                .HasDefaultValue(true);

                b.Property <string>("KeyData")
                .IsRequired()
                .HasColumnType("jsonb");

                b.Property <int?>("LocalityId")
                .HasColumnType("integer");

                b.Property <int?>("LocalityZoneId")
                .HasColumnType("integer");

                b.Property <DateTimeOffset>("Modified")
                .ValueGeneratedOnAdd()
                .HasColumnType("timestamp with time zone")
                .HasDefaultValueSql("now() at time zone 'utc'");

                b.Property <string>("SupplierAccommodationCodes")
                .IsRequired()
                .HasColumnType("jsonb");

                b.Property <string>("SuppliersPriority")
                .IsRequired()
                .HasColumnType("jsonb");

                b.HasKey("Id");

                b.HasIndex("CountryId");

                b.HasIndex("LocalityId");

                b.HasIndex("LocalityZoneId");

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

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.AccommodationUncertainMatches", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <DateTimeOffset>("Created")
                .ValueGeneratedOnAdd()
                .HasColumnType("timestamp with time zone")
                .HasDefaultValueSql("now() at time zone 'utc'");

                b.Property <int>("HtIdToMerge")
                .HasColumnType("integer");

                b.Property <bool>("IsActive")
                .ValueGeneratedOnAdd()
                .HasColumnType("boolean")
                .HasDefaultValue(true);

                b.Property <DateTimeOffset>("Modified")
                .ValueGeneratedOnAdd()
                .HasColumnType("timestamp with time zone")
                .HasDefaultValueSql("now() at time zone 'utc'");

                b.Property <float>("Score")
                .HasColumnType("real");

                b.Property <int>("SourceHtId")
                .HasColumnType("integer");

                b.HasKey("Id");

                b.HasIndex("HtIdToMerge");

                b.HasIndex("SourceHtId");

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

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.Ancillary.InvalidAccommodationMappingEntry", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("AccommodationId")
                .HasColumnType("integer");

                b.Property <List <MatchingResultEntry> >("MatchingResults")
                .IsRequired()
                .HasColumnType("jsonb");

                b.Property <Dictionary <string, string> >("Suppliers")
                .HasColumnType("jsonb");

                b.HasKey("Id");

                b.ToTable("InvalidAccommodationMappings", (string)null);
            });

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.Country", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("Code")
                .IsRequired()
                .HasColumnType("text");

                b.Property <DateTimeOffset>("Created")
                .ValueGeneratedOnAdd()
                .HasColumnType("timestamp with time zone")
                .HasDefaultValueSql("now() at time zone 'utc'");

                b.Property <bool>("IsActive")
                .ValueGeneratedOnAdd()
                .HasColumnType("boolean")
                .HasDefaultValue(true);

                b.Property <DateTimeOffset>("Modified")
                .ValueGeneratedOnAdd()
                .HasColumnType("timestamp with time zone")
                .HasDefaultValueSql("now() at time zone 'utc'");

                b.Property <MultiLanguage <string> >("Names")
                .IsRequired()
                .HasColumnType("jsonb");

                b.Property <string>("SupplierCountryCodes")
                .IsRequired()
                .HasColumnType("jsonb");

                b.HasKey("Id");

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

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.DataUpdateHistory", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("SupplierNameCode")
                .IsRequired()
                .HasColumnType("text");

                b.Property <int>("Type")
                .HasColumnType("integer");

                b.Property <DateTimeOffset>("UpdateTime")
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

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

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.HtAccommodationMapping", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <DateTimeOffset>("Created")
                .HasColumnType("timestamp with time zone");

                b.Property <int>("HtId")
                .HasColumnType("integer");

                b.Property <bool>("IsActive")
                .HasColumnType("boolean");

                b.Property <HashSet <int> >("MappedHtIds")
                .IsRequired()
                .HasColumnType("jsonb");

                b.Property <DateTimeOffset>("Modified")
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

                b.HasIndex("HtId");

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

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.Localities.Locality", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("CountryId")
                .HasColumnType("integer");

                b.Property <DateTimeOffset>("Created")
                .ValueGeneratedOnAdd()
                .HasColumnType("timestamp with time zone")
                .HasDefaultValueSql("now() at time zone 'utc'");

                b.Property <bool>("IsActive")
                .ValueGeneratedOnAdd()
                .HasColumnType("boolean")
                .HasDefaultValue(true);

                b.Property <DateTimeOffset>("Modified")
                .ValueGeneratedOnAdd()
                .HasColumnType("timestamp with time zone")
                .HasDefaultValueSql("now() at time zone 'utc'");

                b.Property <MultiLanguage <string> >("Names")
                .IsRequired()
                .HasColumnType("jsonb");

                b.Property <string>("SupplierLocalityCodes")
                .HasColumnType("jsonb");

                b.HasKey("Id");

                b.HasIndex("CountryId");

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

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.Localities.LocalityCandidate", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("CountryId")
                .HasColumnType("integer");

                b.Property <DateTimeOffset>("Created")
                .ValueGeneratedOnAdd()
                .HasColumnType("timestamp with time zone")
                .HasDefaultValueSql("now() at time zone 'utc'");

                b.Property <MultiLanguage <string> >("Names")
                .IsRequired()
                .HasColumnType("jsonb");

                b.HasKey("Id");

                b.HasIndex("CountryId");

                b.ToTable("LocalityCandidates", (string)null);
            });

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.Localities.LocalitySynonym", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <DateTimeOffset>("Created")
                .ValueGeneratedOnAdd()
                .HasColumnType("timestamp with time zone")
                .HasDefaultValueSql("now() at time zone 'utc'");

                b.Property <int?>("ExLocalityId")
                .HasColumnType("integer");

                b.Property <int>("LocalityId")
                .HasColumnType("integer");

                b.Property <DateTimeOffset>("Modified")
                .ValueGeneratedOnAdd()
                .HasColumnType("timestamp with time zone")
                .HasDefaultValueSql("now() at time zone 'utc'");

                b.Property <MultiLanguage <string> >("Names")
                .IsRequired()
                .HasColumnType("jsonb");

                b.Property <int>("SynonymType")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasDefaultValue(1);

                b.HasKey("Id");

                b.HasIndex("ExLocalityId");

                NpgsqlIndexBuilderExtensions.IncludeProperties(b.HasIndex("ExLocalityId"), new[] { "SynonymType" });

                b.HasIndex("LocalityId");

                b.ToTable("LocalitySynonyms", (string)null);
            });

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.LocalityZone", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <DateTimeOffset>("Created")
                .ValueGeneratedOnAdd()
                .HasColumnType("timestamp with time zone")
                .HasDefaultValueSql("now() at time zone 'utc'");

                b.Property <bool>("IsActive")
                .HasColumnType("boolean");

                b.Property <int>("LocalityId")
                .HasColumnType("integer");

                b.Property <DateTimeOffset>("Modified")
                .ValueGeneratedOnAdd()
                .HasColumnType("timestamp with time zone")
                .HasDefaultValueSql("now() at time zone 'utc'");

                b.Property <MultiLanguage <string> >("Names")
                .IsRequired()
                .HasColumnType("jsonb");

                b.Property <string>("SupplierLocalityZoneCodes")
                .HasColumnType("jsonb");

                b.HasKey("Id");

                b.HasIndex("LocalityId");

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

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.Mappers.RawAccommodation", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <JsonDocument>("Accommodation")
                .IsRequired()
                .HasColumnType("jsonb");

                b.Property <string>("CountryCode")
                .IsRequired()
                .HasColumnType("text");

                b.Property <MultiLanguage <string> >("CountryNames")
                .IsRequired()
                .HasColumnType("jsonb");

                b.Property <DateTimeOffset>("Created")
                .ValueGeneratedOnAdd()
                .HasColumnType("timestamp with time zone")
                .HasDefaultValueSql("now() at time zone 'utc'");

                b.Property <MultiLanguage <string> >("LocalityNames")
                .HasColumnType("jsonb");

                b.Property <MultiLanguage <string> >("LocalityZoneNames")
                .HasColumnType("jsonb");

                b.Property <DateTimeOffset>("Modified")
                .ValueGeneratedOnAdd()
                .HasColumnType("timestamp with time zone")
                .HasDefaultValueSql("now() at time zone 'utc'");

                b.Property <int>("Supplier")
                .HasColumnType("integer");

                b.Property <string>("SupplierAccommodationId")
                .IsRequired()
                .HasColumnType("text");

                b.Property <string>("SupplierLocalityCode")
                .HasColumnType("text");

                b.Property <string>("SupplierLocalityZoneCode")
                .HasColumnType("text");

                b.Property <string>("SupplierNameCode")
                .HasColumnType("text");

                b.HasKey("Id");

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

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.ProjectionForGroupedAccommodations", b =>
            {
                b.Property <string>("SupplierCode")
                .HasColumnType("text");

                b.ToTable("ProjectionForGroupedAccommodations", null, t => t.ExcludeFromMigrations());
            });

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.ProjectionForSupplierLocality", b =>
            {
                b.Property <MultiLanguage <string> >("LocalityNames")
                .HasColumnType("jsonb");

                b.Property <int>("Supplier")
                .HasColumnType("integer");

                b.ToTable("ProjectionForSupplierLocalities", null, t => t.ExcludeFromMigrations());
            });

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.StaticData", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("Type")
                .HasColumnType("integer");

                b.Property <JsonDocument>("Value")
                .HasColumnType("jsonb");

                b.HasKey("Id");

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

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.Accommodations.RichAccommodationDetails", b =>
            {
                b.HasOne("HappyTravel.Nakijin.Data.Models.Country", "Country")
                .WithMany("Accommodations")
                .HasForeignKey("CountryId")
                .OnDelete(DeleteBehavior.Restrict)
                .IsRequired();

                b.HasOne("HappyTravel.Nakijin.Data.Models.Localities.Locality", "Locality")
                .WithMany("Accommodations")
                .HasForeignKey("LocalityId")
                .OnDelete(DeleteBehavior.Restrict);

                b.HasOne("HappyTravel.Nakijin.Data.Models.LocalityZone", "LocalityZone")
                .WithMany("Accommodations")
                .HasForeignKey("LocalityZoneId")
                .OnDelete(DeleteBehavior.Restrict);

                b.Navigation("Country");

                b.Navigation("Locality");

                b.Navigation("LocalityZone");
            });

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.AccommodationUncertainMatches", b =>
            {
                b.HasOne("HappyTravel.Nakijin.Data.Models.Accommodations.RichAccommodationDetails", "AccommodationToMatch")
                .WithMany("AccommodationToMatchUncertainMatches")
                .HasForeignKey("HtIdToMerge")
                .OnDelete(DeleteBehavior.Restrict)
                .IsRequired();

                b.HasOne("HappyTravel.Nakijin.Data.Models.Accommodations.RichAccommodationDetails", "SourceAccommodation")
                .WithMany("SourceAccommodationUncertainMatches")
                .HasForeignKey("SourceHtId")
                .OnDelete(DeleteBehavior.Restrict)
                .IsRequired();

                b.Navigation("AccommodationToMatch");

                b.Navigation("SourceAccommodation");
            });

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.HtAccommodationMapping", b =>
            {
                b.HasOne("HappyTravel.Nakijin.Data.Models.Accommodations.RichAccommodationDetails", "Accommodation")
                .WithMany("HtAccommodationMappings")
                .HasForeignKey("HtId")
                .OnDelete(DeleteBehavior.Restrict)
                .IsRequired();

                b.Navigation("Accommodation");
            });

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.Localities.Locality", b =>
            {
                b.HasOne("HappyTravel.Nakijin.Data.Models.Country", "Country")
                .WithMany("Localities")
                .HasForeignKey("CountryId")
                .OnDelete(DeleteBehavior.Restrict)
                .IsRequired();

                b.Navigation("Country");
            });

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.Localities.LocalityCandidate", b =>
            {
                b.HasOne("HappyTravel.Nakijin.Data.Models.Country", "Country")
                .WithMany("LocalityCandidates")
                .HasForeignKey("CountryId")
                .OnDelete(DeleteBehavior.Restrict)
                .IsRequired();

                b.Navigation("Country");
            });

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.Localities.LocalitySynonym", b =>
            {
                b.HasOne("HappyTravel.Nakijin.Data.Models.Localities.Locality", "Locality")
                .WithMany("LocalitySynonyms")
                .HasForeignKey("LocalityId")
                .OnDelete(DeleteBehavior.Restrict)
                .IsRequired();

                b.Navigation("Locality");
            });

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.LocalityZone", b =>
            {
                b.HasOne("HappyTravel.Nakijin.Data.Models.Localities.Locality", "Locality")
                .WithMany("LocalityZones")
                .HasForeignKey("LocalityId")
                .OnDelete(DeleteBehavior.Restrict)
                .IsRequired();

                b.Navigation("Locality");
            });

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.Accommodations.RichAccommodationDetails", b =>
            {
                b.Navigation("AccommodationToMatchUncertainMatches");

                b.Navigation("HtAccommodationMappings");

                b.Navigation("SourceAccommodationUncertainMatches");
            });

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.Country", b =>
            {
                b.Navigation("Accommodations");

                b.Navigation("Localities");

                b.Navigation("LocalityCandidates");
            });

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.Localities.Locality", b =>
            {
                b.Navigation("Accommodations");

                b.Navigation("LocalitySynonyms");

                b.Navigation("LocalityZones");
            });

            modelBuilder.Entity("HappyTravel.Nakijin.Data.Models.LocalityZone", b =>
            {
                b.Navigation("Accommodations");
            });
#pragma warning restore 612, 618
        }
Esempio n. 9
0
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasDefaultSchema("withdrawals")
            .HasAnnotation("ProductVersion", "6.0.4")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("Service.Bitgo.WithdrawalProcessor.Postgres.Models.WithdrawalEntity", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <decimal>("ActualFee")
                .HasColumnType("numeric");

                b.Property <string>("ActualFeeAssetSymbol")
                .HasColumnType("text");

                b.Property <decimal>("Amount")
                .HasColumnType("numeric");

                b.Property <decimal>("AssetIndexPrice")
                .HasColumnType("numeric");

                b.Property <string>("AssetSymbol")
                .HasMaxLength(64)
                .HasColumnType("character varying(64)");

                b.Property <string>("Blockchain")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("BrokerId")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <bool>("Cancelling")
                .HasColumnType("boolean");

                b.Property <string>("ClientId")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("ClientIp")
                .HasMaxLength(64)
                .HasColumnType("character varying(64)");

                b.Property <string>("ClientLang")
                .HasMaxLength(64)
                .HasColumnType("character varying(64)");

                b.Property <string>("Comment")
                .HasMaxLength(512)
                .HasColumnType("character varying(512)");

                b.Property <string>("DestinationClientId")
                .HasColumnType("text");

                b.Property <string>("DestinationWalletId")
                .HasColumnType("text");

                b.Property <DateTime>("EventDate")
                .ValueGeneratedOnAdd()
                .HasColumnType("timestamp with time zone")
                .HasDefaultValue(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc));

                b.Property <string>("ExternalSystemId")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <decimal>("FeeAmount")
                .HasColumnType("numeric");

                b.Property <string>("FeeAssetSymbol")
                .HasColumnType("text");

                b.Property <string>("FeeRefundTransactionId")
                .HasColumnType("text");

                b.Property <string>("Integration")
                .HasMaxLength(64)
                .HasColumnType("character varying(64)");

                b.Property <bool>("IsInternal")
                .HasColumnType("boolean");

                b.Property <string>("LastError")
                .HasMaxLength(2048)
                .HasColumnType("character varying(2048)");

                b.Property <DateTime>("LastTs")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("MatchingEngineId")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <int>("MeErrorCode")
                .HasColumnType("integer");

                b.Property <DateTime>("NotificationTime")
                .ValueGeneratedOnAdd()
                .HasColumnType("timestamp with time zone")
                .HasDefaultValue(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc));

                b.Property <string>("RefundTransactionId")
                .HasColumnType("text");

                b.Property <int>("RetriesCount")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasDefaultValue(0);

                b.Property <string>("Signature")
                .HasColumnType("text");

                b.Property <long>("SignatureIssuedAt")
                .HasColumnType("bigint");

                b.Property <int>("Status")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasDefaultValue(0);

                b.Property <string>("ToAddress")
                .HasMaxLength(512)
                .HasColumnType("character varying(512)");

                b.Property <string>("ToTag")
                .HasColumnType("text");

                b.Property <string>("TransactionId")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("Txid")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("WalletId")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <int>("WorkflowState")
                .HasColumnType("integer");

                b.HasKey("Id");

                b.HasIndex("LastTs");

                b.HasIndex("Status");

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

                b.HasIndex("Integration", "ExternalSystemId")
                .IsUnique();

                b.ToTable("withdrawals", "withdrawals");
            });

            modelBuilder.Entity("Service.Bitgo.WithdrawalProcessor.Postgres.Models.WithdrawalSettingsEntity", b =>
            {
                b.Property <string>("Id")
                .HasColumnType("text");

                b.Property <int>("Mode")
                .HasColumnType("integer");

                b.HasKey("Id");

                b.ToTable("withdrawal_settings", "withdrawals");
            });
#pragma warning restore 612, 618
        }
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasDefaultSchema("TransformationModule")
            .HasAnnotation("ProductVersion", "6.0.0")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);
            NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "fuzzystrmatch");
            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Characters.Model.Character", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <string>("AvatarUrl")
                .HasColumnType("text");
                b.Property <string>("Description")
                .HasColumnType("text");
                b.Property <bool>("IsCurrent")
                .HasColumnType("boolean");
                b.Property <bool>("IsDefault")
                .HasColumnType("boolean");
                b.Property <bool>("IsNSFW")
                .HasColumnType("boolean");
                b.Property <string>("Name")
                .IsRequired()
                .HasColumnType("text");
                b.Property <string>("Nickname")
                .HasColumnType("text");
                b.Property <long>("OwnerID")
                .HasColumnType("bigint");
                b.Property <string>("PronounProviderFamily")
                .IsRequired()
                .HasColumnType("text");
                b.Property <long?>("RoleID")
                .HasColumnType("bigint");
                b.Property <long>("ServerID")
                .HasColumnType("bigint");
                b.Property <string>("Summary")
                .HasColumnType("text");
                b.HasKey("ID");
                b.HasIndex("OwnerID");
                b.HasIndex("RoleID");
                b.HasIndex("ServerID");
                b.ToTable("Characters", "CharacterModule", t => t.ExcludeFromMigrations());
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Characters.Model.CharacterRole", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <int>("Access")
                .HasColumnType("integer");
                b.Property <long>("DiscordID")
                .HasColumnType("bigint");
                b.Property <long>("ServerID")
                .HasColumnType("bigint");
                b.HasKey("ID");
                b.HasIndex("ServerID");
                b.ToTable("CharacterRoles", "CharacterModule", t => t.ExcludeFromMigrations());
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Characters.Model.Data.Image", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <string>("Caption")
                .IsRequired()
                .HasColumnType("text");
                b.Property <long?>("CharacterID")
                .HasColumnType("bigint");
                b.Property <bool>("IsNSFW")
                .HasColumnType("boolean");
                b.Property <string>("Name")
                .IsRequired()
                .HasColumnType("text");
                b.Property <string>("Url")
                .IsRequired()
                .HasColumnType("text");
                b.HasKey("ID");
                b.HasIndex("CharacterID");
                b.ToTable("Images", "CharacterModule", t => t.ExcludeFromMigrations());
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <string>("Description")
                .HasColumnType("text");
                b.Property <long>("DiscordID")
                .HasColumnType("bigint");
                b.Property <bool>("IsNSFW")
                .HasColumnType("boolean");
                b.Property <string>("JoinMessage")
                .HasColumnType("text");
                b.Property <bool>("SendJoinMessage")
                .HasColumnType("boolean");
                b.Property <bool>("SuppressPermissionWarnings")
                .HasColumnType("boolean");
                b.HasKey("ID");
                b.ToTable("Servers", "Core", t => t.ExcludeFromMigrations());
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Core.Model.Users.ServerUser", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <long>("ServerID")
                .HasColumnType("bigint");
                b.Property <long>("UserID")
                .HasColumnType("bigint");
                b.HasKey("ID");
                b.HasIndex("ServerID");
                b.HasIndex("UserID");
                b.ToTable("ServerUser", "Core", t => t.ExcludeFromMigrations());
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Core.Model.Users.User", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <string>("Bio")
                .IsRequired()
                .HasColumnType("text");
                b.Property <long>("DiscordID")
                .HasColumnType("bigint");
                b.Property <int?>("Timezone")
                .HasColumnType("integer");
                b.HasKey("ID");
                b.ToTable("Users", "Core", t => t.ExcludeFromMigrations());
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Transformations.Model.Appearances.Appearance", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <long>("CharacterID")
                .HasColumnType("bigint");
                b.Property <double>("Height")
                .HasColumnType("double precision");
                b.Property <bool>("IsCurrent")
                .HasColumnType("boolean");
                b.Property <bool>("IsDefault")
                .HasColumnType("boolean");
                b.Property <double>("Muscularity")
                .HasColumnType("double precision");
                b.Property <double>("Weight")
                .HasColumnType("double precision");
                b.HasKey("ID");
                b.HasIndex("CharacterID");
                b.ToTable("Appearances", "TransformationModule");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Transformations.Model.GlobalUserProtection", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <bool>("DefaultOptIn")
                .HasColumnType("boolean");
                b.Property <int>("DefaultType")
                .HasColumnType("integer");
                b.Property <long>("UserID")
                .HasColumnType("bigint");
                b.HasKey("ID");
                b.HasIndex("UserID");
                b.ToTable("GlobalUserProtections", "TransformationModule");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Transformations.Model.ServerUserProtection", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <bool>("HasOptedIn")
                .HasColumnType("boolean");
                b.Property <long>("ServerID")
                .HasColumnType("bigint");
                b.Property <int>("Type")
                .HasColumnType("integer");
                b.Property <long>("UserID")
                .HasColumnType("bigint");
                b.HasKey("ID");
                b.HasIndex("ServerID");
                b.HasIndex("UserID");
                b.ToTable("ServerUserProtections", "TransformationModule");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Transformations.Model.Species", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <string>("Author")
                .IsRequired()
                .HasColumnType("text");
                b.Property <string>("Description")
                .IsRequired()
                .HasColumnType("text");
                b.Property <string>("Name")
                .IsRequired()
                .HasColumnType("text");
                b.Property <long?>("ParentID")
                .HasColumnType("bigint");
                b.HasKey("ID");
                b.HasIndex("ParentID");
                b.ToTable("Species", "TransformationModule");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Transformations.Model.Transformation", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <int?>("DefaultPattern")
                .HasColumnType("integer");
                b.Property <string>("Description")
                .IsRequired()
                .HasColumnType("text");
                b.Property <string>("GrowMessage")
                .IsRequired()
                .HasColumnType("text");
                b.Property <bool>("IsNSFW")
                .HasColumnType("boolean");
                b.Property <int>("Part")
                .HasColumnType("integer");
                b.Property <string>("ShiftMessage")
                .IsRequired()
                .HasColumnType("text");
                b.Property <string>("SingleDescription")
                .IsRequired()
                .HasColumnType("text");
                b.Property <long>("SpeciesID")
                .HasColumnType("bigint");
                b.Property <string>("UniformDescription")
                .HasColumnType("text");
                b.Property <string>("UniformGrowMessage")
                .HasColumnType("text");
                b.Property <string>("UniformShiftMessage")
                .HasColumnType("text");
                b.HasKey("ID");
                b.HasIndex("SpeciesID");
                b.ToTable("Transformations", "TransformationModule");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Transformations.Model.UserProtectionEntry", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <long>("GlobalProtectionID")
                .HasColumnType("bigint");
                b.Property <int>("Type")
                .HasColumnType("integer");
                b.Property <long>("UserID")
                .HasColumnType("bigint");
                b.HasKey("ID");
                b.HasIndex("GlobalProtectionID");
                b.HasIndex("UserID");
                b.ToTable("UserProtectionEntries", "TransformationModule");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Characters.Model.Character", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Users.User", "Owner")
                .WithMany()
                .HasForeignKey("OwnerID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
                b.HasOne("DIGOS.Ambassador.Plugins.Characters.Model.CharacterRole", "Role")
                .WithMany()
                .HasForeignKey("RoleID");
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", "Server")
                .WithMany()
                .HasForeignKey("ServerID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
                b.Navigation("Owner");
                b.Navigation("Role");
                b.Navigation("Server");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Characters.Model.CharacterRole", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", "Server")
                .WithMany()
                .HasForeignKey("ServerID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
                b.Navigation("Server");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Characters.Model.Data.Image", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Characters.Model.Character", null)
                .WithMany("Images")
                .HasForeignKey("CharacterID");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Core.Model.Users.ServerUser", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", "Server")
                .WithMany("KnownUsers")
                .HasForeignKey("ServerID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Users.User", "User")
                .WithMany()
                .HasForeignKey("UserID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
                b.Navigation("Server");
                b.Navigation("User");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Transformations.Model.Appearances.Appearance", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Characters.Model.Character", "Character")
                .WithMany()
                .HasForeignKey("CharacterID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
                b.OwnsMany("DIGOS.Ambassador.Plugins.Transformations.Model.Appearances.AppearanceComponent", "Components", b1 =>
                {
                    b1.Property <long>("ID")
                    .ValueGeneratedOnAdd()
                    .HasColumnType("bigint");
                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b1.Property <long>("ID"));
                    b1.Property <long>("AppearanceID")
                    .HasColumnType("bigint");
                    b1.Property <int>("Chirality")
                    .HasColumnType("integer");
                    b1.Property <int?>("Pattern")
                    .HasColumnType("integer");
                    b1.Property <long>("TransformationID")
                    .HasColumnType("bigint");
                    b1.HasKey("ID");
                    b1.HasIndex("AppearanceID");
                    b1.HasIndex("TransformationID");
                    b1.ToTable("AppearanceComponents", "TransformationModule");
                    b1.WithOwner()
                    .HasForeignKey("AppearanceID");
                    b1.HasOne("DIGOS.Ambassador.Plugins.Transformations.Model.Transformation", "Transformation")
                    .WithMany()
                    .HasForeignKey("TransformationID")
                    .OnDelete(DeleteBehavior.Cascade)
                    .IsRequired();
                    b1.OwnsOne("DIGOS.Ambassador.Plugins.Transformations.Model.Appearances.Colour", "BaseColour", b2 =>
                    {
                        b2.Property <long>("AppearanceComponentID")
                        .HasColumnType("bigint");
                        b2.Property <int?>("Modifier")
                        .HasColumnType("integer");
                        b2.Property <int>("Shade")
                        .HasColumnType("integer");
                        b2.HasKey("AppearanceComponentID");
                        b2.ToTable("BaseColours", "TransformationModule");
                        b2.WithOwner()
                        .HasForeignKey("AppearanceComponentID");
                    });
                    b1.OwnsOne("DIGOS.Ambassador.Plugins.Transformations.Model.Appearances.Colour", "PatternColour", b2 =>
                    {
                        b2.Property <long>("AppearanceComponentID")
                        .HasColumnType("bigint");
                        b2.Property <int?>("Modifier")
                        .HasColumnType("integer");
                        b2.Property <int>("Shade")
                        .HasColumnType("integer");
                        b2.HasKey("AppearanceComponentID");
                        b2.ToTable("PatternColours", "TransformationModule");
                        b2.WithOwner()
                        .HasForeignKey("AppearanceComponentID");
                    });
                    b1.Navigation("BaseColour")
                    .IsRequired();
                    b1.Navigation("PatternColour");
                    b1.Navigation("Transformation");
                });
                b.Navigation("Character");
                b.Navigation("Components");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Transformations.Model.GlobalUserProtection", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Users.User", "User")
                .WithMany()
                .HasForeignKey("UserID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
                b.Navigation("User");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Transformations.Model.ServerUserProtection", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", "Server")
                .WithMany()
                .HasForeignKey("ServerID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Users.User", "User")
                .WithMany()
                .HasForeignKey("UserID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
                b.Navigation("Server");
                b.Navigation("User");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Transformations.Model.Species", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Transformations.Model.Species", "Parent")
                .WithMany()
                .HasForeignKey("ParentID");
                b.Navigation("Parent");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Transformations.Model.Transformation", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Transformations.Model.Species", "Species")
                .WithMany()
                .HasForeignKey("SpeciesID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
                b.OwnsOne("DIGOS.Ambassador.Plugins.Transformations.Model.Appearances.Colour", "DefaultBaseColour", b1 =>
                {
                    b1.Property <long>("TransformationID")
                    .HasColumnType("bigint");
                    b1.Property <int?>("Modifier")
                    .HasColumnType("integer");
                    b1.Property <int>("Shade")
                    .HasColumnType("integer");
                    b1.HasKey("TransformationID");
                    b1.ToTable("DefaultBaseColours", "TransformationModule");
                    b1.WithOwner()
                    .HasForeignKey("TransformationID");
                });
                b.OwnsOne("DIGOS.Ambassador.Plugins.Transformations.Model.Appearances.Colour", "DefaultPatternColour", b1 =>
                {
                    b1.Property <long>("TransformationID")
                    .HasColumnType("bigint");
                    b1.Property <int?>("Modifier")
                    .HasColumnType("integer");
                    b1.Property <int>("Shade")
                    .HasColumnType("integer");
                    b1.HasKey("TransformationID");
                    b1.ToTable("DefaultPatternColours", "TransformationModule");
                    b1.WithOwner()
                    .HasForeignKey("TransformationID");
                });
                b.Navigation("DefaultBaseColour")
                .IsRequired();
                b.Navigation("DefaultPatternColour");
                b.Navigation("Species");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Transformations.Model.UserProtectionEntry", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Transformations.Model.GlobalUserProtection", "GlobalProtection")
                .WithMany("UserListing")
                .HasForeignKey("GlobalProtectionID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Users.User", "User")
                .WithMany()
                .HasForeignKey("UserID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
                b.Navigation("GlobalProtection");
                b.Navigation("User");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Characters.Model.Character", b =>
            {
                b.Navigation("Images");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", b =>
            {
                b.Navigation("KnownUsers");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Transformations.Model.GlobalUserProtection", b =>
            {
                b.Navigation("UserListing");
            });
#pragma warning restore 612, 618
        }
        protected override void BuildModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasAnnotation("ProductVersion", "6.0.0")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("Scaffold.Domain.Aggregates.Bucket.Bucket", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Description")
                .HasColumnType("text");

                b.Property <DateTime?>("LastModifiedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Name")
                .HasColumnType("text");

                b.Property <int>("Size")
                .HasColumnType("integer");

                b.HasKey("Id");

                b.ToTable("Bucket", (string)null);
            });

            modelBuilder.Entity("Scaffold.Domain.Aggregates.Bucket.Item", b =>
            {
                b.Property <int>("BucketId")
                .HasColumnType("integer");

                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Description")
                .HasColumnType("text");

                b.Property <DateTime?>("LastModifiedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Name")
                .HasColumnType("text");

                b.HasKey("BucketId", "Id");

                b.ToTable("Item", (string)null);
            });

            modelBuilder.Entity("Scaffold.Domain.Aggregates.Bucket.Item", b =>
            {
                b.HasOne("Scaffold.Domain.Aggregates.Bucket.Bucket", null)
                .WithMany("Items")
                .HasForeignKey("BucketId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Scaffold.Domain.Aggregates.Bucket.Bucket", b =>
            {
                b.Navigation("Items");
            });
#pragma warning restore 612, 618
        }
Esempio n. 12
0
        protected override void BuildModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasAnnotation("ProductVersion", "6.0.3")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("Goblin.Domain.Entities.BotUser", b =>
            {
                b.Property <long>("Id")
                .HasColumnType("bigint");

                b.Property <int>("ConsumerType")
                .HasColumnType("integer");

                b.Property <bool>("HasScheduleSubscription")
                .ValueGeneratedOnAdd()
                .HasColumnType("boolean")
                .HasDefaultValue(false);

                b.Property <bool>("HasWeatherSubscription")
                .ValueGeneratedOnAdd()
                .HasColumnType("boolean")
                .HasDefaultValue(false);

                b.Property <bool>("IsAdmin")
                .ValueGeneratedOnAdd()
                .HasColumnType("boolean")
                .HasDefaultValue(false);

                b.Property <bool>("IsErrorsEnabled")
                .ValueGeneratedOnAdd()
                .HasColumnType("boolean")
                .HasDefaultValue(true);

                b.Property <int>("NarfuGroup")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasDefaultValue(0);

                b.Property <string>("WeatherCity")
                .ValueGeneratedOnAdd()
                .HasMaxLength(100)
                .HasColumnType("character varying(100)")
                .HasDefaultValue("");

                b.HasKey("Id", "ConsumerType");

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

            modelBuilder.Entity("Goblin.Domain.Entities.CronJob", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <long>("ChatId")
                .HasColumnType("bigint");

                b.Property <int>("ConsumerType")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasDefaultValue(0);

                b.Property <int>("CronType")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasDefaultValue(4);

                b.Property <string>("Name")
                .IsRequired()
                .HasColumnType("text");

                b.Property <int>("NarfuGroup")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasDefaultValue(0);

                b.Property <string>("Text")
                .ValueGeneratedOnAdd()
                .HasMaxLength(500)
                .HasColumnType("character varying(500)")
                .HasDefaultValue("");

                b.Property <string>("WeatherCity")
                .ValueGeneratedOnAdd()
                .HasColumnType("text")
                .HasDefaultValue("");

                b.HasKey("Id");

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

            modelBuilder.Entity("Goblin.Domain.Entities.Remind", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <long>("ChatId")
                .HasColumnType("bigint");

                b.Property <int>("ConsumerType")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasDefaultValue(0);

                b.Property <DateTimeOffset>("Date")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Text")
                .IsRequired()
                .HasMaxLength(100)
                .HasColumnType("character varying(100)");

                b.HasKey("Id");

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

            modelBuilder.Entity("Goblin.Domain.Entities.CronJob", b =>
            {
                b.OwnsOne("Goblin.Domain.CronTime", "Time", b1 =>
                {
                    b1.Property <int>("CronJobId")
                    .HasColumnType("integer");

                    b1.Property <string>("DayOfMonth")
                    .HasColumnType("text");

                    b1.Property <string>("DayOfWeek")
                    .HasColumnType("text");

                    b1.Property <string>("Hour")
                    .HasColumnType("text");

                    b1.Property <string>("Minute")
                    .HasColumnType("text");

                    b1.Property <string>("Month")
                    .HasColumnType("text");

                    b1.HasKey("CronJobId");

                    b1.ToTable("CronJobs");

                    b1.WithOwner()
                    .HasForeignKey("CronJobId");
                });

                b.Navigation("Time");
            });
#pragma warning restore 612, 618
        }
        protected override void BuildModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasDefaultSchema("public")
            .HasAnnotation("ProductVersion", "6.0.0")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("IHunger.Domain.Models.AddressRestaurant", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <string>("City")
                .IsRequired()
                .HasColumnType("varchar(80)");

                b.Property <string>("County")
                .IsRequired()
                .HasColumnType("varchar(80)");

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("District")
                .IsRequired()
                .HasColumnType("varchar(80)");

                b.Property <string>("Latitude")
                .HasColumnType("varchar(80)");

                b.Property <string>("Longitude")
                .HasColumnType("varchar(80)");

                b.Property <string>("Street")
                .IsRequired()
                .HasColumnType("varchar(80)");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("ZipCode")
                .IsRequired()
                .HasColumnType("varchar(15)");

                b.HasKey("Id");

                b.ToTable("AddressRestaurants", "public");
            });

            modelBuilder.Entity("IHunger.Domain.Models.AddressUser", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <string>("City")
                .IsRequired()
                .HasColumnType("varchar(80)");

                b.Property <string>("County")
                .IsRequired()
                .HasColumnType("varchar(80)");

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("District")
                .IsRequired()
                .HasColumnType("varchar(80)");

                b.Property <string>("Latitude")
                .HasColumnType("varchar(80)");

                b.Property <string>("Longitude")
                .HasColumnType("varchar(80)");

                b.Property <string>("Street")
                .IsRequired()
                .HasColumnType("varchar(80)");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("ZipCode")
                .IsRequired()
                .HasColumnType("varchar(15)");

                b.HasKey("Id");

                b.ToTable("AddressUsers", "public");
            });

            modelBuilder.Entity("IHunger.Domain.Models.CategoryProduct", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Description")
                .IsRequired()
                .HasColumnType("varchar(200)");

                b.Property <string>("Name")
                .IsRequired()
                .HasColumnType("varchar(50)");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

                b.ToTable("CategoryProducts", "public");
            });

            modelBuilder.Entity("IHunger.Domain.Models.CategoryRestaurant", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Description")
                .IsRequired()
                .HasColumnType("varchar(200)");

                b.Property <string>("Name")
                .IsRequired()
                .HasColumnType("varchar(50)");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

                b.ToTable("CategoryRestaurants", "public");
            });

            modelBuilder.Entity("IHunger.Domain.Models.Comment", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid>("IdRestaurant")
                .HasColumnType("uuid");

                b.Property <decimal>("Starts")
                .HasColumnType("DECIMAL");

                b.Property <string>("Text")
                .IsRequired()
                .HasColumnType("varchar(200)");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

                b.HasIndex("IdRestaurant");

                b.ToTable("Comment", "public");
            });

            modelBuilder.Entity("IHunger.Domain.Models.Coupon", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <string>("Code")
                .IsRequired()
                .HasColumnType("varchar(50)");

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <DateTime>("ExpireAt")
                .HasColumnType("timestamp with time zone");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <int>("Value")
                .HasColumnType("integer");

                b.HasKey("Id");

                b.ToTable("Coupons", "public");
            });

            modelBuilder.Entity("IHunger.Domain.Models.Item", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid>("IdOrder")
                .HasColumnType("uuid");

                b.Property <Guid>("IdProduct")
                .HasColumnType("uuid");

                b.Property <decimal>("Price")
                .HasColumnType("DECIMAL");

                b.Property <int>("Quantity")
                .HasColumnType("integer");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

                b.HasIndex("IdOrder");

                b.HasIndex("IdProduct");

                b.ToTable("Itens", "public");
            });

            modelBuilder.Entity("IHunger.Domain.Models.Order", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid?>("IdCoupon")
                .HasColumnType("uuid");

                b.Property <Guid?>("IdProfileUser")
                .HasColumnType("uuid");

                b.Property <int>("OrderStatus")
                .HasColumnType("integer");

                b.Property <decimal>("Price")
                .HasColumnType("DECIMAL");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

                b.HasIndex("IdCoupon");

                b.HasIndex("IdProfileUser");

                b.ToTable("Orders", "public");
            });

            modelBuilder.Entity("IHunger.Domain.Models.OrderStatus", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Name")
                .IsRequired()
                .HasColumnType("varchar(200)");

                b.Property <int>("Number")
                .HasColumnType("integer");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

                b.ToTable("OrdersStatus", "public");
            });

            modelBuilder.Entity("IHunger.Domain.Models.Product", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Description")
                .IsRequired()
                .HasColumnType("varchar(200)");

                b.Property <Guid>("IdCategoryProduct")
                .HasColumnType("uuid");

                b.Property <Guid>("IdRestaurant")
                .HasColumnType("uuid");

                b.Property <string>("Image")
                .IsRequired()
                .HasColumnType("varchar(100)");

                b.Property <bool>("Kosher")
                .HasColumnType("boolean");

                b.Property <string>("Name")
                .IsRequired()
                .HasColumnType("varchar(50)");

                b.Property <decimal>("Price")
                .HasColumnType("DECIMAL");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <bool>("Vegan")
                .HasColumnType("boolean");

                b.Property <bool>("Vegetarian")
                .HasColumnType("boolean");

                b.HasKey("Id");

                b.HasIndex("IdCategoryProduct");

                b.HasIndex("IdRestaurant");

                b.ToTable("Products", "public");
            });

            modelBuilder.Entity("IHunger.Domain.Models.ProfileUser", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <DateTime?>("BirthDate")
                .HasColumnType("timestamp with time zone");

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid?>("IdAddressUser")
                .IsRequired()
                .HasColumnType("uuid");

                b.Property <string>("LastName")
                .IsRequired()
                .HasColumnType("varchar(80)");

                b.Property <string>("Name")
                .IsRequired()
                .HasColumnType("varchar(80)");

                b.Property <int>("Type")
                .HasColumnType("integer");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

                b.HasIndex("IdAddressUser");

                b.ToTable("ProfileUsers", "public");
            });

            modelBuilder.Entity("IHunger.Domain.Models.Restaurant", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Description")
                .IsRequired()
                .HasColumnType("varchar(200)");

                b.Property <Guid>("IdAddressRestaurant")
                .HasColumnType("uuid");

                b.Property <Guid>("IdCategoryRestaurant")
                .HasColumnType("uuid");

                b.Property <string>("Image")
                .IsRequired()
                .HasColumnType("varchar(100)");

                b.Property <string>("Name")
                .IsRequired()
                .HasColumnType("varchar(50)");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

                b.HasIndex("IdAddressRestaurant");

                b.HasIndex("IdCategoryRestaurant");

                b.ToTable("Restaurant", "public");
            });

            modelBuilder.Entity("IHunger.Domain.Models.User", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <int>("AccessFailedCount")
                .HasColumnType("integer");

                b.Property <string>("ConcurrencyStamp")
                .IsConcurrencyToken()
                .HasColumnType("text");

                b.Property <string>("Email")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <bool>("EmailConfirmed")
                .HasColumnType("boolean");

                b.Property <Guid>("IdProfileUser")
                .HasColumnType("uuid");

                b.Property <bool>("LockoutEnabled")
                .HasColumnType("boolean");

                b.Property <DateTimeOffset?>("LockoutEnd")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("NormalizedEmail")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("NormalizedUserName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("PasswordHash")
                .HasColumnType("text");

                b.Property <string>("PhoneNumber")
                .HasColumnType("text");

                b.Property <bool>("PhoneNumberConfirmed")
                .HasColumnType("boolean");

                b.Property <string>("SecurityStamp")
                .HasColumnType("text");

                b.Property <bool>("TwoFactorEnabled")
                .HasColumnType("boolean");

                b.Property <string>("UserName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.HasKey("Id");

                b.HasIndex("IdProfileUser");

                b.HasIndex("NormalizedEmail")
                .HasDatabaseName("EmailIndex");

                b.HasIndex("NormalizedUserName")
                .IsUnique()
                .HasDatabaseName("UserNameIndex");

                b.ToTable("AspNetUsers", "public");
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole<System.Guid>", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <string>("ConcurrencyStamp")
                .IsConcurrencyToken()
                .HasColumnType("text");

                b.Property <string>("Name")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("NormalizedName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.HasKey("Id");

                b.HasIndex("NormalizedName")
                .IsUnique()
                .HasDatabaseName("RoleNameIndex");

                b.ToTable("AspNetRoles", "public");
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<System.Guid>", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("ClaimType")
                .HasColumnType("text");

                b.Property <string>("ClaimValue")
                .HasColumnType("text");

                b.Property <Guid>("RoleId")
                .HasColumnType("uuid");

                b.HasKey("Id");

                b.HasIndex("RoleId");

                b.ToTable("AspNetRoleClaims", "public");
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<System.Guid>", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("ClaimType")
                .HasColumnType("text");

                b.Property <string>("ClaimValue")
                .HasColumnType("text");

                b.Property <Guid>("UserId")
                .HasColumnType("uuid");

                b.HasKey("Id");

                b.HasIndex("UserId");

                b.ToTable("AspNetUserClaims", "public");
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<System.Guid>", b =>
            {
                b.Property <string>("LoginProvider")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("ProviderKey")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("ProviderDisplayName")
                .HasColumnType("text");

                b.Property <Guid>("UserId")
                .HasColumnType("uuid");

                b.HasKey("LoginProvider", "ProviderKey");

                b.HasIndex("UserId");

                b.ToTable("AspNetUserLogins", "public");
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<System.Guid>", b =>
            {
                b.Property <Guid>("UserId")
                .HasColumnType("uuid");

                b.Property <Guid>("RoleId")
                .HasColumnType("uuid");

                b.HasKey("UserId", "RoleId");

                b.HasIndex("RoleId");

                b.ToTable("AspNetUserRoles", "public");
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<System.Guid>", b =>
            {
                b.Property <Guid>("UserId")
                .HasColumnType("uuid");

                b.Property <string>("LoginProvider")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("Name")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("Value")
                .HasColumnType("text");

                b.HasKey("UserId", "LoginProvider", "Name");

                b.ToTable("AspNetUserTokens", "public");
            });

            modelBuilder.Entity("IHunger.Domain.Models.Comment", b =>
            {
                b.HasOne("IHunger.Domain.Models.Restaurant", "Restaurant")
                .WithMany("Comments")
                .HasForeignKey("IdRestaurant")
                .IsRequired();

                b.Navigation("Restaurant");
            });

            modelBuilder.Entity("IHunger.Domain.Models.Item", b =>
            {
                b.HasOne("IHunger.Domain.Models.Order", "Order")
                .WithMany("Items")
                .HasForeignKey("IdOrder")
                .IsRequired();

                b.HasOne("IHunger.Domain.Models.Product", "Product")
                .WithMany("Itens")
                .HasForeignKey("IdProduct")
                .IsRequired();

                b.Navigation("Order");

                b.Navigation("Product");
            });

            modelBuilder.Entity("IHunger.Domain.Models.Order", b =>
            {
                b.HasOne("IHunger.Domain.Models.Coupon", "Coupon")
                .WithMany("Orders")
                .HasForeignKey("IdCoupon");

                b.HasOne("IHunger.Domain.Models.ProfileUser", "ProfileUser")
                .WithMany("Orders")
                .HasForeignKey("IdProfileUser");

                b.Navigation("Coupon");

                b.Navigation("ProfileUser");
            });

            modelBuilder.Entity("IHunger.Domain.Models.Product", b =>
            {
                b.HasOne("IHunger.Domain.Models.CategoryProduct", "CategoryProduct")
                .WithMany()
                .HasForeignKey("IdCategoryProduct")
                .IsRequired();

                b.HasOne("IHunger.Domain.Models.Restaurant", "Restaurant")
                .WithMany("Products")
                .HasForeignKey("IdRestaurant")
                .IsRequired();

                b.Navigation("CategoryProduct");

                b.Navigation("Restaurant");
            });

            modelBuilder.Entity("IHunger.Domain.Models.ProfileUser", b =>
            {
                b.HasOne("IHunger.Domain.Models.AddressUser", "AddressUser")
                .WithMany()
                .HasForeignKey("IdAddressUser")
                .IsRequired();

                b.Navigation("AddressUser");
            });

            modelBuilder.Entity("IHunger.Domain.Models.Restaurant", b =>
            {
                b.HasOne("IHunger.Domain.Models.AddressRestaurant", "AddressRestaurant")
                .WithMany()
                .HasForeignKey("IdAddressRestaurant")
                .IsRequired();

                b.HasOne("IHunger.Domain.Models.CategoryRestaurant", "CategoryRestaurant")
                .WithMany()
                .HasForeignKey("IdCategoryRestaurant")
                .IsRequired();

                b.Navigation("AddressRestaurant");

                b.Navigation("CategoryRestaurant");
            });

            modelBuilder.Entity("IHunger.Domain.Models.User", b =>
            {
                b.HasOne("IHunger.Domain.Models.ProfileUser", "ProfileUser")
                .WithMany()
                .HasForeignKey("IdProfileUser")
                .IsRequired();

                b.Navigation("ProfileUser");
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<System.Guid>", b =>
            {
                b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole<System.Guid>", null)
                .WithMany()
                .HasForeignKey("RoleId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<System.Guid>", b =>
            {
                b.HasOne("IHunger.Domain.Models.User", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<System.Guid>", b =>
            {
                b.HasOne("IHunger.Domain.Models.User", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<System.Guid>", b =>
            {
                b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole<System.Guid>", null)
                .WithMany()
                .HasForeignKey("RoleId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("IHunger.Domain.Models.User", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<System.Guid>", b =>
            {
                b.HasOne("IHunger.Domain.Models.User", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("IHunger.Domain.Models.Coupon", b =>
            {
                b.Navigation("Orders");
            });

            modelBuilder.Entity("IHunger.Domain.Models.Order", b =>
            {
                b.Navigation("Items");
            });

            modelBuilder.Entity("IHunger.Domain.Models.Product", b =>
            {
                b.Navigation("Itens");
            });

            modelBuilder.Entity("IHunger.Domain.Models.ProfileUser", b =>
            {
                b.Navigation("Orders");
            });

            modelBuilder.Entity("IHunger.Domain.Models.Restaurant", b =>
            {
                b.Navigation("Comments");

                b.Navigation("Products");
            });
#pragma warning restore 612, 618
        }
Esempio n. 14
0
        protected override void BuildModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasAnnotation("ProductVersion", "6.0.4")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResource", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("AllowedAccessTokenSigningAlgorithms")
                .HasMaxLength(100)
                .HasColumnType("character varying(100)");

                b.Property <DateTime>("Created")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Description")
                .HasMaxLength(1000)
                .HasColumnType("character varying(1000)");

                b.Property <string>("DisplayName")
                .HasMaxLength(200)
                .HasColumnType("character varying(200)");

                b.Property <bool>("Enabled")
                .HasColumnType("boolean");

                b.Property <DateTime?>("LastAccessed")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Name")
                .IsRequired()
                .HasMaxLength(200)
                .HasColumnType("character varying(200)");

                b.Property <bool>("NonEditable")
                .HasColumnType("boolean");

                b.Property <bool>("ShowInDiscoveryDocument")
                .HasColumnType("boolean");

                b.Property <DateTime?>("Updated")
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

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

                b.ToTable("ApiResources", (string)null);
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResourceClaim", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("ApiResourceId")
                .HasColumnType("integer");

                b.Property <string>("Type")
                .IsRequired()
                .HasMaxLength(200)
                .HasColumnType("character varying(200)");

                b.HasKey("Id");

                b.HasIndex("ApiResourceId");

                b.ToTable("ApiResourceClaims", (string)null);
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResourceProperty", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("ApiResourceId")
                .HasColumnType("integer");

                b.Property <string>("Key")
                .IsRequired()
                .HasMaxLength(250)
                .HasColumnType("character varying(250)");

                b.Property <string>("Value")
                .IsRequired()
                .HasMaxLength(2000)
                .HasColumnType("character varying(2000)");

                b.HasKey("Id");

                b.HasIndex("ApiResourceId");

                b.ToTable("ApiResourceProperties", (string)null);
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResourceScope", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("ApiResourceId")
                .HasColumnType("integer");

                b.Property <string>("Scope")
                .IsRequired()
                .HasMaxLength(200)
                .HasColumnType("character varying(200)");

                b.HasKey("Id");

                b.HasIndex("ApiResourceId");

                b.ToTable("ApiResourceScopes", (string)null);
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResourceSecret", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("ApiResourceId")
                .HasColumnType("integer");

                b.Property <DateTime>("Created")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Description")
                .HasMaxLength(1000)
                .HasColumnType("character varying(1000)");

                b.Property <DateTime?>("Expiration")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Type")
                .IsRequired()
                .HasMaxLength(250)
                .HasColumnType("character varying(250)");

                b.Property <string>("Value")
                .IsRequired()
                .HasMaxLength(4000)
                .HasColumnType("character varying(4000)");

                b.HasKey("Id");

                b.HasIndex("ApiResourceId");

                b.ToTable("ApiResourceSecrets", (string)null);
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiScope", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("Description")
                .HasMaxLength(1000)
                .HasColumnType("character varying(1000)");

                b.Property <string>("DisplayName")
                .HasMaxLength(200)
                .HasColumnType("character varying(200)");

                b.Property <bool>("Emphasize")
                .HasColumnType("boolean");

                b.Property <bool>("Enabled")
                .HasColumnType("boolean");

                b.Property <string>("Name")
                .IsRequired()
                .HasMaxLength(200)
                .HasColumnType("character varying(200)");

                b.Property <bool>("Required")
                .HasColumnType("boolean");

                b.Property <bool>("ShowInDiscoveryDocument")
                .HasColumnType("boolean");

                b.HasKey("Id");

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

                b.ToTable("ApiScopes", (string)null);
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiScopeClaim", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("ScopeId")
                .HasColumnType("integer");

                b.Property <string>("Type")
                .IsRequired()
                .HasMaxLength(200)
                .HasColumnType("character varying(200)");

                b.HasKey("Id");

                b.HasIndex("ScopeId");

                b.ToTable("ApiScopeClaims", (string)null);
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiScopeProperty", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("Key")
                .IsRequired()
                .HasMaxLength(250)
                .HasColumnType("character varying(250)");

                b.Property <int>("ScopeId")
                .HasColumnType("integer");

                b.Property <string>("Value")
                .IsRequired()
                .HasMaxLength(2000)
                .HasColumnType("character varying(2000)");

                b.HasKey("Id");

                b.HasIndex("ScopeId");

                b.ToTable("ApiScopeProperties", (string)null);
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.Client", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("AbsoluteRefreshTokenLifetime")
                .HasColumnType("integer");

                b.Property <int>("AccessTokenLifetime")
                .HasColumnType("integer");

                b.Property <int>("AccessTokenType")
                .HasColumnType("integer");

                b.Property <bool>("AllowAccessTokensViaBrowser")
                .HasColumnType("boolean");

                b.Property <bool>("AllowOfflineAccess")
                .HasColumnType("boolean");

                b.Property <bool>("AllowPlainTextPkce")
                .HasColumnType("boolean");

                b.Property <bool>("AllowRememberConsent")
                .HasColumnType("boolean");

                b.Property <string>("AllowedIdentityTokenSigningAlgorithms")
                .HasMaxLength(100)
                .HasColumnType("character varying(100)");

                b.Property <bool>("AlwaysIncludeUserClaimsInIdToken")
                .HasColumnType("boolean");

                b.Property <bool>("AlwaysSendClientClaims")
                .HasColumnType("boolean");

                b.Property <int>("AuthorizationCodeLifetime")
                .HasColumnType("integer");

                b.Property <bool>("BackChannelLogoutSessionRequired")
                .HasColumnType("boolean");

                b.Property <string>("BackChannelLogoutUri")
                .HasMaxLength(2000)
                .HasColumnType("character varying(2000)");

                b.Property <string>("ClientClaimsPrefix")
                .HasMaxLength(200)
                .HasColumnType("character varying(200)");

                b.Property <string>("ClientId")
                .IsRequired()
                .HasMaxLength(200)
                .HasColumnType("character varying(200)");

                b.Property <string>("ClientName")
                .HasMaxLength(200)
                .HasColumnType("character varying(200)");

                b.Property <string>("ClientUri")
                .HasMaxLength(2000)
                .HasColumnType("character varying(2000)");

                b.Property <int?>("ConsentLifetime")
                .HasColumnType("integer");

                b.Property <DateTime>("Created")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Description")
                .HasMaxLength(1000)
                .HasColumnType("character varying(1000)");

                b.Property <int>("DeviceCodeLifetime")
                .HasColumnType("integer");

                b.Property <bool>("EnableLocalLogin")
                .HasColumnType("boolean");

                b.Property <bool>("Enabled")
                .HasColumnType("boolean");

                b.Property <bool>("FrontChannelLogoutSessionRequired")
                .HasColumnType("boolean");

                b.Property <string>("FrontChannelLogoutUri")
                .HasMaxLength(2000)
                .HasColumnType("character varying(2000)");

                b.Property <int>("IdentityTokenLifetime")
                .HasColumnType("integer");

                b.Property <bool>("IncludeJwtId")
                .HasColumnType("boolean");

                b.Property <DateTime?>("LastAccessed")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("LogoUri")
                .HasMaxLength(2000)
                .HasColumnType("character varying(2000)");

                b.Property <bool>("NonEditable")
                .HasColumnType("boolean");

                b.Property <string>("PairWiseSubjectSalt")
                .HasMaxLength(200)
                .HasColumnType("character varying(200)");

                b.Property <string>("ProtocolType")
                .IsRequired()
                .HasMaxLength(200)
                .HasColumnType("character varying(200)");

                b.Property <int>("RefreshTokenExpiration")
                .HasColumnType("integer");

                b.Property <int>("RefreshTokenUsage")
                .HasColumnType("integer");

                b.Property <bool>("RequireClientSecret")
                .HasColumnType("boolean");

                b.Property <bool>("RequireConsent")
                .HasColumnType("boolean");

                b.Property <bool>("RequirePkce")
                .HasColumnType("boolean");

                b.Property <bool>("RequireRequestObject")
                .HasColumnType("boolean");

                b.Property <int>("SlidingRefreshTokenLifetime")
                .HasColumnType("integer");

                b.Property <bool>("UpdateAccessTokenClaimsOnRefresh")
                .HasColumnType("boolean");

                b.Property <DateTime?>("Updated")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("UserCodeType")
                .HasMaxLength(100)
                .HasColumnType("character varying(100)");

                b.Property <int?>("UserSsoLifetime")
                .HasColumnType("integer");

                b.HasKey("Id");

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

                b.ToTable("Clients", (string)null);
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientClaim", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("ClientId")
                .HasColumnType("integer");

                b.Property <string>("Type")
                .IsRequired()
                .HasMaxLength(250)
                .HasColumnType("character varying(250)");

                b.Property <string>("Value")
                .IsRequired()
                .HasMaxLength(250)
                .HasColumnType("character varying(250)");

                b.HasKey("Id");

                b.HasIndex("ClientId");

                b.ToTable("ClientClaims", (string)null);
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientCorsOrigin", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("ClientId")
                .HasColumnType("integer");

                b.Property <string>("Origin")
                .IsRequired()
                .HasMaxLength(150)
                .HasColumnType("character varying(150)");

                b.HasKey("Id");

                b.HasIndex("ClientId");

                b.ToTable("ClientCorsOrigins", (string)null);
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientGrantType", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("ClientId")
                .HasColumnType("integer");

                b.Property <string>("GrantType")
                .IsRequired()
                .HasMaxLength(250)
                .HasColumnType("character varying(250)");

                b.HasKey("Id");

                b.HasIndex("ClientId");

                b.ToTable("ClientGrantTypes", (string)null);
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientIdPRestriction", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("ClientId")
                .HasColumnType("integer");

                b.Property <string>("Provider")
                .IsRequired()
                .HasMaxLength(200)
                .HasColumnType("character varying(200)");

                b.HasKey("Id");

                b.HasIndex("ClientId");

                b.ToTable("ClientIdPRestrictions", (string)null);
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientPostLogoutRedirectUri", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("ClientId")
                .HasColumnType("integer");

                b.Property <string>("PostLogoutRedirectUri")
                .IsRequired()
                .HasMaxLength(2000)
                .HasColumnType("character varying(2000)");

                b.HasKey("Id");

                b.HasIndex("ClientId");

                b.ToTable("ClientPostLogoutRedirectUris", (string)null);
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientProperty", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("ClientId")
                .HasColumnType("integer");

                b.Property <string>("Key")
                .IsRequired()
                .HasMaxLength(250)
                .HasColumnType("character varying(250)");

                b.Property <string>("Value")
                .IsRequired()
                .HasMaxLength(2000)
                .HasColumnType("character varying(2000)");

                b.HasKey("Id");

                b.HasIndex("ClientId");

                b.ToTable("ClientProperties", (string)null);
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientRedirectUri", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("ClientId")
                .HasColumnType("integer");

                b.Property <string>("RedirectUri")
                .IsRequired()
                .HasMaxLength(2000)
                .HasColumnType("character varying(2000)");

                b.HasKey("Id");

                b.HasIndex("ClientId");

                b.ToTable("ClientRedirectUris", (string)null);
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientScope", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("ClientId")
                .HasColumnType("integer");

                b.Property <string>("Scope")
                .IsRequired()
                .HasMaxLength(200)
                .HasColumnType("character varying(200)");

                b.HasKey("Id");

                b.HasIndex("ClientId");

                b.ToTable("ClientScopes", (string)null);
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientSecret", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("ClientId")
                .HasColumnType("integer");

                b.Property <DateTime>("Created")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Description")
                .HasMaxLength(2000)
                .HasColumnType("character varying(2000)");

                b.Property <DateTime?>("Expiration")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Type")
                .IsRequired()
                .HasMaxLength(250)
                .HasColumnType("character varying(250)");

                b.Property <string>("Value")
                .IsRequired()
                .HasMaxLength(4000)
                .HasColumnType("character varying(4000)");

                b.HasKey("Id");

                b.HasIndex("ClientId");

                b.ToTable("ClientSecrets", (string)null);
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.IdentityResource", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <DateTime>("Created")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Description")
                .HasMaxLength(1000)
                .HasColumnType("character varying(1000)");

                b.Property <string>("DisplayName")
                .HasMaxLength(200)
                .HasColumnType("character varying(200)");

                b.Property <bool>("Emphasize")
                .HasColumnType("boolean");

                b.Property <bool>("Enabled")
                .HasColumnType("boolean");

                b.Property <string>("Name")
                .IsRequired()
                .HasMaxLength(200)
                .HasColumnType("character varying(200)");

                b.Property <bool>("NonEditable")
                .HasColumnType("boolean");

                b.Property <bool>("Required")
                .HasColumnType("boolean");

                b.Property <bool>("ShowInDiscoveryDocument")
                .HasColumnType("boolean");

                b.Property <DateTime?>("Updated")
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

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

                b.ToTable("IdentityResources", (string)null);
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.IdentityResourceClaim", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("IdentityResourceId")
                .HasColumnType("integer");

                b.Property <string>("Type")
                .IsRequired()
                .HasMaxLength(200)
                .HasColumnType("character varying(200)");

                b.HasKey("Id");

                b.HasIndex("IdentityResourceId");

                b.ToTable("IdentityResourceClaims", (string)null);
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.IdentityResourceProperty", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("IdentityResourceId")
                .HasColumnType("integer");

                b.Property <string>("Key")
                .IsRequired()
                .HasMaxLength(250)
                .HasColumnType("character varying(250)");

                b.Property <string>("Value")
                .IsRequired()
                .HasMaxLength(2000)
                .HasColumnType("character varying(2000)");

                b.HasKey("Id");

                b.HasIndex("IdentityResourceId");

                b.ToTable("IdentityResourceProperties", (string)null);
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResourceClaim", b =>
            {
                b.HasOne("IdentityServer4.EntityFramework.Entities.ApiResource", "ApiResource")
                .WithMany("UserClaims")
                .HasForeignKey("ApiResourceId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("ApiResource");
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResourceProperty", b =>
            {
                b.HasOne("IdentityServer4.EntityFramework.Entities.ApiResource", "ApiResource")
                .WithMany("Properties")
                .HasForeignKey("ApiResourceId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("ApiResource");
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResourceScope", b =>
            {
                b.HasOne("IdentityServer4.EntityFramework.Entities.ApiResource", "ApiResource")
                .WithMany("Scopes")
                .HasForeignKey("ApiResourceId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("ApiResource");
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResourceSecret", b =>
            {
                b.HasOne("IdentityServer4.EntityFramework.Entities.ApiResource", "ApiResource")
                .WithMany("Secrets")
                .HasForeignKey("ApiResourceId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("ApiResource");
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiScopeClaim", b =>
            {
                b.HasOne("IdentityServer4.EntityFramework.Entities.ApiScope", "Scope")
                .WithMany("UserClaims")
                .HasForeignKey("ScopeId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Scope");
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiScopeProperty", b =>
            {
                b.HasOne("IdentityServer4.EntityFramework.Entities.ApiScope", "Scope")
                .WithMany("Properties")
                .HasForeignKey("ScopeId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Scope");
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientClaim", b =>
            {
                b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client")
                .WithMany("Claims")
                .HasForeignKey("ClientId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Client");
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientCorsOrigin", b =>
            {
                b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client")
                .WithMany("AllowedCorsOrigins")
                .HasForeignKey("ClientId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Client");
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientGrantType", b =>
            {
                b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client")
                .WithMany("AllowedGrantTypes")
                .HasForeignKey("ClientId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Client");
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientIdPRestriction", b =>
            {
                b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client")
                .WithMany("IdentityProviderRestrictions")
                .HasForeignKey("ClientId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Client");
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientPostLogoutRedirectUri", b =>
            {
                b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client")
                .WithMany("PostLogoutRedirectUris")
                .HasForeignKey("ClientId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Client");
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientProperty", b =>
            {
                b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client")
                .WithMany("Properties")
                .HasForeignKey("ClientId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Client");
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientRedirectUri", b =>
            {
                b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client")
                .WithMany("RedirectUris")
                .HasForeignKey("ClientId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Client");
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientScope", b =>
            {
                b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client")
                .WithMany("AllowedScopes")
                .HasForeignKey("ClientId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Client");
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ClientSecret", b =>
            {
                b.HasOne("IdentityServer4.EntityFramework.Entities.Client", "Client")
                .WithMany("ClientSecrets")
                .HasForeignKey("ClientId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Client");
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.IdentityResourceClaim", b =>
            {
                b.HasOne("IdentityServer4.EntityFramework.Entities.IdentityResource", "IdentityResource")
                .WithMany("UserClaims")
                .HasForeignKey("IdentityResourceId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("IdentityResource");
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.IdentityResourceProperty", b =>
            {
                b.HasOne("IdentityServer4.EntityFramework.Entities.IdentityResource", "IdentityResource")
                .WithMany("Properties")
                .HasForeignKey("IdentityResourceId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("IdentityResource");
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiResource", b =>
            {
                b.Navigation("Properties");

                b.Navigation("Scopes");

                b.Navigation("Secrets");

                b.Navigation("UserClaims");
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.ApiScope", b =>
            {
                b.Navigation("Properties");

                b.Navigation("UserClaims");
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.Client", b =>
            {
                b.Navigation("AllowedCorsOrigins");

                b.Navigation("AllowedGrantTypes");

                b.Navigation("AllowedScopes");

                b.Navigation("Claims");

                b.Navigation("ClientSecrets");

                b.Navigation("IdentityProviderRestrictions");

                b.Navigation("PostLogoutRedirectUris");

                b.Navigation("Properties");

                b.Navigation("RedirectUris");
            });

            modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.IdentityResource", b =>
            {
                b.Navigation("Properties");

                b.Navigation("UserClaims");
            });
#pragma warning restore 612, 618
        }
Esempio n. 15
0
        protected override void BuildModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasDefaultSchema("deposits")
            .HasAnnotation("ProductVersion", "6.0.1")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("Service.Bitgo.DepositDetector.Postgres.Models.DepositAddressSqlEntity", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <string>("Address")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("AssetSymbol")
                .HasMaxLength(64)
                .HasColumnType("character varying(64)");

                b.Property <string>("Blockchain")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("BrokerId")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("ClientId")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <DateTime>("CreatedDate")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Integration")
                .HasMaxLength(64)
                .HasColumnType("character varying(64)");

                b.Property <string>("WalletId")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.HasKey("Id");

                b.HasIndex("AssetSymbol", "Blockchain", "Address")
                .IsUnique();

                b.HasIndex("BrokerId", "ClientId", "WalletId", "Blockchain", "AssetSymbol")
                .IsUnique();

                b.ToTable("deposit_addresses", "deposits");
            });

            modelBuilder.Entity("Service.Bitgo.DepositDetector.Postgres.Models.DepositEntity", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <decimal>("Amount")
                .HasColumnType("numeric");

                b.Property <string>("AssetSymbol")
                .IsRequired()
                .HasMaxLength(64)
                .HasColumnType("character varying(64)");

                b.Property <string>("BrokerId")
                .IsRequired()
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("CardLast4")
                .IsRequired()
                .ValueGeneratedOnAdd()
                .HasMaxLength(64)
                .HasColumnType("character varying(64)")
                .HasDefaultValue("");

                b.Property <string>("ClientId")
                .IsRequired()
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("Comment")
                .IsRequired()
                .HasMaxLength(512)
                .HasColumnType("character varying(512)");

                b.Property <DateTime>("EventDate")
                .HasColumnType("timestamp with time zone");

                b.Property <decimal>("FeeAmount")
                .HasColumnType("numeric");

                b.Property <string>("FeeAssetSymbol")
                .IsRequired()
                .HasMaxLength(64)
                .HasColumnType("character varying(64)");

                b.Property <string>("Integration")
                .IsRequired()
                .HasMaxLength(64)
                .HasColumnType("character varying(64)");

                b.Property <string>("LastError")
                .HasMaxLength(1024)
                .HasColumnType("character varying(1024)");

                b.Property <string>("MatchingEngineId")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("Network")
                .IsRequired()
                .ValueGeneratedOnAdd()
                .HasMaxLength(64)
                .HasColumnType("character varying(64)")
                .HasDefaultValue("");

                b.Property <int>("RetriesCount")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasDefaultValue(0);

                b.Property <int>("Status")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer")
                .HasDefaultValue(0);

                b.Property <string>("TransactionId")
                .IsRequired()
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("Txid")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <DateTime>("UpdateDate")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("WalletId")
                .IsRequired()
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.HasKey("Id");

                b.HasIndex("Status");

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

                b.ToTable("deposits", "deposits");
            });
#pragma warning restore 612, 618
        }
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasAnnotation("ProductVersion", "6.0.0")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("Ddi.Registry.Data.Agency", b =>
            {
                b.Property <string>("AgencyId")
                .HasColumnType("text");

                b.Property <string>("AdminContactId")
                .HasColumnType("text");

                b.Property <int>("ApprovalState")
                .HasColumnType("integer");

                b.Property <string>("CreatorId")
                .HasColumnType("text");

                b.Property <DateTime?>("DateApproved")
                .HasColumnType("timestamp with time zone");

                b.Property <DateTime>("DateCreated")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Label")
                .HasColumnType("text");

                b.Property <DateTime>("LastModified")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("TechnicalContactId")
                .HasColumnType("text");

                b.HasKey("AgencyId");

                b.HasIndex("AdminContactId");

                b.HasIndex("CreatorId");

                b.HasIndex("TechnicalContactId");

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

            modelBuilder.Entity("Ddi.Registry.Data.ApplicationUser", b =>
            {
                b.Property <string>("Id")
                .HasColumnType("text");

                b.Property <int>("AccessFailedCount")
                .HasColumnType("integer");

                b.Property <string>("City")
                .HasColumnType("text");

                b.Property <string>("ConcurrencyStamp")
                .IsConcurrencyToken()
                .HasColumnType("text");

                b.Property <string>("Country")
                .HasColumnType("text");

                b.Property <string>("Email")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <bool>("EmailConfirmed")
                .HasColumnType("boolean");

                b.Property <string>("HomePage")
                .HasColumnType("text");

                b.Property <string>("JobTitle")
                .HasColumnType("text");

                b.Property <bool>("LockoutEnabled")
                .HasColumnType("boolean");

                b.Property <DateTimeOffset?>("LockoutEnd")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Name")
                .HasColumnType("text");

                b.Property <string>("NormalizedEmail")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("NormalizedUserName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("Organization")
                .HasColumnType("text");

                b.Property <string>("PasswordHash")
                .HasColumnType("text");

                b.Property <string>("PhoneNumber")
                .HasColumnType("text");

                b.Property <bool>("PhoneNumberConfirmed")
                .HasColumnType("boolean");

                b.Property <string>("SecurityStamp")
                .HasColumnType("text");

                b.Property <string>("State")
                .HasColumnType("text");

                b.Property <string>("StreetAddress")
                .HasColumnType("text");

                b.Property <bool>("TwoFactorEnabled")
                .HasColumnType("boolean");

                b.Property <string>("UserName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("Zip")
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("NormalizedEmail")
                .HasDatabaseName("EmailIndex");

                b.HasIndex("NormalizedUserName")
                .IsUnique()
                .HasDatabaseName("UserNameIndex");

                b.ToTable("AspNetUsers", (string)null);
            });

            modelBuilder.Entity("Ddi.Registry.Data.Assignment", b =>
            {
                b.Property <string>("AssignmentId")
                .HasColumnType("text");

                b.Property <string>("AgencyId")
                .HasColumnType("text");

                b.Property <DateTime>("DateCreated")
                .HasColumnType("timestamp with time zone");

                b.Property <bool>("IsDelegated")
                .HasColumnType("boolean");

                b.Property <DateTime>("LastModified")
                .HasColumnType("timestamp with time zone");

                b.HasKey("AssignmentId");

                b.HasIndex("AgencyId");

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

            modelBuilder.Entity("Ddi.Registry.Data.Delegation", b =>
            {
                b.Property <string>("DelegationId")
                .HasColumnType("text");

                b.Property <string>("AssignmentId")
                .HasColumnType("text");

                b.Property <string>("NameServer")
                .IsRequired()
                .HasMaxLength(255)
                .HasColumnType("character varying(255)");

                b.HasKey("DelegationId");

                b.HasIndex("AssignmentId");

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

            modelBuilder.Entity("Ddi.Registry.Data.ExportAction", b =>
            {
                b.Property <string>("Id")
                .HasColumnType("text");

                b.Property <DateTimeOffset>("LastModified")
                .HasColumnType("timestamp with time zone");

                b.Property <long?>("LastSoa")
                .HasColumnType("bigint");

                b.HasKey("Id");

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

            modelBuilder.Entity("Ddi.Registry.Data.HttpResolver", b =>
            {
                b.Property <string>("Id")
                .HasColumnType("text");

                b.Property <string>("AssignmentId")
                .IsRequired()
                .HasColumnType("text");

                b.Property <string>("ResolutionType")
                .IsRequired()
                .HasMaxLength(50)
                .HasColumnType("character varying(50)");

                b.Property <string>("UrlTemplate")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("AssignmentId");

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

            modelBuilder.Entity("Ddi.Registry.Data.Service", b =>
            {
                b.Property <string>("ServiceId")
                .HasColumnType("text");

                b.Property <string>("AssignmentId")
                .IsRequired()
                .HasColumnType("text");

                b.Property <string>("Hostname")
                .IsRequired()
                .HasMaxLength(255)
                .HasColumnType("character varying(255)");

                b.Property <int>("Port")
                .HasColumnType("integer");

                b.Property <int>("Priority")
                .HasColumnType("integer");

                b.Property <string>("Protocol")
                .IsRequired()
                .HasMaxLength(10)
                .HasColumnType("character varying(10)");

                b.Property <string>("ServiceName")
                .IsRequired()
                .HasMaxLength(50)
                .HasColumnType("character varying(50)");

                b.Property <int>("TimeToLive")
                .HasColumnType("integer");

                b.Property <int>("Weight")
                .HasColumnType("integer");

                b.HasKey("ServiceId");

                b.HasIndex("AssignmentId");

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

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b =>
            {
                b.Property <string>("Id")
                .HasColumnType("text");

                b.Property <string>("ConcurrencyStamp")
                .IsConcurrencyToken()
                .HasColumnType("text");

                b.Property <string>("Name")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("NormalizedName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.HasKey("Id");

                b.HasIndex("NormalizedName")
                .IsUnique()
                .HasDatabaseName("RoleNameIndex");

                b.ToTable("AspNetRoles", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("ClaimType")
                .HasColumnType("text");

                b.Property <string>("ClaimValue")
                .HasColumnType("text");

                b.Property <string>("RoleId")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("RoleId");

                b.ToTable("AspNetRoleClaims", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("ClaimType")
                .HasColumnType("text");

                b.Property <string>("ClaimValue")
                .HasColumnType("text");

                b.Property <string>("UserId")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("UserId");

                b.ToTable("AspNetUserClaims", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
            {
                b.Property <string>("LoginProvider")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("ProviderKey")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("ProviderDisplayName")
                .HasColumnType("text");

                b.Property <string>("UserId")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("LoginProvider", "ProviderKey");

                b.HasIndex("UserId");

                b.ToTable("AspNetUserLogins", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
            {
                b.Property <string>("UserId")
                .HasColumnType("text");

                b.Property <string>("RoleId")
                .HasColumnType("text");

                b.HasKey("UserId", "RoleId");

                b.HasIndex("RoleId");

                b.ToTable("AspNetUserRoles", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
            {
                b.Property <string>("UserId")
                .HasColumnType("text");

                b.Property <string>("LoginProvider")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("Name")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("Value")
                .HasColumnType("text");

                b.HasKey("UserId", "LoginProvider", "Name");

                b.ToTable("AspNetUserTokens", (string)null);
            });

            modelBuilder.Entity("Ddi.Registry.Data.Agency", b =>
            {
                b.HasOne("Ddi.Registry.Data.ApplicationUser", "AdminContact")
                .WithMany()
                .HasForeignKey("AdminContactId");

                b.HasOne("Ddi.Registry.Data.ApplicationUser", "Creator")
                .WithMany()
                .HasForeignKey("CreatorId");

                b.HasOne("Ddi.Registry.Data.ApplicationUser", "TechnicalContact")
                .WithMany()
                .HasForeignKey("TechnicalContactId");

                b.Navigation("AdminContact");

                b.Navigation("Creator");

                b.Navigation("TechnicalContact");
            });

            modelBuilder.Entity("Ddi.Registry.Data.Assignment", b =>
            {
                b.HasOne("Ddi.Registry.Data.Agency", "Agency")
                .WithMany("Assignments")
                .HasForeignKey("AgencyId");

                b.Navigation("Agency");
            });

            modelBuilder.Entity("Ddi.Registry.Data.Delegation", b =>
            {
                b.HasOne("Ddi.Registry.Data.Assignment", "Assignment")
                .WithMany("Delegations")
                .HasForeignKey("AssignmentId");

                b.Navigation("Assignment");
            });

            modelBuilder.Entity("Ddi.Registry.Data.HttpResolver", b =>
            {
                b.HasOne("Ddi.Registry.Data.Assignment", "Assignment")
                .WithMany("HttpResolvers")
                .HasForeignKey("AssignmentId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Assignment");
            });

            modelBuilder.Entity("Ddi.Registry.Data.Service", b =>
            {
                b.HasOne("Ddi.Registry.Data.Assignment", "Assignment")
                .WithMany("Services")
                .HasForeignKey("AssignmentId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Assignment");
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
            {
                b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
                .WithMany()
                .HasForeignKey("RoleId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
            {
                b.HasOne("Ddi.Registry.Data.ApplicationUser", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
            {
                b.HasOne("Ddi.Registry.Data.ApplicationUser", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
            {
                b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
                .WithMany()
                .HasForeignKey("RoleId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("Ddi.Registry.Data.ApplicationUser", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
            {
                b.HasOne("Ddi.Registry.Data.ApplicationUser", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Ddi.Registry.Data.Agency", b =>
            {
                b.Navigation("Assignments");
            });

            modelBuilder.Entity("Ddi.Registry.Data.Assignment", b =>
            {
                b.Navigation("Delegations");

                b.Navigation("HttpResolvers");

                b.Navigation("Services");
            });
#pragma warning restore 612, 618
        }
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasAnnotation("ProductVersion", "6.0.0")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("DidacticalEnigma.Mem.DatabaseModels.AllowedMediaType", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("Extension")
                .IsRequired()
                .HasColumnType("text");

                b.Property <string>("MediaType")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("Id");

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

                b.ToTable("MediaTypes");

                b.HasData(
                    new
                {
                    Id        = 1,
                    Extension = "jpg",
                    MediaType = "image/jpeg"
                },
                    new
                {
                    Id        = 2,
                    Extension = "png",
                    MediaType = "image/png"
                });
            });

            modelBuilder.Entity("DidacticalEnigma.Mem.DatabaseModels.Category", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <string>("Name")
                .IsRequired()
                .HasColumnType("text");

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

                b.HasKey("Id");

                b.HasIndex("ParentId");

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

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

            modelBuilder.Entity("DidacticalEnigma.Mem.DatabaseModels.Context", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <long?>("ContentObjectId")
                .HasColumnType("bigint");

                b.Property <string>("CorrelationId")
                .IsRequired()
                .HasColumnType("text");

                b.Property <int?>("MediaTypeId")
                .HasColumnType("integer");

                b.Property <int>("ProjectId")
                .HasColumnType("integer");

                b.Property <string>("Text")
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("MediaTypeId");

                b.HasIndex("ProjectId", "CorrelationId")
                .IsUnique();

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

            modelBuilder.Entity("DidacticalEnigma.Mem.DatabaseModels.NpgsqlQuery", b =>
            {
                b.Property <NpgsqlTsVector>("Vec")
                .IsRequired()
                .HasColumnType("tsvector");

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

            modelBuilder.Entity("DidacticalEnigma.Mem.DatabaseModels.Project", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("Name")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("Id");

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

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

            modelBuilder.Entity("DidacticalEnigma.Mem.DatabaseModels.Translation", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <string>("AssociatedData")
                .HasColumnType("jsonb");

                b.Property <Guid?>("CategoryId")
                .HasColumnType("uuid");

                b.Property <string>("CorrelationId")
                .IsRequired()
                .HasColumnType("text");

                b.Property <DateTime>("CreationTime")
                .HasColumnType("timestamp with time zone");

                b.Property <DateTime>("ModificationTime")
                .HasColumnType("timestamp with time zone");

                b.Property <NotesCollection>("Notes")
                .HasColumnType("jsonb");

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

                b.Property <NpgsqlTsVector>("SearchVector")
                .IsRequired()
                .HasColumnType("tsvector");

                b.Property <string>("Source")
                .IsRequired()
                .HasColumnType("text");

                b.Property <string>("Target")
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("CategoryId");

                b.HasIndex("CorrelationId");

                b.HasIndex("SearchVector");

                NpgsqlIndexBuilderExtensions.HasMethod(b.HasIndex("SearchVector"), "GIN");

                b.HasIndex("ParentId", "CorrelationId")
                .IsUnique();

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

            modelBuilder.Entity("DidacticalEnigma.Mem.DatabaseModels.User", b =>
            {
                b.Property <string>("Id")
                .HasColumnType("text");

                b.Property <int>("AccessFailedCount")
                .HasColumnType("integer");

                b.Property <string>("ConcurrencyStamp")
                .IsConcurrencyToken()
                .HasColumnType("text");

                b.Property <string>("Email")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <bool>("EmailConfirmed")
                .HasColumnType("boolean");

                b.Property <bool>("LockoutEnabled")
                .HasColumnType("boolean");

                b.Property <DateTimeOffset?>("LockoutEnd")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("NormalizedEmail")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("NormalizedUserName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("PasswordHash")
                .HasColumnType("text");

                b.Property <string>("PhoneNumber")
                .HasColumnType("text");

                b.Property <bool>("PhoneNumberConfirmed")
                .HasColumnType("boolean");

                b.Property <string>("SecurityStamp")
                .HasColumnType("text");

                b.Property <bool>("TwoFactorEnabled")
                .HasColumnType("boolean");

                b.Property <string>("UserName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.HasKey("Id");

                b.HasIndex("NormalizedEmail")
                .HasDatabaseName("EmailIndex");

                b.HasIndex("NormalizedUserName")
                .IsUnique()
                .HasDatabaseName("UserNameIndex");

                b.ToTable("AspNetUsers", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b =>
            {
                b.Property <string>("Id")
                .HasColumnType("text");

                b.Property <string>("ConcurrencyStamp")
                .IsConcurrencyToken()
                .HasColumnType("text");

                b.Property <string>("Name")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("NormalizedName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.HasKey("Id");

                b.HasIndex("NormalizedName")
                .IsUnique()
                .HasDatabaseName("RoleNameIndex");

                b.ToTable("AspNetRoles", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("ClaimType")
                .HasColumnType("text");

                b.Property <string>("ClaimValue")
                .HasColumnType("text");

                b.Property <string>("RoleId")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("RoleId");

                b.ToTable("AspNetRoleClaims", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("ClaimType")
                .HasColumnType("text");

                b.Property <string>("ClaimValue")
                .HasColumnType("text");

                b.Property <string>("UserId")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("UserId");

                b.ToTable("AspNetUserClaims", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
            {
                b.Property <string>("LoginProvider")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("ProviderKey")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("ProviderDisplayName")
                .HasColumnType("text");

                b.Property <string>("UserId")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("LoginProvider", "ProviderKey");

                b.HasIndex("UserId");

                b.ToTable("AspNetUserLogins", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
            {
                b.Property <string>("UserId")
                .HasColumnType("text");

                b.Property <string>("RoleId")
                .HasColumnType("text");

                b.HasKey("UserId", "RoleId");

                b.HasIndex("RoleId");

                b.ToTable("AspNetUserRoles", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
            {
                b.Property <string>("UserId")
                .HasColumnType("text");

                b.Property <string>("LoginProvider")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("Name")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("Value")
                .HasColumnType("text");

                b.HasKey("UserId", "LoginProvider", "Name");

                b.ToTable("AspNetUserTokens", (string)null);
            });

            modelBuilder.Entity("DidacticalEnigma.Mem.DatabaseModels.Category", b =>
            {
                b.HasOne("DidacticalEnigma.Mem.DatabaseModels.Project", "Parent")
                .WithMany("Categories")
                .HasForeignKey("ParentId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Parent");
            });

            modelBuilder.Entity("DidacticalEnigma.Mem.DatabaseModels.Context", b =>
            {
                b.HasOne("DidacticalEnigma.Mem.DatabaseModels.AllowedMediaType", "MediaType")
                .WithMany()
                .HasForeignKey("MediaTypeId");

                b.HasOne("DidacticalEnigma.Mem.DatabaseModels.Project", "Project")
                .WithMany()
                .HasForeignKey("ProjectId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("MediaType");

                b.Navigation("Project");
            });

            modelBuilder.Entity("DidacticalEnigma.Mem.DatabaseModels.Translation", b =>
            {
                b.HasOne("DidacticalEnigma.Mem.DatabaseModels.Category", "Category")
                .WithMany("Translations")
                .HasForeignKey("CategoryId")
                .OnDelete(DeleteBehavior.SetNull);

                b.HasOne("DidacticalEnigma.Mem.DatabaseModels.Project", "Parent")
                .WithMany("Translations")
                .HasForeignKey("ParentId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Category");

                b.Navigation("Parent");
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
            {
                b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
                .WithMany()
                .HasForeignKey("RoleId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
            {
                b.HasOne("DidacticalEnigma.Mem.DatabaseModels.User", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
            {
                b.HasOne("DidacticalEnigma.Mem.DatabaseModels.User", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
            {
                b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
                .WithMany()
                .HasForeignKey("RoleId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("DidacticalEnigma.Mem.DatabaseModels.User", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
            {
                b.HasOne("DidacticalEnigma.Mem.DatabaseModels.User", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("DidacticalEnigma.Mem.DatabaseModels.Category", b =>
            {
                b.Navigation("Translations");
            });

            modelBuilder.Entity("DidacticalEnigma.Mem.DatabaseModels.Project", b =>
            {
                b.Navigation("Categories");

                b.Navigation("Translations");
            });
#pragma warning restore 612, 618
        }
        protected override void BuildModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasAnnotation("ProductVersion", "6.0.1")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("ThanksCardAPI.Models.Department", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <int>("Code")
                .HasColumnType("integer");

                b.Property <string>("Name")
                .IsRequired()
                .HasColumnType("text");

                b.Property <long?>("ParentId")
                .HasColumnType("bigint");

                b.HasKey("Id");

                b.HasIndex("ParentId");

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

            modelBuilder.Entity("ThanksCardAPI.Models.Tag", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <string>("Name")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("Id");

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

            modelBuilder.Entity("ThanksCardAPI.Models.ThanksCard", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <string>("Body")
                .IsRequired()
                .HasColumnType("text");

                b.Property <DateTime>("CreatedDateTime")
                .HasColumnType("timestamp with time zone");

                b.Property <long>("FromId")
                .HasColumnType("bigint");

                b.Property <string>("Title")
                .IsRequired()
                .HasColumnType("text");

                b.Property <long>("ToId")
                .HasColumnType("bigint");

                b.HasKey("Id");

                b.HasIndex("FromId");

                b.HasIndex("ToId");

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

            modelBuilder.Entity("ThanksCardAPI.Models.ThanksCardTag", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <long>("TagId")
                .HasColumnType("bigint");

                b.Property <long>("ThanksCardId")
                .HasColumnType("bigint");

                b.HasKey("Id");

                b.HasIndex("TagId");

                b.HasIndex("ThanksCardId");

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

            modelBuilder.Entity("ThanksCardAPI.Models.User", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <long?>("DepartmentId")
                .HasColumnType("bigint");

                b.Property <bool>("IsAdmin")
                .HasColumnType("boolean");

                b.Property <string>("Name")
                .IsRequired()
                .HasColumnType("text");

                b.Property <string>("Password")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("DepartmentId");

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

            modelBuilder.Entity("ThanksCardAPI.Models.Department", b =>
            {
                b.HasOne("ThanksCardAPI.Models.Department", "Parent")
                .WithMany("Children")
                .HasForeignKey("ParentId");

                b.Navigation("Parent");
            });

            modelBuilder.Entity("ThanksCardAPI.Models.ThanksCard", b =>
            {
                b.HasOne("ThanksCardAPI.Models.User", "From")
                .WithMany()
                .HasForeignKey("FromId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("ThanksCardAPI.Models.User", "To")
                .WithMany()
                .HasForeignKey("ToId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("From");

                b.Navigation("To");
            });

            modelBuilder.Entity("ThanksCardAPI.Models.ThanksCardTag", b =>
            {
                b.HasOne("ThanksCardAPI.Models.Tag", "Tag")
                .WithMany("ThanksCardTags")
                .HasForeignKey("TagId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("ThanksCardAPI.Models.ThanksCard", "ThanksCard")
                .WithMany("ThanksCardTags")
                .HasForeignKey("ThanksCardId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Tag");

                b.Navigation("ThanksCard");
            });

            modelBuilder.Entity("ThanksCardAPI.Models.User", b =>
            {
                b.HasOne("ThanksCardAPI.Models.Department", "Department")
                .WithMany("Users")
                .HasForeignKey("DepartmentId");

                b.Navigation("Department");
            });

            modelBuilder.Entity("ThanksCardAPI.Models.Department", b =>
            {
                b.Navigation("Children");

                b.Navigation("Users");
            });

            modelBuilder.Entity("ThanksCardAPI.Models.Tag", b =>
            {
                b.Navigation("ThanksCardTags");
            });

            modelBuilder.Entity("ThanksCardAPI.Models.ThanksCard", b =>
            {
                b.Navigation("ThanksCardTags");
            });
#pragma warning restore 612, 618
        }
        protected override void BuildModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasDefaultSchema("RoleplayModule")
            .HasAnnotation("ProductVersion", "6.0.0")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "fuzzystrmatch");
            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint")
                .HasColumnName("id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));

                b.Property <string>("Description")
                .HasColumnType("text")
                .HasColumnName("description");

                b.Property <long>("DiscordID")
                .HasColumnType("bigint")
                .HasColumnName("discord_id");

                b.Property <bool>("IsNSFW")
                .HasColumnType("boolean")
                .HasColumnName("is_nsfw");

                b.Property <string>("JoinMessage")
                .HasColumnType("text")
                .HasColumnName("join_message");

                b.Property <bool>("SendJoinMessage")
                .HasColumnType("boolean")
                .HasColumnName("send_join_message");

                b.Property <bool>("SuppressPermissionWarnings")
                .HasColumnType("boolean")
                .HasColumnName("suppress_permission_warnings");

                b.HasKey("ID")
                .HasName("pk_servers");

                b.ToTable("Servers", "Core", t => t.ExcludeFromMigrations());
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Core.Model.Users.ServerUser", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint")
                .HasColumnName("id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));

                b.Property <long>("ServerID")
                .HasColumnType("bigint")
                .HasColumnName("server_id");

                b.Property <long>("UserID")
                .HasColumnType("bigint")
                .HasColumnName("user_id");

                b.HasKey("ID")
                .HasName("pk_server_user");

                b.HasIndex("ServerID")
                .HasDatabaseName("ix_server_user_server_id");

                b.HasIndex("UserID")
                .HasDatabaseName("ix_server_user_user_id");

                b.ToTable("ServerUser", "Core", t => t.ExcludeFromMigrations());
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Core.Model.Users.User", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint")
                .HasColumnName("id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));

                b.Property <string>("Bio")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("bio");

                b.Property <long>("DiscordID")
                .HasColumnType("bigint")
                .HasColumnName("discord_id");

                b.Property <int?>("Timezone")
                .HasColumnType("integer")
                .HasColumnName("timezone");

                b.HasKey("ID")
                .HasName("pk_users");

                b.ToTable("Users", "Core", t => t.ExcludeFromMigrations());
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Roleplaying.Model.Roleplay", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint")
                .HasColumnName("id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));

                b.Property <long?>("ActiveChannelID")
                .HasColumnType("bigint")
                .HasColumnName("active_channel_id");

                b.Property <long?>("DedicatedChannelID")
                .HasColumnType("bigint")
                .HasColumnName("dedicated_channel_id");

                b.Property <bool>("IsActive")
                .HasColumnType("boolean")
                .HasColumnName("is_active");

                b.Property <bool>("IsNSFW")
                .HasColumnType("boolean")
                .HasColumnName("is_nsfw");

                b.Property <bool>("IsPublic")
                .HasColumnType("boolean")
                .HasColumnName("is_public");

                b.Property <DateTimeOffset?>("LastUpdated")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("last_updated");

                b.Property <string>("Name")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("name");

                b.Property <long>("OwnerID")
                .HasColumnType("bigint")
                .HasColumnName("owner_id");

                b.Property <long>("ServerID")
                .HasColumnType("bigint")
                .HasColumnName("server_id");

                b.Property <string>("Summary")
                .HasColumnType("text")
                .HasColumnName("summary");

                b.HasKey("ID")
                .HasName("pk_roleplays");

                b.HasIndex("OwnerID")
                .HasDatabaseName("ix_roleplays_owner_id");

                b.HasIndex("ServerID")
                .HasDatabaseName("ix_roleplays_server_id");

                b.ToTable("Roleplays", "RoleplayModule");
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Roleplaying.Model.RoleplayParticipant", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint")
                .HasColumnName("id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));

                b.Property <long>("RoleplayID")
                .HasColumnType("bigint")
                .HasColumnName("roleplay_id");

                b.Property <int>("Status")
                .HasColumnType("integer")
                .HasColumnName("status");

                b.Property <long>("UserID")
                .HasColumnType("bigint")
                .HasColumnName("user_id");

                b.HasKey("ID")
                .HasName("pk_roleplay_participants");

                b.HasIndex("RoleplayID")
                .HasDatabaseName("ix_roleplay_participants_roleplay_id");

                b.HasIndex("UserID")
                .HasDatabaseName("ix_roleplay_participants_user_id");

                b.ToTable("RoleplayParticipants", "RoleplayModule");
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Roleplaying.Model.ServerRoleplaySettings", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint")
                .HasColumnName("id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));

                b.Property <long?>("ArchiveChannel")
                .HasColumnType("bigint")
                .HasColumnName("archive_channel");

                b.Property <long?>("DedicatedRoleplayChannelsCategory")
                .HasColumnType("bigint")
                .HasColumnName("dedicated_roleplay_channels_category");

                b.Property <long?>("DefaultUserRole")
                .HasColumnType("bigint")
                .HasColumnName("default_user_role");

                b.Property <long>("ServerID")
                .HasColumnType("bigint")
                .HasColumnName("server_id");

                b.HasKey("ID")
                .HasName("pk_server_settings");

                b.HasIndex("ServerID")
                .HasDatabaseName("ix_server_settings_server_id");

                b.ToTable("ServerSettings", "RoleplayModule");
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Roleplaying.Model.UserMessage", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint")
                .HasColumnName("id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));

                b.Property <long>("AuthorID")
                .HasColumnType("bigint")
                .HasColumnName("author_id");

                b.Property <string>("AuthorNickname")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("author_nickname");

                b.Property <string>("Contents")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("contents");

                b.Property <long>("DiscordMessageID")
                .HasColumnType("bigint")
                .HasColumnName("discord_message_id");

                b.Property <long?>("RoleplayID")
                .HasColumnType("bigint")
                .HasColumnName("roleplay_id");

                b.Property <DateTimeOffset>("Timestamp")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("timestamp");

                b.HasKey("ID")
                .HasName("pk_user_messages");

                b.HasIndex("AuthorID")
                .HasDatabaseName("ix_user_messages_author_id");

                b.HasIndex("RoleplayID")
                .HasDatabaseName("ix_user_messages_roleplay_id");

                b.ToTable("UserMessages", "RoleplayModule");
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Core.Model.Users.ServerUser", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", "Server")
                .WithMany("KnownUsers")
                .HasForeignKey("ServerID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_server_user_servers_server_id");

                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Users.User", "User")
                .WithMany()
                .HasForeignKey("UserID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_server_user_users_user_id");

                b.Navigation("Server");

                b.Navigation("User");
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Roleplaying.Model.Roleplay", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Users.User", "Owner")
                .WithMany()
                .HasForeignKey("OwnerID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_roleplays_users_owner_id");

                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", "Server")
                .WithMany()
                .HasForeignKey("ServerID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_roleplays_servers_server_id");

                b.Navigation("Owner");

                b.Navigation("Server");
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Roleplaying.Model.RoleplayParticipant", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Roleplaying.Model.Roleplay", "Roleplay")
                .WithMany("ParticipatingUsers")
                .HasForeignKey("RoleplayID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_roleplay_participants_roleplays_roleplay_id");

                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Users.User", "User")
                .WithMany()
                .HasForeignKey("UserID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_roleplay_participants_users_user_id");

                b.Navigation("Roleplay");

                b.Navigation("User");
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Roleplaying.Model.ServerRoleplaySettings", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", "Server")
                .WithMany()
                .HasForeignKey("ServerID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_server_settings_servers_server_id");

                b.Navigation("Server");
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Roleplaying.Model.UserMessage", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Users.User", "Author")
                .WithMany()
                .HasForeignKey("AuthorID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_user_messages_users_author_id");

                b.HasOne("DIGOS.Ambassador.Plugins.Roleplaying.Model.Roleplay", null)
                .WithMany("Messages")
                .HasForeignKey("RoleplayID")
                .HasConstraintName("fk_user_messages_roleplays_roleplay_id");

                b.Navigation("Author");
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", b =>
            {
                b.Navigation("KnownUsers");
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Roleplaying.Model.Roleplay", b =>
            {
                b.Navigation("Messages");

                b.Navigation("ParticipatingUsers");
            });
#pragma warning restore 612, 618
        }
Esempio n. 20
0
        protected override void BuildModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasDefaultSchema("ModerationModule")
            .HasAnnotation("ProductVersion", "6.0.0")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "fuzzystrmatch");
            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint")
                .HasColumnName("id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));

                b.Property <string>("Description")
                .HasColumnType("text")
                .HasColumnName("description");

                b.Property <long>("DiscordID")
                .HasColumnType("bigint")
                .HasColumnName("discord_id");

                b.Property <bool>("IsNSFW")
                .HasColumnType("boolean")
                .HasColumnName("is_nsfw");

                b.Property <string>("JoinMessage")
                .HasColumnType("text")
                .HasColumnName("join_message");

                b.Property <bool>("SendJoinMessage")
                .HasColumnType("boolean")
                .HasColumnName("send_join_message");

                b.Property <bool>("SuppressPermissionWarnings")
                .HasColumnType("boolean")
                .HasColumnName("suppress_permission_warnings");

                b.HasKey("ID")
                .HasName("pk_servers");

                b.ToTable("Servers", "Core", t => t.ExcludeFromMigrations());
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Core.Model.Users.ServerUser", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint")
                .HasColumnName("id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));

                b.Property <long>("ServerID")
                .HasColumnType("bigint")
                .HasColumnName("server_id");

                b.Property <long>("UserID")
                .HasColumnType("bigint")
                .HasColumnName("user_id");

                b.HasKey("ID")
                .HasName("pk_server_user");

                b.HasIndex("ServerID")
                .HasDatabaseName("ix_server_user_server_id");

                b.HasIndex("UserID")
                .HasDatabaseName("ix_server_user_user_id");

                b.ToTable("ServerUser", "Core", t => t.ExcludeFromMigrations());
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Core.Model.Users.User", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint")
                .HasColumnName("id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));

                b.Property <string>("Bio")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("bio");

                b.Property <long>("DiscordID")
                .HasColumnType("bigint")
                .HasColumnName("discord_id");

                b.Property <int?>("Timezone")
                .HasColumnType("integer")
                .HasColumnName("timezone");

                b.HasKey("ID")
                .HasName("pk_users");

                b.ToTable("Users", "Core", t => t.ExcludeFromMigrations());
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Moderation.Model.ServerModerationSettings", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint")
                .HasColumnName("id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));

                b.Property <long?>("ModerationLogChannel")
                .HasColumnType("bigint")
                .HasColumnName("moderation_log_channel");

                b.Property <long?>("MonitoringChannel")
                .HasColumnType("bigint")
                .HasColumnName("monitoring_channel");

                b.Property <long>("ServerID")
                .HasColumnType("bigint")
                .HasColumnName("server_id");

                b.Property <int>("WarningThreshold")
                .HasColumnType("integer")
                .HasColumnName("warning_threshold");

                b.HasKey("ID")
                .HasName("pk_server_moderation_settings");

                b.HasIndex("ServerID")
                .HasDatabaseName("ix_server_moderation_settings_server_id");

                b.ToTable("ServerModerationSettings", "ModerationModule");
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Moderation.Model.UserBan", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint")
                .HasColumnName("id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));

                b.Property <long>("AuthorID")
                .HasColumnType("bigint")
                .HasColumnName("author_id");

                b.Property <DateTimeOffset>("CreatedAt")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("created_at");

                b.Property <DateTimeOffset?>("ExpiresOn")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("expires_on");

                b.Property <long?>("MessageID")
                .HasColumnType("bigint")
                .HasColumnName("message_id");

                b.Property <string>("Reason")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("reason");

                b.Property <long>("ServerID")
                .HasColumnType("bigint")
                .HasColumnName("server_id");

                b.Property <DateTimeOffset>("UpdatedAt")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("updated_at");

                b.Property <long>("UserID")
                .HasColumnType("bigint")
                .HasColumnName("user_id");

                b.HasKey("ID")
                .HasName("pk_user_bans");

                b.HasIndex("AuthorID")
                .HasDatabaseName("ix_user_bans_author_id");

                b.HasIndex("ServerID")
                .HasDatabaseName("ix_user_bans_server_id");

                b.HasIndex("UserID")
                .HasDatabaseName("ix_user_bans_user_id");

                b.ToTable("UserBans", "ModerationModule");
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Moderation.Model.UserNote", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint")
                .HasColumnName("id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));

                b.Property <long>("AuthorID")
                .HasColumnType("bigint")
                .HasColumnName("author_id");

                b.Property <string>("Content")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("content");

                b.Property <DateTimeOffset>("CreatedAt")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("created_at");

                b.Property <long>("ServerID")
                .HasColumnType("bigint")
                .HasColumnName("server_id");

                b.Property <DateTimeOffset>("UpdatedAt")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("updated_at");

                b.Property <long>("UserID")
                .HasColumnType("bigint")
                .HasColumnName("user_id");

                b.HasKey("ID")
                .HasName("pk_user_notes");

                b.HasIndex("AuthorID")
                .HasDatabaseName("ix_user_notes_author_id");

                b.HasIndex("ServerID")
                .HasDatabaseName("ix_user_notes_server_id");

                b.HasIndex("UserID")
                .HasDatabaseName("ix_user_notes_user_id");

                b.ToTable("UserNotes", "ModerationModule");
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Moderation.Model.UserWarning", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint")
                .HasColumnName("id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));

                b.Property <long>("AuthorID")
                .HasColumnType("bigint")
                .HasColumnName("author_id");

                b.Property <DateTimeOffset>("CreatedAt")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("created_at");

                b.Property <DateTimeOffset?>("ExpiresOn")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("expires_on");

                b.Property <long?>("MessageID")
                .HasColumnType("bigint")
                .HasColumnName("message_id");

                b.Property <string>("Reason")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("reason");

                b.Property <long>("ServerID")
                .HasColumnType("bigint")
                .HasColumnName("server_id");

                b.Property <DateTimeOffset>("UpdatedAt")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("updated_at");

                b.Property <long>("UserID")
                .HasColumnType("bigint")
                .HasColumnName("user_id");

                b.HasKey("ID")
                .HasName("pk_user_warnings");

                b.HasIndex("AuthorID")
                .HasDatabaseName("ix_user_warnings_author_id");

                b.HasIndex("ServerID")
                .HasDatabaseName("ix_user_warnings_server_id");

                b.HasIndex("UserID")
                .HasDatabaseName("ix_user_warnings_user_id");

                b.ToTable("UserWarnings", "ModerationModule");
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Core.Model.Users.ServerUser", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", "Server")
                .WithMany("KnownUsers")
                .HasForeignKey("ServerID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_server_user_servers_server_id");

                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Users.User", "User")
                .WithMany()
                .HasForeignKey("UserID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_server_user_users_user_id");

                b.Navigation("Server");

                b.Navigation("User");
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Moderation.Model.ServerModerationSettings", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", "Server")
                .WithMany()
                .HasForeignKey("ServerID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_server_moderation_settings_servers_server_id");

                b.Navigation("Server");
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Moderation.Model.UserBan", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Users.User", "Author")
                .WithMany()
                .HasForeignKey("AuthorID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_user_bans_users_author_id");

                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", "Server")
                .WithMany()
                .HasForeignKey("ServerID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_user_bans_servers_server_id");

                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Users.User", "User")
                .WithMany()
                .HasForeignKey("UserID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_user_bans_users_user_id");

                b.Navigation("Author");

                b.Navigation("Server");

                b.Navigation("User");
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Moderation.Model.UserNote", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Users.User", "Author")
                .WithMany()
                .HasForeignKey("AuthorID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_user_notes_users_author_id");

                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", "Server")
                .WithMany()
                .HasForeignKey("ServerID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_user_notes_servers_server_id");

                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Users.User", "User")
                .WithMany()
                .HasForeignKey("UserID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_user_notes_users_user_id");

                b.Navigation("Author");

                b.Navigation("Server");

                b.Navigation("User");
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Moderation.Model.UserWarning", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Users.User", "Author")
                .WithMany()
                .HasForeignKey("AuthorID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_user_warnings_users_author_id");

                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", "Server")
                .WithMany()
                .HasForeignKey("ServerID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_user_warnings_servers_server_id");

                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Users.User", "User")
                .WithMany()
                .HasForeignKey("UserID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_user_warnings_users_user_id");

                b.Navigation("Author");

                b.Navigation("Server");

                b.Navigation("User");
            });

            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", b =>
            {
                b.Navigation("KnownUsers");
            });
#pragma warning restore 612, 618
        }
Esempio n. 21
0
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasDefaultSchema("balancehistory")
            .HasAnnotation("ProductVersion", "6.0.1")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("Service.BalanceHistory.Domain.Models.SnapshotEntity", b =>
            {
                b.Property <string>("WalletId")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("AssetId")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <decimal>("AvgOpenPrice")
                .HasColumnType("numeric");

                b.Property <decimal>("Balance")
                .HasColumnType("numeric");

                b.Property <DateTime>("LastTimestamp")
                .HasColumnType("timestamp with time zone");

                b.Property <DateTime>("OpenTimestamp")
                .HasColumnType("timestamp with time zone");

                b.HasKey("WalletId", "AssetId");

                b.HasIndex("WalletId");

                b.HasIndex("WalletId", "AssetId", "LastTimestamp");

                b.ToTable("avgprice_snapshots", "balancehistory");
            });

            modelBuilder.Entity("Service.BalanceHistory.Postgres.Models.BalanceHistoryEntity", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <double>("AmountBalance")
                .HasColumnType("double precision");

                b.Property <double>("AmountReserve")
                .HasColumnType("double precision");

                b.Property <double>("AvailableBalance")
                .HasColumnType("double precision");

                b.Property <string>("EventType")
                .HasColumnType("text");

                b.Property <bool>("IsBalanceChanged")
                .HasColumnType("boolean");

                b.Property <double>("NewBalance")
                .HasColumnType("double precision");

                b.Property <double>("NewReserve")
                .HasColumnType("double precision");

                b.Property <double>("OldBalance")
                .HasColumnType("double precision");

                b.Property <double>("OldReserve")
                .HasColumnType("double precision");

                b.Property <string>("OperationId")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <long>("SequenceId")
                .HasColumnType("bigint");

                b.Property <string>("Symbol")
                .HasMaxLength(64)
                .HasColumnType("character varying(64)");

                b.Property <DateTime>("Timestamp")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("WalletId")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.HasKey("Id");

                b.HasIndex("OperationId");

                b.HasIndex("SequenceId");

                b.HasIndex("WalletId");

                b.HasIndex("WalletId", "SequenceId");

                b.HasIndex("WalletId", "Symbol");

                b.HasIndex("OperationId", "WalletId", "Symbol")
                .IsUnique();

                b.HasIndex("WalletId", "Symbol", "SequenceId");

                b.HasIndex("WalletId", "Symbol", "Timestamp");

                b.ToTable("balance_history", "balancehistory");
            });

            modelBuilder.Entity("Service.BalanceHistory.Postgres.Models.OperationHistoryEntity", b =>
            {
                b.Property <string>("OperationId")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("WalletId")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("AssetId")
                .HasMaxLength(64)
                .HasColumnType("character varying(64)");

                b.Property <decimal>("Amount")
                .HasColumnType("numeric");

                b.Property <decimal>("AssetPriceInUsd")
                .HasColumnType("numeric");

                b.Property <decimal>("AvgOpenPrice")
                .HasColumnType("numeric");

                b.Property <decimal>("Balance")
                .HasColumnType("numeric");

                b.Property <decimal>("BuyAmount")
                .HasColumnType("numeric");

                b.Property <string>("BuyAssetId")
                .HasMaxLength(64)
                .HasColumnType("character varying(64)");

                b.Property <string>("CardLast4")
                .HasColumnType("text");

                b.Property <string>("Comment")
                .HasMaxLength(2048)
                .HasColumnType("character varying(2048)");

                b.Property <decimal>("DepositAmount")
                .HasColumnType("numeric");

                b.Property <decimal>("FeeAmount")
                .HasColumnType("numeric");

                b.Property <string>("FeeAssetId")
                .HasMaxLength(64)
                .HasColumnType("character varying(64)");

                b.Property <string>("FromAddress")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("FromPhoneNumber")
                .HasColumnType("text");

                b.Property <string>("Integration")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <bool>("IsInternal")
                .HasColumnType("boolean");

                b.Property <string>("Network")
                .HasColumnType("text");

                b.Property <int>("OperationType")
                .HasColumnType("integer");

                b.Property <decimal>("SellAmount")
                .HasColumnType("numeric");

                b.Property <string>("SellAssetId")
                .HasMaxLength(64)
                .HasColumnType("character varying(64)");

                b.Property <string>("SenderName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <int>("Status")
                .HasColumnType("integer");

                b.Property <DateTime>("TimeStamp")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("ToAddress")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("ToPhoneNumber")
                .HasColumnType("text");

                b.Property <string>("TxId")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <decimal>("WithdrawalAmount")
                .HasColumnType("numeric");

                b.Property <string>("WithdrawalAssetId")
                .HasMaxLength(64)
                .HasColumnType("character varying(64)");

                b.HasKey("OperationId", "WalletId", "AssetId");

                b.HasIndex("OperationId");

                b.HasIndex("WalletId");

                b.HasIndex("WalletId", "TimeStamp");

                b.HasIndex("WalletId", "AssetId", "TimeStamp");

                b.ToTable("operation_history", "balancehistory");
            });

            modelBuilder.Entity("Service.ChangeBalanceGateway.Grpc.Models.ManualChangeBalanceMessage", b =>
            {
                b.Property <string>("TransactionId")
                .HasColumnType("text");

                b.Property <decimal>("Amount")
                .HasColumnType("numeric");

                b.Property <string>("AssetSymbol")
                .HasColumnType("text");

                b.Property <string>("BrokerId")
                .HasColumnType("text");

                b.Property <string>("ClientId")
                .HasColumnType("text");

                b.Property <string>("Comment")
                .HasColumnType("text");

                b.Property <string>("Officer")
                .HasColumnType("text");

                b.Property <DateTime>("TimeStamp")
                .HasColumnType("timestamp with time zone");

                b.Property <int>("Type")
                .HasColumnType("integer");

                b.Property <string>("WalletId")
                .HasColumnType("text");

                b.HasKey("TransactionId");

                b.ToTable("manual_change_audit", "balancehistory");
            });
#pragma warning restore 612, 618
        }
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasDefaultSchema("kyc")
            .HasAnnotation("ProductVersion", "6.0.1")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("Service.KYC.Domain.Models.CountryModel", b =>
            {
                b.Property <string>("CountryCode")
                .HasColumnType("text");

                b.Property <List <DocumentType> >("AcceptedDocuments")
                .HasColumnType("jsonb");

                b.Property <string>("CountryName")
                .HasColumnType("text");

                b.Property <bool>("IsBlocked")
                .HasColumnType("boolean");

                b.HasKey("CountryCode");

                b.ToTable("countries", "kyc");
            });

            modelBuilder.Entity("Service.KYC.Domain.Models.KycAuditLog", b =>
            {
                b.Property <int>("LogId")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("LogId"));

                b.Property <string>("Agent")
                .HasColumnType("text");

                b.Property <string>("ApplicantId")
                .HasColumnType("text");

                b.Property <string>("ClientId")
                .HasColumnType("text");

                b.Property <string>("Comment")
                .HasColumnType("text");

                b.Property <string>("DeclineReason")
                .HasColumnType("text");

                b.Property <int>("DepositStatus")
                .HasColumnType("integer");

                b.Property <string>("DocumentId")
                .HasColumnType("text");

                b.Property <int>("DocumentType")
                .HasColumnType("integer");

                b.Property <string>("FileId1")
                .HasColumnType("text");

                b.Property <string>("FileId2")
                .HasColumnType("text");

                b.Property <int>("KycLevel")
                .HasColumnType("integer");

                b.Property <DateTime>("LogTimeStamp")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Operation")
                .HasColumnType("text");

                b.Property <int>("TradeStatus")
                .HasColumnType("integer");

                b.Property <string>("Type")
                .HasColumnType("text");

                b.Property <bool>("Verified")
                .HasColumnType("boolean");

                b.Property <int>("WithdrawalStatus")
                .HasColumnType("integer");

                b.HasKey("LogId");

                b.ToTable("auditlogs", "kyc");
            });

            modelBuilder.Entity("Service.KYC.Domain.Models.KycDocument", b =>
            {
                b.Property <string>("DocumentId")
                .HasColumnType("text");

                b.Property <string>("ClientId")
                .HasColumnType("character varying(128)");

                b.Property <string>("DeclineReason")
                .HasColumnType("text");

                b.Property <string>("FileId1")
                .HasColumnType("text");

                b.Property <string>("FileId2")
                .HasColumnType("text");

                b.Property <int>("Type")
                .HasColumnType("integer");

                b.Property <bool>("Verified")
                .HasColumnType("boolean");

                b.HasKey("DocumentId");

                b.HasIndex("ClientId");

                b.ToTable("kycdocuments", "kyc");
            });

            modelBuilder.Entity("Service.KYC.Domain.Models.KycProfile", b =>
            {
                b.Property <string>("ClientId")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("ActiveVerificationId")
                .HasColumnType("text");

                b.Property <string>("ApplicantId")
                .HasColumnType("text");

                b.Property <string>("BlockingReason")
                .HasColumnType("text");

                b.Property <string>("Country")
                .HasColumnType("text");

                b.Property <int>("DepositStatus")
                .HasColumnType("integer");

                b.Property <int>("KycLevel")
                .HasColumnType("integer");

                b.Property <bool>("Pep")
                .HasColumnType("boolean");

                b.Property <bool>("PhoneVerified")
                .HasColumnType("boolean");

                b.Property <int[]>("RequiredVerifications")
                .HasColumnType("integer[]");

                b.Property <int>("TradeStatus")
                .HasColumnType("integer");

                b.Property <int>("WithdrawalStatus")
                .HasColumnType("integer");

                b.HasKey("ClientId");

                b.HasIndex("ApplicantId");

                b.HasIndex("KycLevel");

                b.ToTable("kycprofiles", "kyc");
            });

            modelBuilder.Entity("Service.KYC.Domain.Models.Verification", b =>
            {
                b.Property <string>("VerificationId")
                .HasColumnType("text");

                b.Property <string>("ClientId")
                .HasColumnType("text");

                b.Property <Dictionary <string, VerificationResult> >("DocumentResults")
                .HasColumnType("jsonb");

                b.Property <DateTime>("StartingTime")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Status")
                .HasColumnType("text");

                b.Property <string>("VerificationTypes")
                .HasColumnType("text");

                b.Property <bool>("Verified")
                .HasColumnType("boolean");

                b.HasKey("VerificationId");

                b.ToTable("verifications", "kyc");
            });

            modelBuilder.Entity("Service.KYC.Domain.Models.KycDocument", b =>
            {
                b.HasOne("Service.KYC.Domain.Models.KycProfile", "Profile")
                .WithMany("Documents")
                .HasForeignKey("ClientId");

                b.Navigation("Profile");
            });

            modelBuilder.Entity("Service.KYC.Domain.Models.KycProfile", b =>
            {
                b.Navigation("Documents");
            });
#pragma warning restore 612, 618
        }
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasAnnotation("ProductVersion", "6.0.0")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("TypingRealm.Data.Infrastructure.DataAccess.Entities.KeyPressEvent", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint")
                .HasColumnName("id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <decimal>("AbsoluteDelay")
                .HasColumnType("numeric")
                .HasColumnName("absolute_delay");

                b.Property <int>("Index")
                .HasColumnType("integer")
                .HasColumnName("index");

                b.Property <string>("Key")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("key");

                b.Property <int>("KeyAction")
                .HasColumnType("integer")
                .HasColumnName("key_action");

                b.Property <int>("Order")
                .HasColumnType("integer")
                .HasColumnName("order");

                b.Property <string>("TextTypingResultId")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("text_typing_result_id");

                b.HasKey("Id")
                .HasName("pk_key_press_event");

                b.HasIndex("Order")
                .HasDatabaseName("ix_key_press_event_order");

                b.HasIndex("TextTypingResultId")
                .HasDatabaseName("ix_key_press_event_text_typing_result_id");

                b.ToTable("key_press_event", (string)null);
            });

            modelBuilder.Entity("TypingRealm.Data.Infrastructure.DataAccess.Entities.Text", b =>
            {
                b.Property <string>("Id")
                .HasColumnType("text")
                .HasColumnName("id");

                b.Property <string>("CreatedByUser")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("created_by_user");

                b.Property <DateTime>("CreatedUtc")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("created_utc");

                b.Property <int?>("GenerationLength")
                .HasColumnType("integer")
                .HasColumnName("generation_length");

                b.Property <string>("GenerationShouldContain")
                .HasColumnType("text")
                .HasColumnName("generation_should_contain");

                b.Property <bool>("IsArchived")
                .HasColumnType("boolean")
                .HasColumnName("is_archived");

                b.Property <bool>("IsPublic")
                .HasColumnType("boolean")
                .HasColumnName("is_public");

                b.Property <string>("Language")
                .IsRequired()
                .HasMaxLength(20)
                .HasColumnType("character varying(20)")
                .HasColumnName("language");

                b.Property <int?>("TextGenerationType")
                .HasColumnType("integer")
                .HasColumnName("text_generation_type");

                b.Property <int>("TextType")
                .HasColumnType("integer")
                .HasColumnName("text_type");

                b.Property <string>("Value")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("value");

                b.HasKey("Id")
                .HasName("pk_text");

                b.HasIndex("CreatedByUser")
                .HasDatabaseName("ix_text_created_by_user");

                b.HasIndex("CreatedUtc")
                .HasDatabaseName("ix_text_created_utc");

                b.HasIndex("IsArchived")
                .HasDatabaseName("ix_text_is_archived");

                b.HasIndex("IsPublic")
                .HasDatabaseName("ix_text_is_public");

                b.HasIndex("Language")
                .HasDatabaseName("ix_text_language");

                b.ToTable("text", (string)null);
            });

            modelBuilder.Entity("TypingRealm.Data.Infrastructure.DataAccess.Entities.TextTypingResult", b =>
            {
                b.Property <string>("Id")
                .HasColumnType("text")
                .HasColumnName("id");

                b.Property <DateTime>("StartedTypingUtc")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("started_typing_utc");

                b.Property <DateTime>("SubmittedResultsUtc")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("submitted_results_utc");

                b.Property <int>("TypingSessionTextIndex")
                .HasColumnType("integer")
                .HasColumnName("typing_session_text_index");

                b.Property <string>("UserSessionId")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("user_session_id");

                b.HasKey("Id")
                .HasName("pk_text_typing_result");

                b.HasIndex("StartedTypingUtc")
                .HasDatabaseName("ix_text_typing_result_started_typing_utc");

                b.HasIndex("SubmittedResultsUtc")
                .HasDatabaseName("ix_text_typing_result_submitted_results_utc");

                b.HasIndex("TypingSessionTextIndex")
                .HasDatabaseName("ix_text_typing_result_typing_session_text_index");

                b.HasIndex("UserSessionId")
                .HasDatabaseName("ix_text_typing_result_user_session_id");

                b.ToTable("text_typing_result", (string)null);
            });

            modelBuilder.Entity("TypingRealm.Data.Infrastructure.DataAccess.Entities.TypingSession", b =>
            {
                b.Property <string>("Id")
                .HasColumnType("text")
                .HasColumnName("id");

                b.Property <string>("CreatedByUser")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("created_by_user");

                b.Property <DateTime>("CreatedUtc")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("created_utc");

                b.HasKey("Id")
                .HasName("pk_typing_session");

                b.HasIndex("CreatedByUser")
                .HasDatabaseName("ix_typing_session_created_by_user");

                b.HasIndex("CreatedUtc")
                .HasDatabaseName("ix_typing_session_created_utc");

                b.ToTable("typing_session", (string)null);
            });

            modelBuilder.Entity("TypingRealm.Data.Infrastructure.DataAccess.Entities.TypingSessionText", b =>
            {
                b.Property <long>("RowId")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint")
                .HasColumnName("row_id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("RowId"));

                b.Property <int>("IndexInTypingSession")
                .HasColumnType("integer")
                .HasColumnName("index_in_typing_session");

                b.Property <string>("TextId")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("text_id");

                b.Property <string>("TypingSessionId")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("typing_session_id");

                b.Property <string>("Value")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("value");

                b.HasKey("RowId")
                .HasName("pk_typing_session_text");

                b.HasIndex("TextId")
                .HasDatabaseName("ix_typing_session_text_text_id");

                b.HasIndex("TypingSessionId")
                .HasDatabaseName("ix_typing_session_text_typing_session_id");

                b.HasIndex("IndexInTypingSession", "TypingSessionId")
                .IsUnique()
                .HasDatabaseName("ix_typing_session_text_index_in_typing_session_typing_session_");

                b.ToTable("typing_session_text", (string)null);
            });

            modelBuilder.Entity("TypingRealm.Data.Infrastructure.DataAccess.Entities.UserSession", b =>
            {
                b.Property <string>("Id")
                .HasColumnType("text")
                .HasColumnName("id");

                b.Property <DateTime>("CreatedUtc")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("created_utc");

                b.Property <string>("TypingSessionId")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("typing_session_id");

                b.Property <string>("UserId")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("user_id");

                b.Property <int>("UserTimeZoneOffsetMinutes")
                .HasColumnType("integer")
                .HasColumnName("user_time_zone_offset_minutes");

                b.HasKey("Id")
                .HasName("pk_user_session");

                b.HasIndex("TypingSessionId")
                .HasDatabaseName("ix_user_session_typing_session_id");

                b.HasIndex("UserId")
                .HasDatabaseName("ix_user_session_user_id");

                b.HasIndex("CreatedUtc", "UserTimeZoneOffsetMinutes")
                .HasDatabaseName("ix_user_session_created_utc_user_time_zone_offset_minutes");

                b.ToTable("user_session", (string)null);
            });

            modelBuilder.Entity("TypingRealm.Data.Infrastructure.DataAccess.Entities.KeyPressEvent", b =>
            {
                b.HasOne("TypingRealm.Data.Infrastructure.DataAccess.Entities.TextTypingResult", "TextTypingResult")
                .WithMany("Events")
                .HasForeignKey("TextTypingResultId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_key_press_event_text_typing_result_text_typing_result_id");

                b.Navigation("TextTypingResult");
            });

            modelBuilder.Entity("TypingRealm.Data.Infrastructure.DataAccess.Entities.TextTypingResult", b =>
            {
                b.HasOne("TypingRealm.Data.Infrastructure.DataAccess.Entities.UserSession", "UserSession")
                .WithMany("TextTypingResults")
                .HasForeignKey("UserSessionId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_text_typing_result_user_session_user_session_id");

                b.Navigation("UserSession");
            });

            modelBuilder.Entity("TypingRealm.Data.Infrastructure.DataAccess.Entities.TypingSessionText", b =>
            {
                b.HasOne("TypingRealm.Data.Infrastructure.DataAccess.Entities.Text", "Text")
                .WithMany()
                .HasForeignKey("TextId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_typing_session_text_text_text_id");

                b.HasOne("TypingRealm.Data.Infrastructure.DataAccess.Entities.TypingSession", "TypingSession")
                .WithMany("Texts")
                .HasForeignKey("TypingSessionId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_typing_session_text_typing_session_typing_session_id");

                b.Navigation("Text");

                b.Navigation("TypingSession");
            });

            modelBuilder.Entity("TypingRealm.Data.Infrastructure.DataAccess.Entities.UserSession", b =>
            {
                b.HasOne("TypingRealm.Data.Infrastructure.DataAccess.Entities.TypingSession", "TypingSession")
                .WithMany()
                .HasForeignKey("TypingSessionId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_user_session_typing_session_typing_session_id");

                b.Navigation("TypingSession");
            });

            modelBuilder.Entity("TypingRealm.Data.Infrastructure.DataAccess.Entities.TextTypingResult", b =>
            {
                b.Navigation("Events");
            });

            modelBuilder.Entity("TypingRealm.Data.Infrastructure.DataAccess.Entities.TypingSession", b =>
            {
                b.Navigation("Texts");
            });

            modelBuilder.Entity("TypingRealm.Data.Infrastructure.DataAccess.Entities.UserSession", b =>
            {
                b.Navigation("TextTypingResults");
            });
#pragma warning restore 612, 618
        }
Esempio n. 24
0
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasAnnotation("ProductVersion", "6.0.3")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("EMSApp.Core.Entities.Action", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <Guid?>("CreatedBy")
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <DateTime?>("ModifedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid?>("ModifiedBy")
                .HasColumnType("uuid");

                b.Property <string>("Name")
                .HasColumnType("text");

                b.Property <int>("PageId")
                .HasColumnType("integer");

                b.Property <string>("Url")
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("PageId");

                b.ToTable("Action");

                b.HasData(
                    new
                {
                    Id        = 7,
                    CreatedOn = new DateTime(2022, 3, 30, 22, 58, 25, 777, DateTimeKind.Local).AddTicks(6365),
                    Name      = "view",
                    PageId    = 1
                },
                    new
                {
                    Id        = 1,
                    CreatedOn = new DateTime(2022, 3, 30, 22, 58, 25, 777, DateTimeKind.Local).AddTicks(6367),
                    Name      = "create",
                    PageId    = 2,
                    Url       = "create"
                },
                    new
                {
                    Id        = 2,
                    CreatedOn = new DateTime(2022, 3, 30, 22, 58, 25, 777, DateTimeKind.Local).AddTicks(6369),
                    Name      = "edit",
                    PageId    = 2,
                    Url       = "edit"
                },
                    new
                {
                    Id        = 3,
                    CreatedOn = new DateTime(2022, 3, 30, 22, 58, 25, 777, DateTimeKind.Local).AddTicks(6372),
                    Name      = "delete",
                    PageId    = 2
                },
                    new
                {
                    Id        = 4,
                    CreatedOn = new DateTime(2022, 3, 30, 22, 58, 25, 777, DateTimeKind.Local).AddTicks(6373),
                    Name      = "create",
                    PageId    = 3,
                    Url       = "create"
                },
                    new
                {
                    Id        = 5,
                    CreatedOn = new DateTime(2022, 3, 30, 22, 58, 25, 777, DateTimeKind.Local).AddTicks(6375),
                    Name      = "edit",
                    PageId    = 3,
                    Url       = "edit"
                },
                    new
                {
                    Id        = 6,
                    CreatedOn = new DateTime(2022, 3, 30, 22, 58, 25, 777, DateTimeKind.Local).AddTicks(6377),
                    Name      = "delete",
                    PageId    = 3
                });
            });

            modelBuilder.Entity("EMSApp.Core.Entities.ApplicationRole", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <string>("ConcurrencyStamp")
                .IsConcurrencyToken()
                .HasColumnType("text");

                b.Property <Guid?>("CreatedBy")
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <DateTime?>("ModifedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid?>("ModifiedBy")
                .HasColumnType("uuid");

                b.Property <string>("Name")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("NormalizedName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <Guid>("TenantId")
                .HasColumnType("uuid");

                b.HasKey("Id");

                b.HasIndex("NormalizedName")
                .HasDatabaseName("RoleNameIndex");

                b.HasIndex("TenantId");

                b.ToTable("AspNetRoles", (string)null);
            });

            modelBuilder.Entity("EMSApp.Core.Entities.ApplicationRoleAction", b =>
            {
                b.Property <Guid>("ApplicationRoleId")
                .HasColumnType("uuid");

                b.Property <int>("ActionId")
                .HasColumnType("integer");

                b.Property <Guid?>("CreatedBy")
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <DateTime?>("ModifedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid?>("ModifiedBy")
                .HasColumnType("uuid");

                b.HasKey("ApplicationRoleId", "ActionId");

                b.HasIndex("ActionId");

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

            modelBuilder.Entity("EMSApp.Core.Entities.ApplicationUser", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <int>("AccessFailedCount")
                .HasColumnType("integer");

                b.Property <string>("ConcurrencyStamp")
                .IsConcurrencyToken()
                .HasColumnType("text");

                b.Property <Guid?>("CreatedBy")
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Email")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <bool>("EmailConfirmed")
                .HasColumnType("boolean");

                b.Property <string>("Fullname")
                .HasColumnType("text");

                b.Property <bool>("LockoutEnabled")
                .HasColumnType("boolean");

                b.Property <DateTimeOffset?>("LockoutEnd")
                .HasColumnType("timestamp with time zone");

                b.Property <DateTime?>("ModifedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid?>("ModifiedBy")
                .HasColumnType("uuid");

                b.Property <string>("NormalizedEmail")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("NormalizedUserName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("PasswordHash")
                .HasColumnType("text");

                b.Property <string>("PhoneNumber")
                .HasColumnType("text");

                b.Property <bool>("PhoneNumberConfirmed")
                .HasColumnType("boolean");

                b.Property <string>("SecurityStamp")
                .HasColumnType("text");

                b.Property <Guid>("TenantId")
                .HasColumnType("uuid");

                b.Property <bool>("TwoFactorEnabled")
                .HasColumnType("boolean");

                b.Property <string>("UserName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.HasKey("Id");

                b.HasIndex("NormalizedEmail")
                .HasDatabaseName("EmailIndex");

                b.HasIndex("NormalizedUserName")
                .IsUnique()
                .HasDatabaseName("UserNameIndex");

                b.HasIndex("TenantId");

                b.ToTable("AspNetUsers", (string)null);
            });

            modelBuilder.Entity("EMSApp.Core.Entities.Licence", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <Guid?>("CreatedBy")
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <int>("LicenceType")
                .HasColumnType("integer");

                b.Property <DateTime?>("ModifedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid?>("ModifiedBy")
                .HasColumnType("uuid");

                b.HasKey("Id");

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

            modelBuilder.Entity("EMSApp.Core.Entities.LicenceModule", b =>
            {
                b.Property <Guid>("LicenceId")
                .HasColumnType("uuid");

                b.Property <int>("ModuleId")
                .HasColumnType("integer");

                b.Property <Guid?>("CreatedBy")
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <DateTime?>("ModifedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid?>("ModifiedBy")
                .HasColumnType("uuid");

                b.HasKey("LicenceId", "ModuleId");

                b.HasIndex("ModuleId");

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

            modelBuilder.Entity("EMSApp.Core.Entities.Module", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <Guid?>("CreatedBy")
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <DateTime?>("ModifedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid?>("ModifiedBy")
                .HasColumnType("uuid");

                b.Property <string>("Name")
                .HasColumnType("text");

                b.HasKey("Id");

                b.ToTable("Module");

                b.HasData(
                    new
                {
                    Id        = 1,
                    CreatedOn = new DateTime(2022, 3, 30, 22, 58, 25, 777, DateTimeKind.Local).AddTicks(6193),
                    Name      = "Dashboard"
                },
                    new
                {
                    Id        = 2,
                    CreatedOn = new DateTime(2022, 3, 30, 22, 58, 25, 777, DateTimeKind.Local).AddTicks(6196),
                    Name      = "Fair"
                },
                    new
                {
                    Id        = 3,
                    CreatedOn = new DateTime(2022, 3, 30, 22, 58, 25, 777, DateTimeKind.Local).AddTicks(6198),
                    Name      = "Firm"
                });
            });

            modelBuilder.Entity("EMSApp.Core.Entities.Page", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("Component")
                .HasColumnType("text");

                b.Property <Guid?>("CreatedBy")
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("FileUrl")
                .HasColumnType("text");

                b.Property <string>("Icon")
                .HasColumnType("text");

                b.Property <DateTime?>("ModifedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid?>("ModifiedBy")
                .HasColumnType("uuid");

                b.Property <int>("ModuleId")
                .HasColumnType("integer");

                b.Property <string>("Name")
                .HasColumnType("text");

                b.Property <string>("Type")
                .HasColumnType("text");

                b.Property <string>("Url")
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("ModuleId");

                b.ToTable("Page");

                b.HasData(
                    new
                {
                    Id        = 1,
                    Component = "dashboard",
                    CreatedOn = new DateTime(2022, 3, 30, 22, 58, 25, 777, DateTimeKind.Local).AddTicks(6342),
                    FileUrl   = "./views/dashboard/analytics/AnalyticsDashboard",
                    Icon      = "Home",
                    ModuleId  = 1,
                    Name      = "view",
                    Url       = "dashboard"
                },
                    new
                {
                    Id        = 2,
                    Component = "fair",
                    CreatedOn = new DateTime(2022, 3, 30, 22, 58, 25, 777, DateTimeKind.Local).AddTicks(6346),
                    FileUrl   = "./views/fair/Fairs",
                    Icon      = "Layout",
                    ModuleId  = 2,
                    Name      = "list",
                    Url       = "fair"
                },
                    new
                {
                    Id        = 3,
                    Component = "firm",
                    CreatedOn = new DateTime(2022, 3, 30, 22, 58, 25, 777, DateTimeKind.Local).AddTicks(6348),
                    FileUrl   = "./views/fair/Firms",
                    Icon      = "Briefcase",
                    ModuleId  = 3,
                    Name      = "list",
                    Url       = "firm"
                });
            });

            modelBuilder.Entity("EMSApp.Core.Entities.RefreshToken", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <Guid>("ApplicationUserId")
                .HasColumnType("uuid");

                b.Property <Guid?>("CreatedBy")
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <DateTime>("ExpiresOn")
                .HasColumnType("timestamp with time zone");

                b.Property <bool>("Invalidated")
                .HasColumnType("boolean");

                b.Property <string>("JwtId")
                .HasColumnType("text");

                b.Property <DateTime?>("ModifedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid?>("ModifiedBy")
                .HasColumnType("uuid");

                b.Property <string>("RemoteIpAddress")
                .HasColumnType("text");

                b.Property <string>("Token")
                .HasColumnType("text");

                b.Property <bool>("Used")
                .HasColumnType("boolean");

                b.HasKey("Id");

                b.HasIndex("ApplicationUserId");

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

            modelBuilder.Entity("EMSApp.Core.Entities.Tenant", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <string>("AppName")
                .HasColumnType("text");

                b.Property <string>("ConnectionString")
                .HasColumnType("text");

                b.Property <Guid?>("CreatedBy")
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Host")
                .HasColumnType("text");

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

                b.Property <DateTime?>("ModifedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid?>("ModifiedBy")
                .HasColumnType("uuid");

                b.Property <bool>("ResourcesCreated")
                .HasColumnType("boolean");

                b.Property <Guid>("TenantSettingId")
                .HasColumnType("uuid");

                b.HasKey("Id");

                b.HasIndex("TenantSettingId");

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

            modelBuilder.Entity("EMSApp.Core.Entities.TenantContact", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <Guid?>("CreatedBy")
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Email")
                .HasColumnType("text");

                b.Property <bool>("EmailConfirmed")
                .HasColumnType("boolean");

                b.Property <DateTime?>("ModifedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid?>("ModifiedBy")
                .HasColumnType("uuid");

                b.Property <string>("Name")
                .HasColumnType("text");

                b.Property <string>("PasswordHash")
                .HasColumnType("text");

                b.Property <string>("Surname")
                .HasColumnType("text");

                b.Property <Guid>("TenantId")
                .HasColumnType("uuid");

                b.HasKey("Id");

                b.HasIndex("TenantId");

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

            modelBuilder.Entity("EMSApp.Core.Entities.TenantContactToken", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <Guid?>("CreatedBy")
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <DateTime?>("ModifedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid?>("ModifiedBy")
                .HasColumnType("uuid");

                b.Property <string>("Name")
                .HasColumnType("text");

                b.Property <Guid>("TenantContactId")
                .HasColumnType("uuid");

                b.Property <bool>("Valid")
                .HasColumnType("boolean");

                b.Property <string>("Value")
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("TenantContactId");

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

            modelBuilder.Entity("EMSApp.Core.Entities.TenantLicence", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <Guid?>("CreatedBy")
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <bool>("IsActive")
                .HasColumnType("boolean");

                b.Property <DateTime>("LicenceEndDate")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid>("LicenceId")
                .HasColumnType("uuid");

                b.Property <DateTime>("LicenceStartDate")
                .HasColumnType("timestamp with time zone");

                b.Property <DateTime?>("ModifedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid?>("ModifiedBy")
                .HasColumnType("uuid");

                b.Property <Guid>("TenantId")
                .HasColumnType("uuid");

                b.HasKey("Id");

                b.HasIndex("LicenceId");

                b.HasIndex("TenantId");

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

            modelBuilder.Entity("EMSApp.Core.Entities.TenantSetting", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <Guid?>("CreatedBy")
                .HasColumnType("uuid");

                b.Property <DateTime>("CreatedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Currency")
                .HasColumnType("text");

                b.Property <string>("DatetimeZone")
                .HasColumnType("text");

                b.Property <string>("FloatingPointChar")
                .HasColumnType("text");

                b.Property <string>("Language")
                .HasColumnType("text");

                b.Property <DateTime?>("ModifedOn")
                .HasColumnType("timestamp with time zone");

                b.Property <Guid?>("ModifiedBy")
                .HasColumnType("uuid");

                b.Property <string>("ThousandSeperatorChar")
                .HasColumnType("text");

                b.HasKey("Id");

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

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<System.Guid>", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("ClaimType")
                .HasColumnType("text");

                b.Property <string>("ClaimValue")
                .HasColumnType("text");

                b.Property <Guid>("RoleId")
                .HasColumnType("uuid");

                b.HasKey("Id");

                b.HasIndex("RoleId");

                b.ToTable("AspNetRoleClaims", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<System.Guid>", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("ClaimType")
                .HasColumnType("text");

                b.Property <string>("ClaimValue")
                .HasColumnType("text");

                b.Property <Guid>("UserId")
                .HasColumnType("uuid");

                b.HasKey("Id");

                b.HasIndex("UserId");

                b.ToTable("AspNetUserClaims", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<System.Guid>", b =>
            {
                b.Property <string>("LoginProvider")
                .HasColumnType("text");

                b.Property <string>("ProviderKey")
                .HasColumnType("text");

                b.Property <string>("ProviderDisplayName")
                .HasColumnType("text");

                b.Property <Guid>("UserId")
                .HasColumnType("uuid");

                b.HasKey("LoginProvider", "ProviderKey");

                b.HasIndex("UserId");

                b.ToTable("AspNetUserLogins", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<System.Guid>", b =>
            {
                b.Property <Guid>("UserId")
                .HasColumnType("uuid");

                b.Property <Guid>("RoleId")
                .HasColumnType("uuid");

                b.HasKey("UserId", "RoleId");

                b.HasIndex("RoleId");

                b.ToTable("AspNetUserRoles", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<System.Guid>", b =>
            {
                b.Property <Guid>("UserId")
                .HasColumnType("uuid");

                b.Property <string>("LoginProvider")
                .HasColumnType("text");

                b.Property <string>("Name")
                .HasColumnType("text");

                b.Property <string>("Value")
                .HasColumnType("text");

                b.HasKey("UserId", "LoginProvider", "Name");

                b.ToTable("AspNetUserTokens", (string)null);
            });

            modelBuilder.Entity("EMSApp.Core.Entities.Action", b =>
            {
                b.HasOne("EMSApp.Core.Entities.Page", "Page")
                .WithMany("Actions")
                .HasForeignKey("PageId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Page");
            });

            modelBuilder.Entity("EMSApp.Core.Entities.ApplicationRole", b =>
            {
                b.HasOne("EMSApp.Core.Entities.Tenant", "Tenant")
                .WithMany()
                .HasForeignKey("TenantId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Tenant");
            });

            modelBuilder.Entity("EMSApp.Core.Entities.ApplicationRoleAction", b =>
            {
                b.HasOne("EMSApp.Core.Entities.Action", "Action")
                .WithMany("AppRoleActions")
                .HasForeignKey("ActionId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("EMSApp.Core.Entities.ApplicationRole", "ApplicationRole")
                .WithMany("AppRoleActions")
                .HasForeignKey("ApplicationRoleId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Action");

                b.Navigation("ApplicationRole");
            });

            modelBuilder.Entity("EMSApp.Core.Entities.ApplicationUser", b =>
            {
                b.HasOne("EMSApp.Core.Entities.Tenant", "Tenant")
                .WithMany()
                .HasForeignKey("TenantId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Tenant");
            });

            modelBuilder.Entity("EMSApp.Core.Entities.LicenceModule", b =>
            {
                b.HasOne("EMSApp.Core.Entities.Licence", "Licence")
                .WithMany("LicenceModules")
                .HasForeignKey("LicenceId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("EMSApp.Core.Entities.Module", "Module")
                .WithMany("LicenceModules")
                .HasForeignKey("ModuleId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Licence");

                b.Navigation("Module");
            });

            modelBuilder.Entity("EMSApp.Core.Entities.Page", b =>
            {
                b.HasOne("EMSApp.Core.Entities.Module", "Module")
                .WithMany("Pages")
                .HasForeignKey("ModuleId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Module");
            });

            modelBuilder.Entity("EMSApp.Core.Entities.RefreshToken", b =>
            {
                b.HasOne("EMSApp.Core.Entities.ApplicationUser", "ApplicationUser")
                .WithMany()
                .HasForeignKey("ApplicationUserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("ApplicationUser");
            });

            modelBuilder.Entity("EMSApp.Core.Entities.Tenant", b =>
            {
                b.HasOne("EMSApp.Core.Entities.TenantSetting", "TenantSetting")
                .WithMany()
                .HasForeignKey("TenantSettingId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("TenantSetting");
            });

            modelBuilder.Entity("EMSApp.Core.Entities.TenantContact", b =>
            {
                b.HasOne("EMSApp.Core.Entities.Tenant", "Tenant")
                .WithMany("Responsibles")
                .HasForeignKey("TenantId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Tenant");
            });

            modelBuilder.Entity("EMSApp.Core.Entities.TenantContactToken", b =>
            {
                b.HasOne("EMSApp.Core.Entities.TenantContact", "TenantContact")
                .WithMany("Tokens")
                .HasForeignKey("TenantContactId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("TenantContact");
            });

            modelBuilder.Entity("EMSApp.Core.Entities.TenantLicence", b =>
            {
                b.HasOne("EMSApp.Core.Entities.Licence", "Licence")
                .WithMany()
                .HasForeignKey("LicenceId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("EMSApp.Core.Entities.Tenant", "Tenant")
                .WithMany("Licences")
                .HasForeignKey("TenantId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Licence");

                b.Navigation("Tenant");
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<System.Guid>", b =>
            {
                b.HasOne("EMSApp.Core.Entities.ApplicationRole", null)
                .WithMany()
                .HasForeignKey("RoleId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<System.Guid>", b =>
            {
                b.HasOne("EMSApp.Core.Entities.ApplicationUser", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<System.Guid>", b =>
            {
                b.HasOne("EMSApp.Core.Entities.ApplicationUser", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<System.Guid>", b =>
            {
                b.HasOne("EMSApp.Core.Entities.ApplicationRole", null)
                .WithMany()
                .HasForeignKey("RoleId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("EMSApp.Core.Entities.ApplicationUser", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<System.Guid>", b =>
            {
                b.HasOne("EMSApp.Core.Entities.ApplicationUser", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("EMSApp.Core.Entities.Action", b =>
            {
                b.Navigation("AppRoleActions");
            });

            modelBuilder.Entity("EMSApp.Core.Entities.ApplicationRole", b =>
            {
                b.Navigation("AppRoleActions");
            });

            modelBuilder.Entity("EMSApp.Core.Entities.Licence", b =>
            {
                b.Navigation("LicenceModules");
            });

            modelBuilder.Entity("EMSApp.Core.Entities.Module", b =>
            {
                b.Navigation("LicenceModules");

                b.Navigation("Pages");
            });

            modelBuilder.Entity("EMSApp.Core.Entities.Page", b =>
            {
                b.Navigation("Actions");
            });

            modelBuilder.Entity("EMSApp.Core.Entities.Tenant", b =>
            {
                b.Navigation("Licences");

                b.Navigation("Responsibles");
            });

            modelBuilder.Entity("EMSApp.Core.Entities.TenantContact", b =>
            {
                b.Navigation("Tokens");
            });
#pragma warning restore 612, 618
        }
        protected override void BuildModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasAnnotation("ProductVersion", "6.0.1")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("FileIncident", b =>
            {
                b.Property <int>("FilesId")
                .HasColumnType("integer");

                b.Property <int>("IncidentsId")
                .HasColumnType("integer");

                b.HasKey("FilesId", "IncidentsId");

                b.HasIndex("IncidentsId");

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

            modelBuilder.Entity("FileIncidentMessage", b =>
            {
                b.Property <int>("AttachmentsId")
                .HasColumnType("integer");

                b.Property <int>("IncidentMessagesId")
                .HasColumnType("integer");

                b.HasKey("AttachmentsId", "IncidentMessagesId");

                b.HasIndex("IncidentMessagesId");

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

            modelBuilder.Entity("FileMaintenance", b =>
            {
                b.Property <int>("AttachmentsId")
                .HasColumnType("integer");

                b.Property <int>("MaintenancesId")
                .HasColumnType("integer");

                b.HasKey("AttachmentsId", "MaintenancesId");

                b.HasIndex("MaintenancesId");

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

            modelBuilder.Entity("FileMaintenanceMessage", b =>
            {
                b.Property <int>("AttachmentsId")
                .HasColumnType("integer");

                b.Property <int>("MaintenanceMessagesId")
                .HasColumnType("integer");

                b.HasKey("AttachmentsId", "MaintenanceMessagesId");

                b.HasIndex("MaintenanceMessagesId");

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

            modelBuilder.Entity("MaintenanceService", b =>
            {
                b.Property <int>("MaintenanceId")
                .HasColumnType("integer");

                b.Property <int>("ServicesId")
                .HasColumnType("integer");

                b.HasKey("MaintenanceId", "ServicesId");

                b.HasIndex("ServicesId");

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

            modelBuilder.Entity("Staat.Data.Models.File", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Hash")
                .IsRequired()
                .HasColumnType("text");

                b.Property <string>("MimeType")
                .IsRequired()
                .HasColumnType("text");

                b.Property <string>("Name")
                .IsRequired()
                .HasColumnType("text");

                b.Property <string>("Namespace")
                .IsRequired()
                .HasColumnType("text");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

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

            modelBuilder.Entity("Staat.Data.Models.Incident", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("AuthorId")
                .HasColumnType("integer");

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Description")
                .IsRequired()
                .HasColumnType("text");

                b.Property <string>("DescriptionHtml")
                .IsRequired()
                .HasColumnType("text");

                b.Property <DateTime?>("EndedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <int>("ServiceId")
                .HasColumnType("integer");

                b.Property <DateTime>("StartedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Title")
                .IsRequired()
                .HasMaxLength(100)
                .HasColumnType("character varying(100)");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

                b.HasIndex("AuthorId");

                b.HasIndex("ServiceId");

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

            modelBuilder.Entity("Staat.Data.Models.IncidentMessage", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("AuthorId")
                .HasColumnType("integer");

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <int>("IncidentId")
                .HasColumnType("integer");

                b.Property <string>("Message")
                .IsRequired()
                .HasColumnType("text");

                b.Property <string>("MessageHtml")
                .IsRequired()
                .HasColumnType("text");

                b.Property <int>("StatusId")
                .HasColumnType("integer");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

                b.HasIndex("AuthorId");

                b.HasIndex("IncidentId");

                b.HasIndex("StatusId");

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

            modelBuilder.Entity("Staat.Data.Models.Maintenance", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("AuthorId")
                .HasColumnType("integer");

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Description")
                .IsRequired()
                .HasColumnType("text");

                b.Property <string>("DescriptionHtml")
                .IsRequired()
                .HasColumnType("text");

                b.Property <DateTime?>("EndedAt")
                .IsRequired()
                .HasColumnType("timestamp with time zone");

                b.Property <DateTime>("StartedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Title")
                .IsRequired()
                .HasMaxLength(100)
                .HasColumnType("character varying(100)");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

                b.HasIndex("AuthorId");

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

            modelBuilder.Entity("Staat.Data.Models.MaintenanceMessage", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("AuthorId")
                .HasColumnType("integer");

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <int?>("MaintenanceId")
                .HasColumnType("integer");

                b.Property <string>("Message")
                .IsRequired()
                .HasColumnType("text");

                b.Property <string>("MessageHtml")
                .IsRequired()
                .HasColumnType("text");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

                b.HasIndex("AuthorId");

                b.HasIndex("MaintenanceId");

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

            modelBuilder.Entity("Staat.Data.Models.Monitor", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <int>("CurrentIncidentId")
                .HasColumnType("integer");

                b.Property <string>("Host")
                .IsRequired()
                .HasColumnType("text");

                b.Property <DateTime>("LastRunTime")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("MonitorCron")
                .IsRequired()
                .HasMaxLength(14)
                .HasColumnType("character varying(14)");

                b.Property <int>("MonitorTypeId")
                .HasColumnType("integer");

                b.Property <DateTime>("NextRunTime")
                .HasColumnType("timestamp with time zone");

                b.Property <int?>("Port")
                .HasColumnType("integer");

                b.Property <int>("ServiceId")
                .HasColumnType("integer");

                b.Property <int>("Type")
                .HasColumnType("integer");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <bool?>("ValidateSsl")
                .HasColumnType("boolean");

                b.HasKey("Id");

                b.HasIndex("CurrentIncidentId");

                b.HasIndex("ServiceId");

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

            modelBuilder.Entity("Staat.Data.Models.MonitorData", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <bool>("Available")
                .HasColumnType("boolean");

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("FailureReason")
                .IsRequired()
                .HasColumnType("text");

                b.Property <int>("MonitorId")
                .HasColumnType("integer");

                b.Property <long>("PingTime")
                .HasColumnType("bigint");

                b.Property <bool?>("SslValid")
                .HasColumnType("boolean");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

                b.HasIndex("MonitorId");

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

            modelBuilder.Entity("Staat.Data.Models.Service", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Description")
                .IsRequired()
                .HasMaxLength(255)
                .HasColumnType("character varying(255)");

                b.Property <int>("GroupId")
                .HasColumnType("integer");

                b.Property <string>("Name")
                .IsRequired()
                .HasMaxLength(100)
                .HasColumnType("character varying(100)");

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

                b.Property <int>("StatusId")
                .HasColumnType("integer");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Url")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("GroupId");

                b.HasIndex("ParentId");

                b.HasIndex("StatusId");

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

            modelBuilder.Entity("Staat.Data.Models.ServiceGroup", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Description")
                .IsRequired()
                .HasMaxLength(255)
                .HasColumnType("character varying(255)");

                b.Property <string>("Name")
                .IsRequired()
                .HasMaxLength(100)
                .HasColumnType("character varying(100)");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <int>("_DefaultOpen")
                .HasColumnType("integer")
                .HasColumnName("DefaultOpen");

                b.HasKey("Id");

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

            modelBuilder.Entity("Staat.Data.Models.Settings", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Key")
                .IsRequired()
                .HasColumnType("text");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Value")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("Key");

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

            modelBuilder.Entity("Staat.Data.Models.Status", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("Color")
                .IsRequired()
                .HasMaxLength(25)
                .HasColumnType("character varying(25)");

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Description")
                .HasColumnType("text");

                b.Property <string>("Name")
                .IsRequired()
                .HasMaxLength(100)
                .HasColumnType("character varying(100)");

                b.Property <int>("Severity")
                .HasColumnType("integer");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

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

            modelBuilder.Entity("Staat.Data.Models.Subscriber", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Email")
                .IsRequired()
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <bool>("IsVerified")
                .HasColumnType("boolean");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("VerificationString")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("Id");

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

            modelBuilder.Entity("Staat.Data.Models.Users.User", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <DateTime>("CreatedAt")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Email")
                .IsRequired()
                .HasColumnType("text");

                b.Property <string>("FirstName")
                .IsRequired()
                .HasColumnType("text");

                b.Property <string>("LastName")
                .IsRequired()
                .HasColumnType("text");

                b.Property <byte[]>("PasswordHash")
                .IsRequired()
                .HasColumnType("bytea");

                b.Property <byte[]>("PasswordSalt")
                .IsRequired()
                .HasColumnType("bytea");

                b.Property <DateTime>("UpdatedAt")
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

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

            modelBuilder.Entity("FileIncident", b =>
            {
                b.HasOne("Staat.Data.Models.File", null)
                .WithMany()
                .HasForeignKey("FilesId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("Staat.Data.Models.Incident", null)
                .WithMany()
                .HasForeignKey("IncidentsId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("FileIncidentMessage", b =>
            {
                b.HasOne("Staat.Data.Models.File", null)
                .WithMany()
                .HasForeignKey("AttachmentsId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("Staat.Data.Models.IncidentMessage", null)
                .WithMany()
                .HasForeignKey("IncidentMessagesId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("FileMaintenance", b =>
            {
                b.HasOne("Staat.Data.Models.File", null)
                .WithMany()
                .HasForeignKey("AttachmentsId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("Staat.Data.Models.Maintenance", null)
                .WithMany()
                .HasForeignKey("MaintenancesId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("FileMaintenanceMessage", b =>
            {
                b.HasOne("Staat.Data.Models.File", null)
                .WithMany()
                .HasForeignKey("AttachmentsId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("Staat.Data.Models.MaintenanceMessage", null)
                .WithMany()
                .HasForeignKey("MaintenanceMessagesId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("MaintenanceService", b =>
            {
                b.HasOne("Staat.Data.Models.Maintenance", null)
                .WithMany()
                .HasForeignKey("MaintenanceId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("Staat.Data.Models.Service", null)
                .WithMany()
                .HasForeignKey("ServicesId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Staat.Data.Models.Incident", b =>
            {
                b.HasOne("Staat.Data.Models.Users.User", "Author")
                .WithMany()
                .HasForeignKey("AuthorId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("Staat.Data.Models.Service", "Service")
                .WithMany("Incidents")
                .HasForeignKey("ServiceId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Author");

                b.Navigation("Service");
            });

            modelBuilder.Entity("Staat.Data.Models.IncidentMessage", b =>
            {
                b.HasOne("Staat.Data.Models.Users.User", "Author")
                .WithMany()
                .HasForeignKey("AuthorId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("Staat.Data.Models.Incident", "Incident")
                .WithMany("Messages")
                .HasForeignKey("IncidentId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("Staat.Data.Models.Status", "Status")
                .WithMany()
                .HasForeignKey("StatusId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Author");

                b.Navigation("Incident");

                b.Navigation("Status");
            });

            modelBuilder.Entity("Staat.Data.Models.Maintenance", b =>
            {
                b.HasOne("Staat.Data.Models.Users.User", "Author")
                .WithMany()
                .HasForeignKey("AuthorId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Author");
            });

            modelBuilder.Entity("Staat.Data.Models.MaintenanceMessage", b =>
            {
                b.HasOne("Staat.Data.Models.Users.User", "Author")
                .WithMany()
                .HasForeignKey("AuthorId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("Staat.Data.Models.Maintenance", null)
                .WithMany("Messages")
                .HasForeignKey("MaintenanceId");

                b.Navigation("Author");
            });

            modelBuilder.Entity("Staat.Data.Models.Monitor", b =>
            {
                b.HasOne("Staat.Data.Models.Incident", "CurrentIncident")
                .WithMany()
                .HasForeignKey("CurrentIncidentId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("Staat.Data.Models.Service", "Service")
                .WithMany("Monitors")
                .HasForeignKey("ServiceId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("CurrentIncident");

                b.Navigation("Service");
            });

            modelBuilder.Entity("Staat.Data.Models.MonitorData", b =>
            {
                b.HasOne("Staat.Data.Models.Monitor", "Monitor")
                .WithMany("MonitorData")
                .HasForeignKey("MonitorId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Monitor");
            });

            modelBuilder.Entity("Staat.Data.Models.Service", b =>
            {
                b.HasOne("Staat.Data.Models.ServiceGroup", "Group")
                .WithMany("Services")
                .HasForeignKey("GroupId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("Staat.Data.Models.Service", "Parent")
                .WithMany("Children")
                .HasForeignKey("ParentId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("Staat.Data.Models.Status", "Status")
                .WithMany()
                .HasForeignKey("StatusId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Group");

                b.Navigation("Parent");

                b.Navigation("Status");
            });

            modelBuilder.Entity("Staat.Data.Models.Incident", b =>
            {
                b.Navigation("Messages");
            });

            modelBuilder.Entity("Staat.Data.Models.Maintenance", b =>
            {
                b.Navigation("Messages");
            });

            modelBuilder.Entity("Staat.Data.Models.Monitor", b =>
            {
                b.Navigation("MonitorData");
            });

            modelBuilder.Entity("Staat.Data.Models.Service", b =>
            {
                b.Navigation("Children");

                b.Navigation("Incidents");

                b.Navigation("Monitors");
            });

            modelBuilder.Entity("Staat.Data.Models.ServiceGroup", b =>
            {
                b.Navigation("Services");
            });
#pragma warning restore 612, 618
        }
        protected override void BuildModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasAnnotation("ProductVersion", "6.0.3")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("InfoEducatie.Contest.Categories.CategoryEntity", b =>
            {
                b.Property <string>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("text");

                b.Property <DateTime>("Created")
                .HasColumnType("timestamp without time zone");

                b.Property <string>("Name")
                .HasColumnType("text");

                b.Property <int>("Order")
                .HasColumnType("integer");

                b.Property <bool>("Published")
                .HasColumnType("boolean");

                b.Property <bool>("ScoresX10")
                .HasColumnType("boolean");

                b.Property <string>("Slug")
                .HasColumnType("text");

                b.Property <DateTime>("Updated")
                .HasColumnType("timestamp without time zone");

                b.HasKey("Id");

                b.HasIndex("Order");

                b.HasIndex("Published");

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

                b.ToTable("Categories", (string)null);
            });

            modelBuilder.Entity("InfoEducatie.Contest.Judging.Judges.JudgeEntity", b =>
            {
                b.Property <string>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("text");

                b.Property <int>("AvailableFor")
                .HasColumnType("integer");

                b.Property <string>("CategoryId")
                .IsRequired()
                .HasColumnType("text");

                b.Property <DateTime>("Created")
                .HasColumnType("timestamp without time zone");

                b.Property <bool>("IsVicePresident")
                .HasColumnType("boolean");

                b.Property <DateTime>("Updated")
                .HasColumnType("timestamp without time zone");

                b.Property <string>("UserId")
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("CategoryId");

                b.HasIndex("UserId");

                b.ToTable("Judges", (string)null);
            });

            modelBuilder.Entity("InfoEducatie.Contest.Judging.JudgingCriteria.JudgingCriteriaSection.JudgingCriteriaSectionEntity", b =>
            {
                b.Property <string>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("text");

                b.Property <string>("CategoryId")
                .IsRequired()
                .HasColumnType("text");

                b.Property <DateTime>("Created")
                .HasColumnType("timestamp without time zone");

                b.Property <string>("Description")
                .HasColumnType("text");

                b.Property <string>("Name")
                .HasColumnType("text");

                b.Property <int>("Type")
                .HasColumnType("integer");

                b.Property <DateTime>("Updated")
                .HasColumnType("timestamp without time zone");

                b.HasKey("Id");

                b.HasIndex("CategoryId");

                b.ToTable("JudgingCriteriaSections", (string)null);
            });

            modelBuilder.Entity("InfoEducatie.Contest.Judging.JudgingCriteria.JudgingCriterionEntity", b =>
            {
                b.Property <string>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("text");

                b.Property <string>("CategoryId")
                .IsRequired()
                .HasColumnType("text");

                b.Property <DateTime>("Created")
                .HasColumnType("timestamp without time zone");

                b.Property <string>("Description")
                .HasColumnType("text");

                b.Property <int>("MaxPoints")
                .HasColumnType("integer");

                b.Property <string>("Name")
                .HasColumnType("text");

                b.Property <int>("Order")
                .HasColumnType("integer");

                b.Property <string>("SectionId")
                .IsRequired()
                .HasColumnType("text");

                b.Property <int>("Type")
                .HasColumnType("integer");

                b.Property <DateTime>("Updated")
                .HasColumnType("timestamp without time zone");

                b.HasKey("Id");

                b.HasIndex("CategoryId");

                b.HasIndex("Order");

                b.HasIndex("SectionId");

                b.ToTable("JudgingCriteria", (string)null);
            });

            modelBuilder.Entity("InfoEducatie.Contest.Judging.ProjectJudgingCriterionPoints.ProjectJudgingCriterionPointsEntity", b =>
            {
                b.Property <string>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("text");

                b.Property <DateTime>("Created")
                .HasColumnType("timestamp without time zone");

                b.Property <string>("CriterionId")
                .IsRequired()
                .HasColumnType("text");

                b.Property <string>("JudgeId")
                .IsRequired()
                .HasColumnType("text");

                b.Property <int>("Points")
                .HasColumnType("integer");

                b.Property <string>("ProjectId")
                .IsRequired()
                .HasColumnType("text");

                b.Property <DateTime>("Updated")
                .HasColumnType("timestamp without time zone");

                b.HasKey("Id");

                b.HasIndex("CriterionId");

                b.HasIndex("JudgeId");

                b.HasIndex("ProjectId");

                b.ToTable("ProjectJudgingCriterionPoints", (string)null);
            });

            modelBuilder.Entity("InfoEducatie.Contest.Participants.Participant.ParticipantEntity", b =>
            {
                b.Property <string>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("text");

                b.Property <bool>("ActivationEmailSent")
                .HasColumnType("boolean");

                b.Property <string>("City")
                .HasColumnType("text");

                b.Property <string>("Cnp")
                .HasColumnType("text");

                b.Property <string>("Country")
                .HasColumnType("text");

                b.Property <string>("County")
                .HasColumnType("text");

                b.Property <DateTime>("Created")
                .HasColumnType("timestamp without time zone");

                b.Property <int>("Grade")
                .HasColumnType("integer");

                b.Property <string>("IdCardNumber")
                .HasColumnType("text");

                b.Property <string>("IdCardSeries")
                .HasColumnType("text");

                b.Property <string>("MentoringTeacher")
                .HasColumnType("text");

                b.Property <string>("OldPlatformId")
                .HasColumnType("text");

                b.Property <string>("PhoneNumber")
                .HasColumnType("text");

                b.Property <string>("School")
                .HasColumnType("text");

                b.Property <string>("SchoolCity")
                .HasColumnType("text");

                b.Property <string>("SchoolCountry")
                .HasColumnType("text");

                b.Property <string>("SchoolCounty")
                .HasColumnType("text");

                b.Property <int>("SentMails")
                .HasColumnType("integer");

                b.Property <DateTime>("Updated")
                .HasColumnType("timestamp without time zone");

                b.Property <string>("UserId")
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("UserId");

                b.ToTable("Participants", (string)null);
            });

            modelBuilder.Entity("InfoEducatie.Contest.Participants.Project.ProjectEntity", b =>
            {
                b.Property <string>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("text");

                b.Property <string>("CategoryId")
                .HasColumnType("text");

                b.Property <DateTime>("Created")
                .HasColumnType("timestamp without time zone");

                b.Property <string>("Description")
                .HasColumnType("text");

                b.Property <string>("DiscourseUrl")
                .HasColumnType("text");

                b.Property <string>("FinalPrize")
                .HasColumnType("text");

                b.Property <string>("Homepage")
                .HasColumnType("text");

                b.Property <bool>("IsInOpen")
                .HasColumnType("boolean");

                b.Property <string>("OldPlatformId")
                .HasColumnType("text");

                b.Property <float>("ScoreOpen")
                .HasColumnType("real");

                b.Property <float>("ScoreProject")
                .HasColumnType("real");

                b.Property <string>("SourceUrl")
                .HasColumnType("text");

                b.Property <string>("SystemRequirements")
                .HasColumnType("text");

                b.Property <string>("Technologies")
                .HasColumnType("text");

                b.Property <string>("Title")
                .HasColumnType("text");

                b.Property <DateTime>("Updated")
                .HasColumnType("timestamp without time zone");

                b.HasKey("Id");

                b.HasIndex("CategoryId");

                b.ToTable("Projects", (string)null);
            });

            modelBuilder.Entity("InfoEducatie.Main.Pages.PageEntity", b =>
            {
                b.Property <string>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("text");

                b.Property <string>("Body")
                .HasColumnType("text");

                b.Property <DateTime>("Created")
                .HasColumnType("timestamp without time zone");

                b.Property <bool>("DisplayTitle")
                .HasColumnType("boolean");

                b.Property <int>("Order")
                .HasColumnType("integer");

                b.Property <bool>("Published")
                .HasColumnType("boolean");

                b.Property <string>("ShortDescription")
                .HasColumnType("text");

                b.Property <string>("Slug")
                .HasColumnType("text");

                b.Property <string>("Title")
                .HasColumnType("text");

                b.Property <DateTime>("Updated")
                .HasColumnType("timestamp without time zone");

                b.HasKey("Id");

                b.HasIndex("Order");

                b.HasIndex("Published");

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

                b.ToTable("BasicPages", (string)null);
            });

            modelBuilder.Entity("InfoEducatie.Main.Seminars.SeminarEntity", b =>
            {
                b.Property <string>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("text");

                b.Property <DateTime>("Created")
                .HasColumnType("timestamp without time zone");

                b.Property <string>("Description")
                .HasColumnType("text");

                b.Property <string>("Link")
                .HasColumnType("text");

                b.Property <string>("Name")
                .HasColumnType("text");

                b.Property <bool>("Published")
                .HasColumnType("boolean");

                b.Property <string>("ShortDescription")
                .HasColumnType("text");

                b.Property <string>("Slug")
                .HasColumnType("text");

                b.Property <string>("Speaker")
                .HasColumnType("text");

                b.Property <DateTime>("Updated")
                .HasColumnType("timestamp without time zone");

                b.Property <DateTime>("When")
                .HasColumnType("timestamp without time zone");

                b.HasKey("Id");

                b.HasIndex("Published");

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

                b.ToTable("Seminars", (string)null);
            });

            modelBuilder.Entity("MCMS.Base.Auth.Role", b =>
            {
                b.Property <string>("Id")
                .HasColumnType("text");

                b.Property <string>("ConcurrencyStamp")
                .IsConcurrencyToken()
                .HasColumnType("text");

                b.Property <DateTime>("Created")
                .HasColumnType("timestamp without time zone");

                b.Property <string>("Name")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("NormalizedName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <DateTime>("Updated")
                .HasColumnType("timestamp without time zone");

                b.HasKey("Id");

                b.HasIndex("NormalizedName")
                .IsUnique()
                .HasDatabaseName("RoleNameIndex");

                b.ToTable("AspNetRoles", (string)null);
            });

            modelBuilder.Entity("MCMS.Base.Auth.User", b =>
            {
                b.Property <string>("Id")
                .HasColumnType("text");

                b.Property <int>("AccessFailedCount")
                .HasColumnType("integer");

                b.Property <string>("ConcurrencyStamp")
                .IsConcurrencyToken()
                .HasColumnType("text");

                b.Property <DateTime>("Created")
                .HasColumnType("timestamp without time zone");

                b.Property <string>("Email")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <bool>("EmailConfirmed")
                .HasColumnType("boolean");

                b.Property <string>("FirstName")
                .HasColumnType("text");

                b.Property <string>("LastName")
                .HasColumnType("text");

                b.Property <bool>("LockoutEnabled")
                .HasColumnType("boolean");

                b.Property <DateTimeOffset?>("LockoutEnd")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("NormalizedEmail")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("NormalizedUserName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("PasswordHash")
                .HasColumnType("text");

                b.Property <string>("PhoneNumber")
                .HasColumnType("text");

                b.Property <bool>("PhoneNumberConfirmed")
                .HasColumnType("boolean");

                b.Property <string>("SecurityStamp")
                .HasColumnType("text");

                b.Property <bool>("TwoFactorEnabled")
                .HasColumnType("boolean");

                b.Property <DateTime>("Updated")
                .HasColumnType("timestamp without time zone");

                b.Property <string>("UserName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.HasKey("Id");

                b.HasIndex("NormalizedEmail")
                .HasDatabaseName("EmailIndex");

                b.HasIndex("NormalizedUserName")
                .IsUnique()
                .HasDatabaseName("UserNameIndex");

                b.ToTable("AspNetUsers", (string)null);
            });

            modelBuilder.Entity("MCMS.Base.Auth.UserRole", b =>
            {
                b.Property <string>("UserId")
                .HasColumnType("text");

                b.Property <string>("RoleId")
                .HasColumnType("text");

                b.HasKey("UserId", "RoleId");

                b.HasIndex("RoleId");

                b.ToTable("AspNetUserRoles", (string)null);
            });

            modelBuilder.Entity("MCMS.Common.Translations.Languages.LanguageEntity", b =>
            {
                b.Property <string>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("text");

                b.Property <string>("Code")
                .HasColumnType("text");

                b.Property <DateTime>("Created")
                .HasColumnType("timestamp without time zone");

                b.Property <string>("Name")
                .HasColumnType("text");

                b.Property <DateTime>("Updated")
                .HasColumnType("timestamp without time zone");

                b.HasKey("Id");

                b.ToTable("Languages", (string)null);
            });

            modelBuilder.Entity("MCMS.Common.Translations.Translations.Item.TranslationItemEntity", b =>
            {
                b.Property <string>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("text");

                b.Property <DateTime>("Created")
                .HasColumnType("timestamp without time zone");

                b.Property <string>("LanguageId")
                .IsRequired()
                .HasColumnType("text");

                b.Property <string>("TranslationId")
                .IsRequired()
                .HasColumnType("text");

                b.Property <DateTime>("Updated")
                .HasColumnType("timestamp without time zone");

                b.Property <string>("Value")
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("LanguageId");

                b.HasIndex("TranslationId");

                b.ToTable("TranslationItems", (string)null);
            });

            modelBuilder.Entity("MCMS.Common.Translations.Translations.TranslationEntity", b =>
            {
                b.Property <string>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("text");

                b.Property <DateTime>("Created")
                .HasColumnType("timestamp without time zone");

                b.Property <bool>("IsRichText")
                .HasColumnType("boolean");

                b.Property <string>("Slug")
                .IsRequired()
                .HasColumnType("text");

                b.Property <string>("Tag")
                .HasColumnType("text");

                b.Property <DateTime>("Updated")
                .HasColumnType("timestamp without time zone");

                b.HasKey("Id");

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

                b.ToTable("Translations", (string)null);
            });

            modelBuilder.Entity("MCMS.Files.Models.FileEntity", b =>
            {
                b.Property <string>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("text");

                b.Property <bool>("Claimed")
                .HasColumnType("boolean");

                b.Property <DateTime>("Created")
                .HasColumnType("timestamp without time zone");

                b.Property <string>("Description")
                .HasColumnType("text");

                b.Property <string>("Extension")
                .HasColumnType("text");

                b.Property <string>("Name")
                .HasColumnType("text");

                b.Property <string>("OriginalName")
                .HasColumnType("text");

                b.Property <string>("OwnerToken")
                .HasColumnType("text");

                b.Property <string>("PhysicalPath")
                .HasColumnType("text");

                b.Property <bool>("Protected")
                .HasColumnType("boolean");

                b.Property <string>("Purpose")
                .HasColumnType("text");

                b.Property <long>("Size")
                .HasColumnType("bigint");

                b.Property <DateTime>("Updated")
                .HasColumnType("timestamp without time zone");

                b.Property <string>("VirtualPath")
                .HasColumnType("text");

                b.HasKey("Id");

                b.ToTable("Files", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("ClaimType")
                .HasColumnType("text");

                b.Property <string>("ClaimValue")
                .HasColumnType("text");

                b.Property <string>("RoleId")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("RoleId");

                b.ToTable("AspNetRoleClaims", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("ClaimType")
                .HasColumnType("text");

                b.Property <string>("ClaimValue")
                .HasColumnType("text");

                b.Property <string>("UserId")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("UserId");

                b.ToTable("AspNetUserClaims", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
            {
                b.Property <string>("LoginProvider")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("ProviderKey")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("ProviderDisplayName")
                .HasColumnType("text");

                b.Property <string>("UserId")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("LoginProvider", "ProviderKey");

                b.HasIndex("UserId");

                b.ToTable("AspNetUserLogins", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
            {
                b.Property <string>("UserId")
                .HasColumnType("text");

                b.Property <string>("LoginProvider")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("Name")
                .HasMaxLength(128)
                .HasColumnType("character varying(128)");

                b.Property <string>("Value")
                .HasColumnType("text");

                b.HasKey("UserId", "LoginProvider", "Name");

                b.ToTable("AspNetUserTokens", (string)null);
            });

            modelBuilder.Entity("ParticipantEntityProjectEntity", b =>
            {
                b.Property <string>("ParticipantsId")
                .HasColumnType("text");

                b.Property <string>("ProjectsId")
                .HasColumnType("text");

                b.HasKey("ParticipantsId", "ProjectsId");

                b.HasIndex("ProjectsId");

                b.ToTable("ProjectParticipants", (string)null);
            });

            modelBuilder.Entity("InfoEducatie.Contest.Judging.Judges.JudgeEntity", b =>
            {
                b.HasOne("InfoEducatie.Contest.Categories.CategoryEntity", "Category")
                .WithMany()
                .HasForeignKey("CategoryId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("MCMS.Base.Auth.User", "User")
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade);

                b.Navigation("Category");

                b.Navigation("User");
            });

            modelBuilder.Entity("InfoEducatie.Contest.Judging.JudgingCriteria.JudgingCriteriaSection.JudgingCriteriaSectionEntity", b =>
            {
                b.HasOne("InfoEducatie.Contest.Categories.CategoryEntity", "Category")
                .WithMany()
                .HasForeignKey("CategoryId")
                .OnDelete(DeleteBehavior.Restrict)
                .IsRequired();

                b.Navigation("Category");
            });

            modelBuilder.Entity("InfoEducatie.Contest.Judging.JudgingCriteria.JudgingCriterionEntity", b =>
            {
                b.HasOne("InfoEducatie.Contest.Categories.CategoryEntity", "Category")
                .WithMany()
                .HasForeignKey("CategoryId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("InfoEducatie.Contest.Judging.JudgingCriteria.JudgingCriteriaSection.JudgingCriteriaSectionEntity", "Section")
                .WithMany("Criteria")
                .HasForeignKey("SectionId")
                .OnDelete(DeleteBehavior.Restrict)
                .IsRequired();

                b.Navigation("Category");

                b.Navigation("Section");
            });

            modelBuilder.Entity("InfoEducatie.Contest.Judging.ProjectJudgingCriterionPoints.ProjectJudgingCriterionPointsEntity", b =>
            {
                b.HasOne("InfoEducatie.Contest.Judging.JudgingCriteria.JudgingCriterionEntity", "Criterion")
                .WithMany()
                .HasForeignKey("CriterionId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("InfoEducatie.Contest.Judging.Judges.JudgeEntity", "Judge")
                .WithMany()
                .HasForeignKey("JudgeId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("InfoEducatie.Contest.Participants.Project.ProjectEntity", "Project")
                .WithMany()
                .HasForeignKey("ProjectId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Criterion");

                b.Navigation("Judge");

                b.Navigation("Project");
            });

            modelBuilder.Entity("InfoEducatie.Contest.Participants.Participant.ParticipantEntity", b =>
            {
                b.HasOne("MCMS.Base.Auth.User", "User")
                .WithMany()
                .HasForeignKey("UserId");

                b.Navigation("User");
            });

            modelBuilder.Entity("InfoEducatie.Contest.Participants.Project.ProjectEntity", b =>
            {
                b.HasOne("InfoEducatie.Contest.Categories.CategoryEntity", "Category")
                .WithMany()
                .HasForeignKey("CategoryId");

                b.Navigation("Category");
            });

            modelBuilder.Entity("MCMS.Base.Auth.UserRole", b =>
            {
                b.HasOne("MCMS.Base.Auth.Role", "Role")
                .WithMany()
                .HasForeignKey("RoleId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("MCMS.Base.Auth.User", null)
                .WithMany("UserRoles")
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Role");
            });

            modelBuilder.Entity("MCMS.Common.Translations.Translations.Item.TranslationItemEntity", b =>
            {
                b.HasOne("MCMS.Common.Translations.Languages.LanguageEntity", "Language")
                .WithMany()
                .HasForeignKey("LanguageId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("MCMS.Common.Translations.Translations.TranslationEntity", "Translation")
                .WithMany("Items")
                .HasForeignKey("TranslationId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Language");

                b.Navigation("Translation");
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
            {
                b.HasOne("MCMS.Base.Auth.Role", null)
                .WithMany()
                .HasForeignKey("RoleId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
            {
                b.HasOne("MCMS.Base.Auth.User", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
            {
                b.HasOne("MCMS.Base.Auth.User", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
            {
                b.HasOne("MCMS.Base.Auth.User", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("ParticipantEntityProjectEntity", b =>
            {
                b.HasOne("InfoEducatie.Contest.Participants.Participant.ParticipantEntity", null)
                .WithMany()
                .HasForeignKey("ParticipantsId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("InfoEducatie.Contest.Participants.Project.ProjectEntity", null)
                .WithMany()
                .HasForeignKey("ProjectsId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("InfoEducatie.Contest.Judging.JudgingCriteria.JudgingCriteriaSection.JudgingCriteriaSectionEntity", b =>
            {
                b.Navigation("Criteria");
            });

            modelBuilder.Entity("MCMS.Base.Auth.User", b =>
            {
                b.Navigation("UserRoles");
            });

            modelBuilder.Entity("MCMS.Common.Translations.Translations.TranslationEntity", b =>
            {
                b.Navigation("Items");
            });
#pragma warning restore 612, 618
        }
Esempio n. 27
0
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasDefaultSchema("AutoroleModule")
            .HasAnnotation("ProductVersion", "6.0.0")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);
            NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "fuzzystrmatch");
            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.AutoroleConfiguration", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <long>("DiscordRoleID")
                .HasColumnType("bigint");
                b.Property <bool>("IsEnabled")
                .HasColumnType("boolean");
                b.Property <bool>("RequiresConfirmation")
                .HasColumnType("boolean");
                b.Property <long>("ServerID")
                .HasColumnType("bigint");
                b.HasKey("ID");
                b.HasIndex("ServerID");
                b.ToTable("AutoroleConfigurations", "AutoroleModule");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.AutoroleConfirmation", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <long>("AutoroleID")
                .HasColumnType("bigint");
                b.Property <bool>("HasNotificationBeenSent")
                .HasColumnType("boolean");
                b.Property <bool>("IsConfirmed")
                .HasColumnType("boolean");
                b.Property <long>("UserID")
                .HasColumnType("bigint");
                b.HasKey("ID");
                b.HasIndex("AutoroleID");
                b.HasIndex("UserID");
                b.ToTable("AutoroleConfirmations", "AutoroleModule");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.AutoroleServerSettings", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <long?>("AffirmationRequiredNotificationChannelID")
                .HasColumnType("bigint");
                b.Property <long>("ServerID")
                .HasColumnType("bigint");
                b.HasKey("ID");
                b.HasIndex("ServerID");
                b.ToTable("AutoroleServerSettings", "AutoroleModule");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.Bases.AutoroleCondition", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <long?>("AutoroleConfigurationID")
                .HasColumnType("bigint");
                b.Property <string>("Discriminator")
                .IsRequired()
                .HasColumnType("text");
                b.HasKey("ID");
                b.HasIndex("AutoroleConfigurationID");
                b.ToTable("AutoroleConditions", "AutoroleModule");
                b.HasDiscriminator <string>("Discriminator").HasValue("AutoroleCondition");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.Statistics.UserChannelStatistics", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <long>("ChannelID")
                .HasColumnType("bigint");
                b.Property <long?>("MessageCount")
                .HasColumnType("bigint");
                b.Property <long?>("UserServerStatisticsID")
                .HasColumnType("bigint");
                b.HasKey("ID");
                b.HasIndex("UserServerStatisticsID");
                b.HasIndex("ChannelID", "UserServerStatisticsID")
                .IsUnique();
                b.ToTable("UserChannelStatistics", "AutoroleModule");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.Statistics.UserServerStatistics", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <DateTime?>("LastActivityTime")
                .HasColumnType("timestamp with time zone");
                b.Property <long>("ServerID")
                .HasColumnType("bigint");
                b.Property <long?>("TotalMessageCount")
                .HasColumnType("bigint");
                b.Property <long?>("UserStatisticsID")
                .HasColumnType("bigint");
                b.HasKey("ID");
                b.HasIndex("UserStatisticsID");
                b.HasIndex("ServerID", "UserStatisticsID")
                .IsUnique();
                b.ToTable("UserServerStatistics", "AutoroleModule");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.Statistics.UserStatistics", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <long>("UserID")
                .HasColumnType("bigint");
                b.HasKey("ID");
                b.HasIndex("UserID")
                .IsUnique();
                b.ToTable("UserStatistics", "AutoroleModule");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <string>("Description")
                .HasColumnType("text");
                b.Property <long>("DiscordID")
                .HasColumnType("bigint");
                b.Property <bool>("IsNSFW")
                .HasColumnType("boolean");
                b.Property <string>("JoinMessage")
                .HasColumnType("text");
                b.Property <bool>("SendJoinMessage")
                .HasColumnType("boolean");
                b.Property <bool>("SuppressPermissionWarnings")
                .HasColumnType("boolean");
                b.HasKey("ID");
                b.ToTable("Servers", "Core", t => t.ExcludeFromMigrations());
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Core.Model.Users.ServerUser", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <long>("ServerID")
                .HasColumnType("bigint");
                b.Property <long>("UserID")
                .HasColumnType("bigint");
                b.HasKey("ID");
                b.HasIndex("ServerID");
                b.HasIndex("UserID");
                b.ToTable("ServerUser", "Core", t => t.ExcludeFromMigrations());
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Core.Model.Users.User", b =>
            {
                b.Property <long>("ID")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");
                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("ID"));
                b.Property <string>("Bio")
                .IsRequired()
                .HasColumnType("text");
                b.Property <long>("DiscordID")
                .HasColumnType("bigint");
                b.Property <int?>("Timezone")
                .HasColumnType("integer");
                b.HasKey("ID");
                b.ToTable("Users", "Core", t => t.ExcludeFromMigrations());
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.Bases.MessageCountInSourceCondition<DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.MessageCountInChannelCondition>", b =>
            {
                b.HasBaseType("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.Bases.AutoroleCondition");
                b.Property <long>("RequiredCount")
                .ValueGeneratedOnUpdateSometimes()
                .HasColumnType("bigint")
                .HasColumnName("RequiredCount");
                b.Property <long>("SourceID")
                .ValueGeneratedOnUpdateSometimes()
                .HasColumnType("bigint")
                .HasColumnName("SourceID");
                b.ToTable("AutoroleConditions", "AutoroleModule");
                b.HasDiscriminator().HasValue("MessageCountInSourceCondition<MessageCountInChannelCondition>");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.Bases.MessageCountInSourceCondition<DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.MessageCountInGuildCondition>", b =>
            {
                b.HasBaseType("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.Bases.AutoroleCondition");
                b.Property <long>("RequiredCount")
                .ValueGeneratedOnUpdateSometimes()
                .HasColumnType("bigint")
                .HasColumnName("RequiredCount");
                b.Property <long>("SourceID")
                .ValueGeneratedOnUpdateSometimes()
                .HasColumnType("bigint")
                .HasColumnName("SourceID");
                b.ToTable("AutoroleConditions", "AutoroleModule");
                b.HasDiscriminator().HasValue("MessageCountInSourceCondition<MessageCountInGuildCondition>");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.Bases.TimeSinceEventCondition<DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.TimeSinceJoinCondition>", b =>
            {
                b.HasBaseType("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.Bases.AutoroleCondition");
                b.Property <TimeSpan>("RequiredTime")
                .ValueGeneratedOnUpdateSometimes()
                .HasColumnType("interval")
                .HasColumnName("RequiredTime");
                b.ToTable("AutoroleConditions", "AutoroleModule");
                b.HasDiscriminator().HasValue("TimeSinceEventCondition<TimeSinceJoinCondition>");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.Bases.TimeSinceEventCondition<DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.TimeSinceLastActivityCondition>", b =>
            {
                b.HasBaseType("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.Bases.AutoroleCondition");
                b.Property <TimeSpan>("RequiredTime")
                .ValueGeneratedOnUpdateSometimes()
                .HasColumnType("interval")
                .HasColumnName("RequiredTime");
                b.ToTable("AutoroleConditions", "AutoroleModule");
                b.HasDiscriminator().HasValue("TimeSinceEventCondition<TimeSinceLastActivityCondition>");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.ReactionCondition", b =>
            {
                b.HasBaseType("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.Bases.AutoroleCondition");
                b.Property <long>("ChannelID")
                .HasColumnType("bigint");
                b.Property <string>("EmoteName")
                .IsRequired()
                .HasColumnType("text");
                b.Property <long>("MessageID")
                .HasColumnType("bigint");
                b.ToTable("AutoroleConditions", "AutoroleModule");
                b.HasDiscriminator().HasValue("ReactionCondition");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.RoleCondition", b =>
            {
                b.HasBaseType("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.Bases.AutoroleCondition");
                b.Property <long>("RoleID")
                .HasColumnType("bigint");
                b.ToTable("AutoroleConditions", "AutoroleModule");
                b.HasDiscriminator().HasValue("RoleCondition");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.MessageCountInChannelCondition", b =>
            {
                b.HasBaseType("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.Bases.MessageCountInSourceCondition<DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.MessageCountInChannelCondition>");
                b.ToTable("AutoroleConditions", "AutoroleModule");
                b.HasDiscriminator().HasValue("MessageCountInChannelCondition");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.MessageCountInGuildCondition", b =>
            {
                b.HasBaseType("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.Bases.MessageCountInSourceCondition<DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.MessageCountInGuildCondition>");
                b.ToTable("AutoroleConditions", "AutoroleModule");
                b.HasDiscriminator().HasValue("MessageCountInGuildCondition");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.TimeSinceJoinCondition", b =>
            {
                b.HasBaseType("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.Bases.TimeSinceEventCondition<DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.TimeSinceJoinCondition>");
                b.ToTable("AutoroleConditions", "AutoroleModule");
                b.HasDiscriminator().HasValue("TimeSinceJoinCondition");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.TimeSinceLastActivityCondition", b =>
            {
                b.HasBaseType("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.Bases.TimeSinceEventCondition<DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.TimeSinceLastActivityCondition>");
                b.ToTable("AutoroleConditions", "AutoroleModule");
                b.HasDiscriminator().HasValue("TimeSinceLastActivityCondition");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.AutoroleConfiguration", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", "Server")
                .WithMany()
                .HasForeignKey("ServerID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
                b.Navigation("Server");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.AutoroleConfirmation", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Autorole.Model.AutoroleConfiguration", "Autorole")
                .WithMany()
                .HasForeignKey("AutoroleID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Users.User", "User")
                .WithMany()
                .HasForeignKey("UserID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
                b.Navigation("Autorole");
                b.Navigation("User");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.AutoroleServerSettings", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", "Server")
                .WithMany()
                .HasForeignKey("ServerID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
                b.Navigation("Server");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.Conditions.Bases.AutoroleCondition", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Autorole.Model.AutoroleConfiguration", null)
                .WithMany("Conditions")
                .HasForeignKey("AutoroleConfigurationID")
                .OnDelete(DeleteBehavior.Cascade);
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.Statistics.UserChannelStatistics", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Autorole.Model.Statistics.UserServerStatistics", null)
                .WithMany("ChannelStatistics")
                .HasForeignKey("UserServerStatisticsID")
                .OnDelete(DeleteBehavior.Cascade);
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.Statistics.UserServerStatistics", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", "Server")
                .WithMany()
                .HasForeignKey("ServerID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
                b.HasOne("DIGOS.Ambassador.Plugins.Autorole.Model.Statistics.UserStatistics", null)
                .WithMany("ServerStatistics")
                .HasForeignKey("UserStatisticsID")
                .OnDelete(DeleteBehavior.Cascade);
                b.Navigation("Server");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.Statistics.UserStatistics", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Users.User", "User")
                .WithMany()
                .HasForeignKey("UserID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
                b.Navigation("User");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Core.Model.Users.ServerUser", b =>
            {
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", "Server")
                .WithMany("KnownUsers")
                .HasForeignKey("ServerID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
                b.HasOne("DIGOS.Ambassador.Plugins.Core.Model.Users.User", "User")
                .WithMany()
                .HasForeignKey("UserID")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
                b.Navigation("Server");
                b.Navigation("User");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.AutoroleConfiguration", b =>
            {
                b.Navigation("Conditions");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.Statistics.UserServerStatistics", b =>
            {
                b.Navigation("ChannelStatistics");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Autorole.Model.Statistics.UserStatistics", b =>
            {
                b.Navigation("ServerStatistics");
            });
            modelBuilder.Entity("DIGOS.Ambassador.Plugins.Core.Model.Servers.Server", b =>
            {
                b.Navigation("KnownUsers");
            });
#pragma warning restore 612, 618
        }
Esempio n. 28
0
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasAnnotation("ProductVersion", "6.0.0")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("Uchu.Core.ActivityScore", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <int>("Activity")
                .HasColumnType("integer");

                b.Property <long>("CharacterId")
                .HasColumnType("bigint");

                b.Property <long>("LastPlayed")
                .HasColumnType("bigint");

                b.Property <int>("NumPlayed")
                .HasColumnType("integer");

                b.Property <int>("Points")
                .HasColumnType("integer");

                b.Property <int>("Time")
                .HasColumnType("integer");

                b.Property <int>("Week")
                .HasColumnType("integer");

                b.Property <int>("Zone")
                .HasColumnType("integer");

                b.HasKey("Id");

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

            modelBuilder.Entity("Uchu.Core.Character", b =>
            {
                b.Property <long>("Id")
                .HasColumnType("bigint");

                b.Property <int>("BaseHealth")
                .HasColumnType("integer");

                b.Property <int>("BaseImagination")
                .HasColumnType("integer");

                b.Property <long>("Currency")
                .HasColumnType("bigint");

                b.Property <int>("CurrentArmor")
                .HasColumnType("integer");

                b.Property <int>("CurrentHealth")
                .HasColumnType("integer");

                b.Property <int>("CurrentImagination")
                .HasColumnType("integer");

                b.Property <string>("CustomName")
                .IsRequired()
                .HasMaxLength(33)
                .HasColumnType("character varying(33)");

                b.Property <long>("EyeStyle")
                .HasColumnType("bigint");

                b.Property <long>("EyebrowStyle")
                .HasColumnType("bigint");

                b.Property <bool>("FreeToPlay")
                .HasColumnType("boolean");

                b.Property <long>("GuildId")
                .HasColumnType("bigint");

                b.Property <long>("HairColor")
                .HasColumnType("bigint");

                b.Property <long>("HairStyle")
                .HasColumnType("bigint");

                b.Property <int>("InventorySize")
                .HasColumnType("integer");

                b.Property <bool>("LandingByRocket")
                .HasColumnType("boolean");

                b.Property <long>("LastActivity")
                .HasColumnType("bigint");

                b.Property <long>("LastClone")
                .HasColumnType("bigint");

                b.Property <int>("LastInstance")
                .HasColumnType("integer");

                b.Property <int>("LastZone")
                .HasColumnType("integer");

                b.Property <int>("LaunchedRocketFrom")
                .HasColumnType("integer");

                b.Property <long>("Level")
                .HasColumnType("bigint");

                b.Property <long>("Lh")
                .HasColumnType("bigint");

                b.Property <int>("MaximumArmor")
                .HasColumnType("integer");

                b.Property <int>("MaximumHealth")
                .HasColumnType("integer");

                b.Property <int>("MaximumImagination")
                .HasColumnType("integer");

                b.Property <long>("MouthStyle")
                .HasColumnType("bigint");

                b.Property <string>("Name")
                .IsRequired()
                .HasMaxLength(33)
                .HasColumnType("character varying(33)");

                b.Property <bool>("NameRejected")
                .HasColumnType("boolean");

                b.Property <long>("PantsColor")
                .HasColumnType("bigint");

                b.Property <long>("Rh")
                .HasColumnType("bigint");

                b.Property <string>("Rocket")
                .HasMaxLength(30)
                .HasColumnType("character varying(30)");

                b.Property <int>("SelectedConsumable")
                .HasColumnType("integer");

                b.Property <long>("ShirtColor")
                .HasColumnType("bigint");

                b.Property <long>("ShirtStyle")
                .HasColumnType("bigint");

                b.Property <string>("SpawnLocationName")
                .HasMaxLength(33)
                .HasColumnType("character varying(33)");

                b.Property <float?>("SpawnPositionX")
                .HasColumnType("real");

                b.Property <float?>("SpawnPositionY")
                .HasColumnType("real");

                b.Property <float?>("SpawnPositionZ")
                .HasColumnType("real");

                b.Property <float?>("SpawnRotationW")
                .HasColumnType("real");

                b.Property <float?>("SpawnRotationX")
                .HasColumnType("real");

                b.Property <float?>("SpawnRotationY")
                .HasColumnType("real");

                b.Property <float?>("SpawnRotationZ")
                .HasColumnType("real");

                b.Property <long>("TotalArmorPowerUpsCollected")
                .HasColumnType("bigint");

                b.Property <long>("TotalArmorRepaired")
                .HasColumnType("bigint");

                b.Property <long>("TotalBricksCollected")
                .HasColumnType("bigint");

                b.Property <long>("TotalCurrencyCollected")
                .HasColumnType("bigint");

                b.Property <long>("TotalDamageHealed")
                .HasColumnType("bigint");

                b.Property <long>("TotalDamageTaken")
                .HasColumnType("bigint");

                b.Property <long>("TotalDistanceDriven")
                .HasColumnType("bigint");

                b.Property <long>("TotalDistanceTraveled")
                .HasColumnType("bigint");

                b.Property <long>("TotalEnemiesSmashed")
                .HasColumnType("bigint");

                b.Property <long>("TotalFirstPlaceFinishes")
                .HasColumnType("bigint");

                b.Property <long>("TotalImaginationPowerUpsCollected")
                .HasColumnType("bigint");

                b.Property <long>("TotalImaginationRestored")
                .HasColumnType("bigint");

                b.Property <long>("TotalImaginationUsed")
                .HasColumnType("bigint");

                b.Property <long>("TotalLifePowerUpsCollected")
                .HasColumnType("bigint");

                b.Property <long>("TotalMissionsCompleted")
                .HasColumnType("bigint");

                b.Property <long>("TotalPetsTamed")
                .HasColumnType("bigint");

                b.Property <long>("TotalQuickBuildsCompleted")
                .HasColumnType("bigint");

                b.Property <long>("TotalRacecarBoostsActivated")
                .HasColumnType("bigint");

                b.Property <long>("TotalRacecarWrecks")
                .HasColumnType("bigint");

                b.Property <long>("TotalRacesFinished")
                .HasColumnType("bigint");

                b.Property <long>("TotalRacingImaginationCratesSmashed")
                .HasColumnType("bigint");

                b.Property <long>("TotalRacingImaginationPowerUpsCollected")
                .HasColumnType("bigint");

                b.Property <long>("TotalRacingSmashablesSmashed")
                .HasColumnType("bigint");

                b.Property <long>("TotalRocketsUsed")
                .HasColumnType("bigint");

                b.Property <long>("TotalSmashablesSmashed")
                .HasColumnType("bigint");

                b.Property <long>("TotalSuicides")
                .HasColumnType("bigint");

                b.Property <long>("TotalTimeAirborne")
                .HasColumnType("bigint");

                b.Property <long>("UniverseScore")
                .HasColumnType("bigint");

                b.Property <long>("UserId")
                .HasColumnType("bigint");

                b.Property <int>("VaultInventorySize")
                .HasColumnType("integer");

                b.HasKey("Id");

                b.HasIndex("UserId");

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

            modelBuilder.Entity("Uchu.Core.CharacterFlag", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <long>("CharacterId")
                .HasColumnType("bigint");

                b.Property <int>("Flag")
                .HasColumnType("integer");

                b.HasKey("Id");

                b.HasIndex("CharacterId");

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

            modelBuilder.Entity("Uchu.Core.CharacterMail", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <int>("AttachmentCount")
                .HasColumnType("integer");

                b.Property <decimal>("AttachmentCurrency")
                .HasColumnType("numeric(20,0)");

                b.Property <int>("AttachmentLot")
                .HasColumnType("integer");

                b.Property <long>("AuthorId")
                .HasColumnType("bigint");

                b.Property <string>("Body")
                .HasColumnType("text");

                b.Property <DateTime>("ExpirationTime")
                .HasColumnType("timestamp with time zone");

                b.Property <bool>("Read")
                .HasColumnType("boolean");

                b.Property <long>("RecipientId")
                .HasColumnType("bigint");

                b.Property <DateTime>("SentTime")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("Subject")
                .HasColumnType("text");

                b.HasKey("Id");

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

            modelBuilder.Entity("Uchu.Core.CharacterTrade", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <long>("CurrencyA")
                .HasColumnType("bigint");

                b.Property <long>("CurrencyB")
                .HasColumnType("bigint");

                b.Property <long>("PartyA")
                .HasColumnType("bigint");

                b.Property <long>("PartyB")
                .HasColumnType("bigint");

                b.HasKey("Id");

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

            modelBuilder.Entity("Uchu.Core.ChatTranscript", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <long>("Author")
                .HasColumnType("bigint");

                b.Property <string>("Message")
                .HasColumnType("text");

                b.Property <long>("Receiver")
                .HasColumnType("bigint");

                b.Property <DateTime>("SentTime")
                .HasColumnType("timestamp with time zone");

                b.HasKey("Id");

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

            modelBuilder.Entity("Uchu.Core.Friend", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <bool>("BestFriend")
                .HasColumnType("boolean");

                b.Property <long>("FriendA")
                .HasColumnType("bigint");

                b.Property <long>("FriendB")
                .HasColumnType("bigint");

                b.HasKey("Id");

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

            modelBuilder.Entity("Uchu.Core.FriendRequest", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <bool>("BestFriend")
                .HasColumnType("boolean");

                b.Property <long>("Receiver")
                .HasColumnType("bigint");

                b.Property <long>("Sender")
                .HasColumnType("bigint");

                b.Property <bool>("Sent")
                .HasColumnType("boolean");

                b.HasKey("Id");

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

            modelBuilder.Entity("Uchu.Core.Guild", b =>
            {
                b.Property <long>("Id")
                .HasColumnType("bigint");

                b.Property <long>("CreatorId")
                .HasColumnType("bigint");

                b.Property <string>("Name")
                .HasColumnType("text");

                b.HasKey("Id");

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

            modelBuilder.Entity("Uchu.Core.GuildInvite", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <long>("GuildId")
                .HasColumnType("bigint");

                b.Property <long>("RecipientId")
                .HasColumnType("bigint");

                b.Property <long>("SenderId")
                .HasColumnType("bigint");

                b.HasKey("Id");

                b.HasIndex("GuildId");

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

            modelBuilder.Entity("Uchu.Core.InventoryItem", b =>
            {
                b.Property <long>("Id")
                .HasColumnType("bigint");

                b.Property <long>("CharacterId")
                .HasColumnType("bigint");

                b.Property <long>("Count")
                .HasColumnType("bigint");

                b.Property <string>("ExtraInfo")
                .HasColumnType("text");

                b.Property <int>("InventoryType")
                .HasColumnType("integer");

                b.Property <bool>("IsBound")
                .HasColumnType("boolean");

                b.Property <bool>("IsEquipped")
                .HasColumnType("boolean");

                b.Property <int>("Lot")
                .HasColumnType("integer");

                b.Property <long>("ParentId")
                .HasColumnType("bigint");

                b.Property <int>("Slot")
                .HasColumnType("integer");

                b.HasKey("Id");

                b.HasIndex("CharacterId");

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

            modelBuilder.Entity("Uchu.Core.Mission", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <long>("CharacterId")
                .HasColumnType("bigint");

                b.Property <int>("CompletionCount")
                .HasColumnType("integer");

                b.Property <long>("LastCompletion")
                .HasColumnType("bigint");

                b.Property <int>("MissionId")
                .HasColumnType("integer");

                b.Property <int>("State")
                .HasColumnType("integer");

                b.HasKey("Id");

                b.HasIndex("CharacterId");

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

            modelBuilder.Entity("Uchu.Core.MissionTask", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <int>("MissionId")
                .HasColumnType("integer");

                b.Property <int>("TaskId")
                .HasColumnType("integer");

                b.HasKey("Id");

                b.HasIndex("MissionId");

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

            modelBuilder.Entity("Uchu.Core.MissionTaskValue", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <int>("Count")
                .HasColumnType("integer");

                b.Property <int>("MissionTaskId")
                .HasColumnType("integer");

                b.Property <float>("Value")
                .HasColumnType("real");

                b.HasKey("Id");

                b.HasIndex("MissionTaskId");

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

            modelBuilder.Entity("Uchu.Core.SessionCache", b =>
            {
                b.Property <Guid>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("uuid");

                b.Property <long>("CharacterId")
                .HasColumnType("bigint");

                b.Property <string>("Key")
                .HasColumnType("text");

                b.Property <long>("UserId")
                .HasColumnType("bigint");

                b.Property <int>("ZoneId")
                .HasColumnType("integer");

                b.HasKey("Id");

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

            modelBuilder.Entity("Uchu.Core.TradeTransactionItem", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <long>("ItemId")
                .HasColumnType("bigint");

                b.Property <long>("Party")
                .HasColumnType("bigint");

                b.Property <long>("TradeId")
                .HasColumnType("bigint");

                b.HasKey("Id");

                b.HasIndex("TradeId");

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

            modelBuilder.Entity("Uchu.Core.UnlockedEmote", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <long>("CharacterId")
                .HasColumnType("bigint");

                b.Property <int>("EmoteId")
                .HasColumnType("integer");

                b.HasKey("Id");

                b.HasIndex("CharacterId");

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

            modelBuilder.Entity("Uchu.Core.User", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <bool>("Banned")
                .HasColumnType("boolean");

                b.Property <string>("BannedReason")
                .HasColumnType("text");

                b.Property <int>("CharacterIndex")
                .HasColumnType("integer");

                b.Property <string>("CustomLockout")
                .HasColumnType("text");

                b.Property <bool>("FirstTimeOnSubscription")
                .HasColumnType("boolean");

                b.Property <bool>("FreeToPlay")
                .HasColumnType("boolean");

                b.Property <int>("GameMasterLevel")
                .HasColumnType("integer");

                b.Property <string>("Password")
                .HasMaxLength(60)
                .HasColumnType("character varying(60)");

                b.Property <bool>("Sso")
                .HasColumnType("boolean");

                b.Property <string>("Username")
                .IsRequired()
                .HasMaxLength(33)
                .HasColumnType("character varying(33)");

                b.HasKey("Id");

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

            modelBuilder.Entity("Uchu.Core.Character", b =>
            {
                b.HasOne("Uchu.Core.User", "User")
                .WithMany("Characters")
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("User");
            });

            modelBuilder.Entity("Uchu.Core.CharacterFlag", b =>
            {
                b.HasOne("Uchu.Core.Character", "Character")
                .WithMany("Flags")
                .HasForeignKey("CharacterId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Character");
            });

            modelBuilder.Entity("Uchu.Core.GuildInvite", b =>
            {
                b.HasOne("Uchu.Core.Guild", "Guild")
                .WithMany("Invites")
                .HasForeignKey("GuildId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Guild");
            });

            modelBuilder.Entity("Uchu.Core.InventoryItem", b =>
            {
                b.HasOne("Uchu.Core.Character", "Character")
                .WithMany("Items")
                .HasForeignKey("CharacterId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Character");
            });

            modelBuilder.Entity("Uchu.Core.Mission", b =>
            {
                b.HasOne("Uchu.Core.Character", "Character")
                .WithMany("Missions")
                .HasForeignKey("CharacterId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Character");
            });

            modelBuilder.Entity("Uchu.Core.MissionTask", b =>
            {
                b.HasOne("Uchu.Core.Mission", "Mission")
                .WithMany("Tasks")
                .HasForeignKey("MissionId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Mission");
            });

            modelBuilder.Entity("Uchu.Core.MissionTaskValue", b =>
            {
                b.HasOne("Uchu.Core.MissionTask", "MissionTask")
                .WithMany("Values")
                .HasForeignKey("MissionTaskId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("MissionTask");
            });

            modelBuilder.Entity("Uchu.Core.TradeTransactionItem", b =>
            {
                b.HasOne("Uchu.Core.CharacterTrade", "Trade")
                .WithMany("TransactionItems")
                .HasForeignKey("TradeId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Trade");
            });

            modelBuilder.Entity("Uchu.Core.UnlockedEmote", b =>
            {
                b.HasOne("Uchu.Core.Character", "Character")
                .WithMany("UnlockedEmotes")
                .HasForeignKey("CharacterId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.Navigation("Character");
            });

            modelBuilder.Entity("Uchu.Core.Character", b =>
            {
                b.Navigation("Flags");

                b.Navigation("Items");

                b.Navigation("Missions");

                b.Navigation("UnlockedEmotes");
            });

            modelBuilder.Entity("Uchu.Core.CharacterTrade", b =>
            {
                b.Navigation("TransactionItems");
            });

            modelBuilder.Entity("Uchu.Core.Guild", b =>
            {
                b.Navigation("Invites");
            });

            modelBuilder.Entity("Uchu.Core.Mission", b =>
            {
                b.Navigation("Tasks");
            });

            modelBuilder.Entity("Uchu.Core.MissionTask", b =>
            {
                b.Navigation("Values");
            });

            modelBuilder.Entity("Uchu.Core.User", b =>
            {
                b.Navigation("Characters");
            });
#pragma warning restore 612, 618
        }
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasAnnotation("ProductVersion", "6.0.0")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("TypingRealm.Library.Infrastructure.DataAccess.Entities.BookDao", b =>
            {
                b.Property <string>("Id")
                .HasMaxLength(50)
                .HasColumnType("character varying(50)")
                .HasColumnName("id");

                b.Property <DateTime>("AddedAtUtc")
                .HasColumnType("timestamp with time zone")
                .HasColumnName("added_at_utc");

                b.Property <string>("Content")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("content");

                b.Property <string>("Description")
                .IsRequired()
                .HasMaxLength(100)
                .HasColumnType("character varying(100)")
                .HasColumnName("description");

                b.Property <bool>("IsArchived")
                .HasColumnType("boolean")
                .HasColumnName("is_archived");

                b.Property <bool>("IsProcessed")
                .HasColumnType("boolean")
                .HasColumnName("is_processed");

                b.HasKey("Id")
                .HasName("pk_book");

                b.HasIndex("AddedAtUtc")
                .HasDatabaseName("ix_book_added_at_utc");

                b.HasIndex("Description")
                .HasDatabaseName("ix_book_description");

                b.HasIndex("IsArchived")
                .HasDatabaseName("ix_book_is_archived");

                b.HasIndex("IsProcessed")
                .HasDatabaseName("ix_book_is_processed");

                b.ToTable("book", (string)null);
            });

            modelBuilder.Entity("TypingRealm.Library.Infrastructure.DataAccess.Entities.KeyPairDao", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint")
                .HasColumnName("id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <int>("CountInSentence")
                .HasColumnType("integer")
                .HasColumnName("count_in_sentence");

                b.Property <int>("CountInWord")
                .HasColumnType("integer")
                .HasColumnName("count_in_word");

                b.Property <int>("IndexInWord")
                .HasColumnType("integer")
                .HasColumnName("index_in_word");

                b.Property <string>("Value")
                .IsRequired()
                .HasMaxLength(10)
                .HasColumnType("character varying(10)")
                .HasColumnName("value");

                b.Property <long>("WordId")
                .HasColumnType("bigint")
                .HasColumnName("word_id");

                b.HasKey("Id")
                .HasName("pk_key_pair");

                b.HasIndex("CountInSentence")
                .HasDatabaseName("ix_key_pair_count_in_sentence");

                b.HasIndex("CountInWord")
                .HasDatabaseName("ix_key_pair_count_in_word");

                b.HasIndex("IndexInWord")
                .HasDatabaseName("ix_key_pair_index_in_word");

                b.HasIndex("Value")
                .HasDatabaseName("ix_key_pair_value");

                b.HasIndex("WordId")
                .HasDatabaseName("ix_key_pair_word_id");

                b.ToTable("key_pair", (string)null);
            });

            modelBuilder.Entity("TypingRealm.Library.Infrastructure.DataAccess.Entities.SentenceDao", b =>
            {
                b.Property <string>("Id")
                .HasMaxLength(50)
                .HasColumnType("character varying(50)")
                .HasColumnName("id");

                b.Property <string>("BookId")
                .IsRequired()
                .HasMaxLength(50)
                .HasColumnType("character varying(50)")
                .HasColumnName("book_id");

                b.Property <int>("IndexInBook")
                .HasColumnType("integer")
                .HasColumnName("index_in_book");

                b.Property <string>("Value")
                .IsRequired()
                .HasColumnType("text")
                .HasColumnName("value");

                b.HasKey("Id")
                .HasName("pk_sentence");

                b.HasIndex("BookId")
                .HasDatabaseName("ix_sentence_book_id");

                b.HasIndex("IndexInBook")
                .HasDatabaseName("ix_sentence_index_in_book");

                b.ToTable("sentence", (string)null);
            });

            modelBuilder.Entity("TypingRealm.Library.Infrastructure.DataAccess.Entities.WordDao", b =>
            {
                b.Property <long>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("bigint")
                .HasColumnName("id");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <long>("Id"));

                b.Property <int>("CountInSentence")
                .HasColumnType("integer")
                .HasColumnName("count_in_sentence");

                b.Property <int>("IndexInSentence")
                .HasColumnType("integer")
                .HasColumnName("index_in_sentence");

                b.Property <int>("RawCountInSentence")
                .HasColumnType("integer")
                .HasColumnName("raw_count_in_sentence");

                b.Property <string>("RawValue")
                .IsRequired()
                .HasMaxLength(100)
                .HasColumnType("character varying(100)")
                .HasColumnName("raw_value");

                b.Property <string>("SentenceId")
                .IsRequired()
                .HasMaxLength(50)
                .HasColumnType("character varying(50)")
                .HasColumnName("sentence_id");

                b.Property <string>("Value")
                .IsRequired()
                .HasMaxLength(100)
                .HasColumnType("character varying(100)")
                .HasColumnName("value");

                b.HasKey("Id")
                .HasName("pk_word");

                b.HasIndex("CountInSentence")
                .HasDatabaseName("ix_word_count_in_sentence");

                b.HasIndex("IndexInSentence")
                .HasDatabaseName("ix_word_index_in_sentence");

                b.HasIndex("RawCountInSentence")
                .HasDatabaseName("ix_word_raw_count_in_sentence");

                b.HasIndex("RawValue")
                .HasDatabaseName("ix_word_raw_value");

                b.HasIndex("SentenceId")
                .HasDatabaseName("ix_word_sentence_id");

                b.HasIndex("Value")
                .HasDatabaseName("ix_word_value");

                b.ToTable("word", (string)null);
            });

            modelBuilder.Entity("TypingRealm.Library.Infrastructure.DataAccess.Entities.KeyPairDao", b =>
            {
                b.HasOne("TypingRealm.Library.Infrastructure.DataAccess.Entities.WordDao", "Word")
                .WithMany("KeyPairs")
                .HasForeignKey("WordId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_key_pair_word_word_id");

                b.Navigation("Word");
            });

            modelBuilder.Entity("TypingRealm.Library.Infrastructure.DataAccess.Entities.SentenceDao", b =>
            {
                b.HasOne("TypingRealm.Library.Infrastructure.DataAccess.Entities.BookDao", "Book")
                .WithMany()
                .HasForeignKey("BookId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_sentence_book_book_id");

                b.Navigation("Book");
            });

            modelBuilder.Entity("TypingRealm.Library.Infrastructure.DataAccess.Entities.WordDao", b =>
            {
                b.HasOne("TypingRealm.Library.Infrastructure.DataAccess.Entities.SentenceDao", "Sentence")
                .WithMany("Words")
                .HasForeignKey("SentenceId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired()
                .HasConstraintName("fk_word_sentence_sentence_id");

                b.Navigation("Sentence");
            });

            modelBuilder.Entity("TypingRealm.Library.Infrastructure.DataAccess.Entities.SentenceDao", b =>
            {
                b.Navigation("Words");
            });

            modelBuilder.Entity("TypingRealm.Library.Infrastructure.DataAccess.Entities.WordDao", b =>
            {
                b.Navigation("KeyPairs");
            });
#pragma warning restore 612, 618
        }
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
            .HasDefaultSchema("aspnet_identity")
            .HasAnnotation("ProductVersion", "6.0.0-rc.1.21452.10")
            .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b =>
            {
                b.Property <string>("Id")
                .HasColumnType("text");

                b.Property <string>("ConcurrencyStamp")
                .IsConcurrencyToken()
                .HasColumnType("text");

                b.Property <string>("Name")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("NormalizedName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.HasKey("Id");

                b.HasIndex("NormalizedName")
                .IsUnique()
                .HasDatabaseName("RoleNameIndex");

                b.ToTable("AspNetRoles", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("ClaimType")
                .HasColumnType("text");

                b.Property <string>("ClaimValue")
                .HasColumnType("text");

                b.Property <string>("RoleId")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("RoleId");

                b.ToTable("AspNetRoleClaims", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
            {
                b.Property <int>("Id")
                .ValueGeneratedOnAdd()
                .HasColumnType("integer");

                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property <int>("Id"));

                b.Property <string>("ClaimType")
                .HasColumnType("text");

                b.Property <string>("ClaimValue")
                .HasColumnType("text");

                b.Property <string>("UserId")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("Id");

                b.HasIndex("UserId");

                b.ToTable("AspNetUserClaims", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
            {
                b.Property <string>("LoginProvider")
                .HasColumnType("text");

                b.Property <string>("ProviderKey")
                .HasColumnType("text");

                b.Property <string>("ProviderDisplayName")
                .HasColumnType("text");

                b.Property <string>("UserId")
                .IsRequired()
                .HasColumnType("text");

                b.HasKey("LoginProvider", "ProviderKey");

                b.HasIndex("UserId");

                b.ToTable("AspNetUserLogins", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
            {
                b.Property <string>("UserId")
                .HasColumnType("text");

                b.Property <string>("RoleId")
                .HasColumnType("text");

                b.HasKey("UserId", "RoleId");

                b.HasIndex("RoleId");

                b.ToTable("AspNetUserRoles", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
            {
                b.Property <string>("UserId")
                .HasColumnType("text");

                b.Property <string>("LoginProvider")
                .HasColumnType("text");

                b.Property <string>("Name")
                .HasColumnType("text");

                b.Property <string>("Value")
                .HasColumnType("text");

                b.HasKey("UserId", "LoginProvider", "Name");

                b.ToTable("AspNetUserTokens", (string)null);
            });

            modelBuilder.Entity("UnoBlazor.Shared.Entities.ApplicationUser", b =>
            {
                b.Property <string>("Id")
                .HasColumnType("text");

                b.Property <int>("AccessFailedCount")
                .HasColumnType("integer");

                b.Property <string>("ConcurrencyStamp")
                .IsConcurrencyToken()
                .HasColumnType("text");

                b.Property <string>("Email")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <bool>("EmailConfirmed")
                .HasColumnType("boolean");

                b.Property <bool>("LockoutEnabled")
                .HasColumnType("boolean");

                b.Property <DateTimeOffset?>("LockoutEnd")
                .HasColumnType("timestamp with time zone");

                b.Property <string>("NormalizedEmail")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("NormalizedUserName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.Property <string>("PasswordHash")
                .HasColumnType("text");

                b.Property <string>("PhoneNumber")
                .HasColumnType("text");

                b.Property <bool>("PhoneNumberConfirmed")
                .HasColumnType("boolean");

                b.Property <string>("SecurityStamp")
                .HasColumnType("text");

                b.Property <string>("Status")
                .IsRequired()
                .HasColumnType("text");

                b.Property <bool>("TwoFactorEnabled")
                .HasColumnType("boolean");

                b.Property <string>("UserName")
                .HasMaxLength(256)
                .HasColumnType("character varying(256)");

                b.HasKey("Id");

                b.HasIndex("NormalizedEmail")
                .HasDatabaseName("EmailIndex");

                b.HasIndex("NormalizedUserName")
                .IsUnique()
                .HasDatabaseName("UserNameIndex");

                b.ToTable("AspNetUsers", (string)null);
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
            {
                b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
                .WithMany()
                .HasForeignKey("RoleId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
            {
                b.HasOne("UnoBlazor.Shared.Entities.ApplicationUser", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
            {
                b.HasOne("UnoBlazor.Shared.Entities.ApplicationUser", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
            {
                b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
                .WithMany()
                .HasForeignKey("RoleId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();

                b.HasOne("UnoBlazor.Shared.Entities.ApplicationUser", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
            {
                b.HasOne("UnoBlazor.Shared.Entities.ApplicationUser", null)
                .WithMany()
                .HasForeignKey("UserId")
                .OnDelete(DeleteBehavior.Cascade)
                .IsRequired();
            });
#pragma warning restore 612, 618
        }