This commit is contained in:
Exception
2026-05-09 14:31:53 -04:00
parent ad3fa51fd9
commit 1f113298e0
251 changed files with 100454 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
// <auto-generated />
using DeluxeNET.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace DeluxeNET.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20260419211658_InitialCreate")]
partial class InitialCreate
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.11")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,23 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace DeluxeNET.Migrations
{
/// <inheritdoc />
public partial class InitialCreate : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterDatabase()
.Annotation("MySql:CharSet", "utf8mb4");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
}
}
}
+65
View File
@@ -0,0 +1,65 @@
// <auto-generated />
using System;
using DeluxeNET.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace DeluxeNET.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20260419212506_CachedLoginsAdd")]
partial class CachedLoginsAdd
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.11")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
modelBuilder.Entity("DeluxeNET.Data.CachedLogin", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.Property<DateTime>("lastLoginTime")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "lastLoginTime");
b.Property<int>("platform")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platform");
b.Property<string>("platformId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "platformId");
b.Property<bool>("requirePassword")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "requirePassword");
b.HasKey("Id");
b.ToTable("CachedLogins");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,42 @@
using System;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace DeluxeNET.Migrations
{
/// <inheritdoc />
public partial class CachedLoginsAdd : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "CachedLogins",
columns: table => new
{
Id = table.Column<long>(type: "bigint", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
platform = table.Column<int>(type: "int", nullable: false),
platformId = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
accountId = table.Column<long>(type: "bigint", nullable: false),
lastLoginTime = table.Column<DateTime>(type: "datetime(6)", nullable: false),
requirePassword = table.Column<bool>(type: "tinyint(1)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_CachedLogins", x => x.Id);
})
.Annotation("MySql:CharSet", "utf8mb4");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "CachedLogins");
}
}
}
+123
View File
@@ -0,0 +1,123 @@
// <auto-generated />
using System;
using DeluxeNET.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace DeluxeNET.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20260419225030_accountsAdd")]
partial class accountsAdd
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.11")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
modelBuilder.Entity("DeluxeNET.Data.CachedLogin", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.Property<DateTime>("lastLoginTime")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "lastLoginTime");
b.Property<int>("platform")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platform");
b.Property<string>("platformId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "platformId");
b.Property<bool>("requirePassword")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "requirePassword");
b.HasKey("Id");
b.ToTable("CachedLogins");
});
modelBuilder.Entity("DeluxeNET.Data.account", b =>
{
b.Property<long>("accountId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("accountId"));
b.Property<string>("bannerImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "bannerImage");
b.Property<DateTime>("createdAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "createdAt");
b.Property<string>("displayName")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "displayName");
b.Property<int>("identityFlags")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "identityFlags");
b.Property<bool>("isJunior")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isJunior");
b.Property<bool>("isMetaPlatformBlocked")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isMetaPlatformBlocked");
b.Property<int>("personalPronouns")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "personalPronouns");
b.Property<int>("platforms")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platforms");
b.Property<string>("profileImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "profileImage");
b.Property<string>("username")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "username");
b.HasKey("accountId");
b.ToTable("Accounts");
});
#pragma warning restore 612, 618
}
}
}
+50
View File
@@ -0,0 +1,50 @@
using System;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace DeluxeNET.Migrations
{
/// <inheritdoc />
public partial class accountsAdd : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Accounts",
columns: table => new
{
accountId = table.Column<long>(type: "bigint", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
username = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
displayName = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
profileImage = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
bannerImage = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
isJunior = table.Column<bool>(type: "tinyint(1)", nullable: false),
platforms = table.Column<int>(type: "int", nullable: false),
personalPronouns = table.Column<int>(type: "int", nullable: false),
identityFlags = table.Column<int>(type: "int", nullable: false),
createdAt = table.Column<DateTime>(type: "datetime(6)", nullable: false),
isMetaPlatformBlocked = table.Column<bool>(type: "tinyint(1)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Accounts", x => x.accountId);
})
.Annotation("MySql:CharSet", "utf8mb4");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Accounts");
}
}
}
+151
View File
@@ -0,0 +1,151 @@
// <auto-generated />
using System;
using DeluxeNET.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace DeluxeNET.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20260420071250_settingsAddition")]
partial class settingsAddition
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.11")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
modelBuilder.Entity("DeluxeNET.Data.CachedLogin", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.Property<DateTime>("lastLoginTime")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "lastLoginTime");
b.Property<int>("platform")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platform");
b.Property<string>("platformId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "platformId");
b.Property<bool>("requirePassword")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "requirePassword");
b.HasKey("Id");
b.ToTable("CachedLogins");
});
modelBuilder.Entity("DeluxeNET.Data.account", b =>
{
b.Property<long>("accountId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("accountId"));
b.Property<string>("bannerImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "bannerImage");
b.Property<DateTime>("createdAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "createdAt");
b.Property<string>("displayName")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "displayName");
b.Property<int>("identityFlags")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "identityFlags");
b.Property<bool>("isJunior")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isJunior");
b.Property<bool>("isMetaPlatformBlocked")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isMetaPlatformBlocked");
b.Property<int>("personalPronouns")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "personalPronouns");
b.Property<int>("platforms")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platforms");
b.Property<string>("profileImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "profileImage");
b.Property<string>("username")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "username");
b.HasKey("accountId");
b.ToTable("Accounts");
});
modelBuilder.Entity("DeluxeNET.Data.setting", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("Key")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Key");
b.Property<string>("Value")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Value");
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Settings");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,40 @@
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace DeluxeNET.Migrations
{
/// <inheritdoc />
public partial class settingsAddition : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Settings",
columns: table => new
{
Id = table.Column<long>(type: "bigint", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
accountId = table.Column<long>(type: "bigint", nullable: false),
Key = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
Value = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_Settings", x => x.Id);
})
.Annotation("MySql:CharSet", "utf8mb4");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Settings");
}
}
}
+189
View File
@@ -0,0 +1,189 @@
// <auto-generated />
using System;
using DeluxeNET.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace DeluxeNET.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20260420072228_avatarAddition")]
partial class avatarAddition
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.11")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
modelBuilder.Entity("DeluxeNET.Data.CachedLogin", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.Property<DateTime>("lastLoginTime")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "lastLoginTime");
b.Property<int>("platform")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platform");
b.Property<string>("platformId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "platformId");
b.Property<bool>("requirePassword")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "requirePassword");
b.HasKey("Id");
b.ToTable("CachedLogins");
});
modelBuilder.Entity("DeluxeNET.Data.account", b =>
{
b.Property<long>("accountId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("accountId"));
b.Property<string>("bannerImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "bannerImage");
b.Property<DateTime>("createdAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "createdAt");
b.Property<string>("displayName")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "displayName");
b.Property<int>("identityFlags")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "identityFlags");
b.Property<bool>("isJunior")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isJunior");
b.Property<bool>("isMetaPlatformBlocked")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isMetaPlatformBlocked");
b.Property<int>("personalPronouns")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "personalPronouns");
b.Property<int>("platforms")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platforms");
b.Property<string>("profileImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "profileImage");
b.Property<string>("username")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "username");
b.HasKey("accountId");
b.ToTable("Accounts");
});
modelBuilder.Entity("DeluxeNET.Data.avatar", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("FaceFeatures")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "FaceFeatures");
b.Property<string>("HairColor")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "HairColor");
b.Property<string>("OutfitSelections")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "OutfitSelections");
b.Property<string>("SkinColor")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "SkinColor");
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Avatars");
});
modelBuilder.Entity("DeluxeNET.Data.setting", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("Key")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Key");
b.Property<string>("Value")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Value");
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Settings");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,44 @@
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace DeluxeNET.Migrations
{
/// <inheritdoc />
public partial class avatarAddition : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Avatars",
columns: table => new
{
Id = table.Column<long>(type: "bigint", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
accountId = table.Column<long>(type: "bigint", nullable: false),
OutfitSelections = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
FaceFeatures = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
SkinColor = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
HairColor = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_Avatars", x => x.Id);
})
.Annotation("MySql:CharSet", "utf8mb4");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Avatars");
}
}
}
+215
View File
@@ -0,0 +1,215 @@
// <auto-generated />
using System;
using DeluxeNET.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace DeluxeNET.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20260420073902_progressionAdd")]
partial class progressionAdd
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.11")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
modelBuilder.Entity("DeluxeNET.Data.CachedLogin", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.Property<DateTime>("lastLoginTime")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "lastLoginTime");
b.Property<int>("platform")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platform");
b.Property<string>("platformId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "platformId");
b.Property<bool>("requirePassword")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "requirePassword");
b.HasKey("Id");
b.ToTable("CachedLogins");
});
modelBuilder.Entity("DeluxeNET.Data.account", b =>
{
b.Property<long>("accountId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("accountId"));
b.Property<string>("bannerImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "bannerImage");
b.Property<DateTime>("createdAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "createdAt");
b.Property<string>("displayName")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "displayName");
b.Property<int>("identityFlags")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "identityFlags");
b.Property<bool>("isJunior")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isJunior");
b.Property<bool>("isMetaPlatformBlocked")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isMetaPlatformBlocked");
b.Property<int>("personalPronouns")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "personalPronouns");
b.Property<int>("platforms")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platforms");
b.Property<string>("profileImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "profileImage");
b.Property<string>("username")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "username");
b.HasKey("accountId");
b.ToTable("Accounts");
});
modelBuilder.Entity("DeluxeNET.Data.avatar", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("FaceFeatures")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "FaceFeatures");
b.Property<string>("HairColor")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "HairColor");
b.Property<string>("OutfitSelections")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "OutfitSelections");
b.Property<string>("SkinColor")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "SkinColor");
b.Property<long?>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Avatars");
});
modelBuilder.Entity("DeluxeNET.Data.progression", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("Level")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Level");
b.Property<long>("PlayerId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "PlayerId");
b.Property<int>("XP")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "XP");
b.HasKey("Id");
b.ToTable("Progressions");
});
modelBuilder.Entity("DeluxeNET.Data.setting", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("Key")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Key");
b.Property<string>("Value")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Value");
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Settings");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,56 @@
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace DeluxeNET.Migrations
{
/// <inheritdoc />
public partial class progressionAdd : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<long>(
name: "accountId",
table: "Avatars",
type: "bigint",
nullable: true,
oldClrType: typeof(long),
oldType: "bigint");
migrationBuilder.CreateTable(
name: "Progressions",
columns: table => new
{
Id = table.Column<long>(type: "bigint", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
PlayerId = table.Column<long>(type: "bigint", nullable: false),
Level = table.Column<int>(type: "int", nullable: false),
XP = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Progressions", x => x.Id);
})
.Annotation("MySql:CharSet", "utf8mb4");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Progressions");
migrationBuilder.AlterColumn<long>(
name: "accountId",
table: "Avatars",
type: "bigint",
nullable: false,
defaultValue: 0L,
oldClrType: typeof(long),
oldType: "bigint",
oldNullable: true);
}
}
}
+269
View File
@@ -0,0 +1,269 @@
// <auto-generated />
using System;
using DeluxeNET.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace DeluxeNET.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20260420075517_repAdd")]
partial class repAdd
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.11")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
modelBuilder.Entity("DeluxeNET.Data.CachedLogin", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.Property<DateTime>("lastLoginTime")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "lastLoginTime");
b.Property<int>("platform")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platform");
b.Property<string>("platformId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "platformId");
b.Property<bool>("requirePassword")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "requirePassword");
b.HasKey("Id");
b.ToTable("CachedLogins");
});
modelBuilder.Entity("DeluxeNET.Data.account", b =>
{
b.Property<long>("accountId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("accountId"));
b.Property<string>("bannerImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "bannerImage");
b.Property<DateTime>("createdAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "createdAt");
b.Property<string>("displayName")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "displayName");
b.Property<int>("identityFlags")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "identityFlags");
b.Property<bool>("isJunior")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isJunior");
b.Property<bool>("isMetaPlatformBlocked")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isMetaPlatformBlocked");
b.Property<int>("personalPronouns")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "personalPronouns");
b.Property<int>("platforms")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platforms");
b.Property<string>("profileImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "profileImage");
b.Property<string>("username")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "username");
b.HasKey("accountId");
b.ToTable("Accounts");
});
modelBuilder.Entity("DeluxeNET.Data.avatar", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("FaceFeatures")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "FaceFeatures");
b.Property<string>("HairColor")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "HairColor");
b.Property<string>("OutfitSelections")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "OutfitSelections");
b.Property<string>("SkinColor")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "SkinColor");
b.Property<long?>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Avatars");
});
modelBuilder.Entity("DeluxeNET.Data.progression", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("Level")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Level");
b.Property<long>("PlayerId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "PlayerId");
b.Property<int>("XP")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "XP");
b.HasKey("Id");
b.ToTable("Progressions");
});
modelBuilder.Entity("DeluxeNET.Data.reputation", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("CheerCreative")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerCreative");
b.Property<int>("CheerCredit")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerCredit");
b.Property<int>("CheerGeneral")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerGeneral");
b.Property<int>("CheerGreatHost")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerGreatHost");
b.Property<int>("CheerHelpful")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerHelpful");
b.Property<int>("CheerSportsman")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerSportsman");
b.Property<bool>("IsCheerful")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsCheerful");
b.Property<float>("Noteriety")
.HasColumnType("float")
.HasAnnotation("Relational:JsonPropertyName", "Noteriety");
b.Property<int>("SelectedCheer")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SelectedCheer");
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Reputations");
});
modelBuilder.Entity("DeluxeNET.Data.setting", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("Key")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Key");
b.Property<string>("Value")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Value");
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Settings");
});
#pragma warning restore 612, 618
}
}
}
+45
View File
@@ -0,0 +1,45 @@
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace DeluxeNET.Migrations
{
/// <inheritdoc />
public partial class repAdd : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Reputations",
columns: table => new
{
Id = table.Column<long>(type: "bigint", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
accountId = table.Column<long>(type: "bigint", nullable: false),
IsCheerful = table.Column<bool>(type: "tinyint(1)", nullable: false),
Noteriety = table.Column<float>(type: "float", nullable: false),
SelectedCheer = table.Column<int>(type: "int", nullable: false),
CheerCredit = table.Column<int>(type: "int", nullable: false),
CheerGeneral = table.Column<int>(type: "int", nullable: false),
CheerHelpful = table.Column<int>(type: "int", nullable: false),
CheerCreative = table.Column<int>(type: "int", nullable: false),
CheerGreatHost = table.Column<int>(type: "int", nullable: false),
CheerSportsman = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Reputations", x => x.Id);
})
.Annotation("MySql:CharSet", "utf8mb4");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Reputations");
}
}
}
+657
View File
@@ -0,0 +1,657 @@
// <auto-generated />
using System;
using DeluxeNET.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace DeluxeNET.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20260420090954_roomsAdd")]
partial class roomsAdd
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.11")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
modelBuilder.Entity("DeluxeNET.Data.CachedLogin", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.Property<DateTime>("lastLoginTime")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "lastLoginTime");
b.Property<int>("platform")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platform");
b.Property<string>("platformId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "platformId");
b.Property<bool>("requirePassword")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "requirePassword");
b.HasKey("Id");
b.ToTable("CachedLogins");
});
modelBuilder.Entity("DeluxeNET.Data.Room", b =>
{
b.Property<long>("RoomId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("RoomId"));
b.Property<int>("Accessibility")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Accessibility");
b.Property<bool>("CloningAllowed")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "CloningAllowed");
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "CreatedAt");
b.Property<int>("CreatorAccountId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CreatorAccountId");
b.Property<string>("CustomWarning")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "CustomWarning");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Description");
b.Property<bool>("DisableMicAutoMute")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "DisableMicAutoMute");
b.Property<bool>("DisableRoomComments")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "DisableRoomComments");
b.Property<bool>("EncryptVoiceChat")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "EncryptVoiceChat");
b.Property<string>("ImageName")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "ImageName");
b.Property<bool>("IsDeveloperOwned")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsDeveloperOwned");
b.Property<bool>("IsDorm")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsDorm");
b.Property<bool>("IsRRO")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsRRO");
b.Property<bool>("LoadScreenLocked")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "LoadScreenLocked");
b.Property<int>("MaxPlayerCalculationMode")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MaxPlayerCalculationMode");
b.Property<int>("MaxPlayers")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MaxPlayers");
b.Property<int>("MinLevel")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MinLevel");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Name");
b.Property<int>("State")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "State");
b.Property<bool>("SupportsJuniors")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsJuniors");
b.Property<bool>("SupportsLevelVoting")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsLevelVoting");
b.Property<bool>("SupportsMobile")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsMobile");
b.Property<bool>("SupportsQuest2")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsQuest2");
b.Property<bool>("SupportsScreens")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsScreens");
b.Property<bool>("SupportsTeleportVR")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsTeleportVR");
b.Property<bool>("SupportsVRLow")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsVRLow");
b.Property<bool>("SupportsWalkVR")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsWalkVR");
b.PrimitiveCollection<string>("Tags")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Tags");
b.Property<int>("Version")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Version");
b.Property<int>("WarningMask")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "WarningMask");
b.HasKey("RoomId");
b.ToTable("Rooms");
});
modelBuilder.Entity("DeluxeNET.Data.RoomRole", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("AccountId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "AccountId");
b.Property<int>("InvitedRole")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "InvitedRole");
b.Property<int>("Role")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Role");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.HasKey("Id");
b.HasIndex("RoomId");
b.ToTable("RoomRoles");
b.HasAnnotation("Relational:JsonPropertyName", "Roles");
});
modelBuilder.Entity("DeluxeNET.Data.RoomStats", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("CheerCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerCount");
b.Property<int>("FavoriteCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "FavoriteCount");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.Property<int>("VisitCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "VisitCount");
b.Property<int>("VisitorCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "VisitorCount");
b.HasKey("Id");
b.HasIndex("RoomId")
.IsUnique();
b.ToTable("RoomStats");
b.HasAnnotation("Relational:JsonPropertyName", "Stats");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoom", b =>
{
b.Property<int>("SubRoomId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SubRoomId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("SubRoomId"));
b.Property<int>("Accessibility")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Accessibility");
b.Property<bool>("IsSandbox")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsSandbox");
b.Property<int>("MaxPlayers")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MaxPlayers");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Name");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.Property<string>("UnitySceneId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "UnitySceneId");
b.HasKey("SubRoomId");
b.HasIndex("RoomId");
b.ToTable("SubRooms");
b.HasAnnotation("Relational:JsonPropertyName", "SubRooms");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoomSave", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "CreatedAt");
b.Property<string>("DataBlob")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "DataBlob");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Description");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.Property<int>("SavedByAccountId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SavedByAccountId");
b.Property<int>("SubRoomDataSaveId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SubRoomDataSaveId");
b.Property<int>("SubRoomId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SubRoomId");
b.Property<int?>("SubRoomId1")
.HasColumnType("int");
b.Property<string>("UnityAssetId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "UnityAssetId");
b.HasKey("Id");
b.HasIndex("RoomId");
b.HasIndex("SubRoomId")
.IsUnique();
b.HasIndex("SubRoomId1");
b.ToTable("SubRoomSaves");
b.HasAnnotation("Relational:JsonPropertyName", "CurrentSave");
});
modelBuilder.Entity("DeluxeNET.Data.account", b =>
{
b.Property<long>("accountId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("accountId"));
b.Property<string>("bannerImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "bannerImage");
b.Property<DateTime>("createdAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "createdAt");
b.Property<string>("displayName")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "displayName");
b.Property<int>("identityFlags")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "identityFlags");
b.Property<bool>("isJunior")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isJunior");
b.Property<bool>("isMetaPlatformBlocked")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isMetaPlatformBlocked");
b.Property<int>("personalPronouns")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "personalPronouns");
b.Property<int>("platforms")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platforms");
b.Property<string>("profileImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "profileImage");
b.Property<string>("username")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "username");
b.HasKey("accountId");
b.ToTable("Accounts");
});
modelBuilder.Entity("DeluxeNET.Data.avatar", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("FaceFeatures")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "FaceFeatures");
b.Property<string>("HairColor")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "HairColor");
b.Property<string>("OutfitSelections")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "OutfitSelections");
b.Property<string>("SkinColor")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "SkinColor");
b.Property<long?>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Avatars");
});
modelBuilder.Entity("DeluxeNET.Data.progression", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("Level")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Level");
b.Property<long>("PlayerId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "PlayerId");
b.Property<int>("XP")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "XP");
b.HasKey("Id");
b.ToTable("Progressions");
});
modelBuilder.Entity("DeluxeNET.Data.reputation", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("CheerCreative")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerCreative");
b.Property<int>("CheerCredit")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerCredit");
b.Property<int>("CheerGeneral")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerGeneral");
b.Property<int>("CheerGreatHost")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerGreatHost");
b.Property<int>("CheerHelpful")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerHelpful");
b.Property<int>("CheerSportsman")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerSportsman");
b.Property<bool>("IsCheerful")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsCheerful");
b.Property<float>("Noteriety")
.HasColumnType("float")
.HasAnnotation("Relational:JsonPropertyName", "Noteriety");
b.Property<int>("SelectedCheer")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SelectedCheer");
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Reputations");
});
modelBuilder.Entity("DeluxeNET.Data.setting", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("Key")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Key");
b.Property<string>("Value")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Value");
b.Property<long?>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Settings");
});
modelBuilder.Entity("DeluxeNET.Data.RoomRole", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithMany("Roles")
.HasForeignKey("RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Room");
});
modelBuilder.Entity("DeluxeNET.Data.RoomStats", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithOne("Stats")
.HasForeignKey("DeluxeNET.Data.RoomStats", "RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Room");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoom", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithMany("SubRooms")
.HasForeignKey("RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Room");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoomSave", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithMany()
.HasForeignKey("RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("DeluxeNET.Data.SubRoom", "SubRoom")
.WithOne("CurrentSave")
.HasForeignKey("DeluxeNET.Data.SubRoomSave", "SubRoomId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("DeluxeNET.Data.SubRoom", null)
.WithMany("SubRoomSaves")
.HasForeignKey("SubRoomId1");
b.Navigation("Room");
b.Navigation("SubRoom");
});
modelBuilder.Entity("DeluxeNET.Data.Room", b =>
{
b.Navigation("Roles");
b.Navigation("Stats")
.IsRequired();
b.Navigation("SubRooms");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoom", b =>
{
b.Navigation("CurrentSave")
.IsRequired();
b.Navigation("SubRoomSaves");
});
#pragma warning restore 612, 618
}
}
}
+249
View File
@@ -0,0 +1,249 @@
using System;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace DeluxeNET.Migrations
{
/// <inheritdoc />
public partial class roomsAdd : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<long>(
name: "accountId",
table: "Settings",
type: "bigint",
nullable: true,
oldClrType: typeof(long),
oldType: "bigint");
migrationBuilder.CreateTable(
name: "Rooms",
columns: table => new
{
RoomId = table.Column<long>(type: "bigint", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
Accessibility = table.Column<int>(type: "int", nullable: false),
CloningAllowed = table.Column<bool>(type: "tinyint(1)", nullable: false),
CreatedAt = table.Column<DateTime>(type: "datetime(6)", nullable: false),
CreatorAccountId = table.Column<int>(type: "int", nullable: false),
CustomWarning = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
Description = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
DisableMicAutoMute = table.Column<bool>(type: "tinyint(1)", nullable: false),
DisableRoomComments = table.Column<bool>(type: "tinyint(1)", nullable: false),
EncryptVoiceChat = table.Column<bool>(type: "tinyint(1)", nullable: false),
ImageName = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
IsDeveloperOwned = table.Column<bool>(type: "tinyint(1)", nullable: false),
IsDorm = table.Column<bool>(type: "tinyint(1)", nullable: false),
IsRRO = table.Column<bool>(type: "tinyint(1)", nullable: false),
LoadScreenLocked = table.Column<bool>(type: "tinyint(1)", nullable: false),
MaxPlayerCalculationMode = table.Column<int>(type: "int", nullable: false),
MaxPlayers = table.Column<int>(type: "int", nullable: false),
MinLevel = table.Column<int>(type: "int", nullable: false),
Name = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
State = table.Column<int>(type: "int", nullable: false),
SupportsJuniors = table.Column<bool>(type: "tinyint(1)", nullable: false),
SupportsLevelVoting = table.Column<bool>(type: "tinyint(1)", nullable: false),
SupportsMobile = table.Column<bool>(type: "tinyint(1)", nullable: false),
SupportsQuest2 = table.Column<bool>(type: "tinyint(1)", nullable: false),
SupportsScreens = table.Column<bool>(type: "tinyint(1)", nullable: false),
SupportsTeleportVR = table.Column<bool>(type: "tinyint(1)", nullable: false),
SupportsVRLow = table.Column<bool>(type: "tinyint(1)", nullable: false),
SupportsWalkVR = table.Column<bool>(type: "tinyint(1)", nullable: false),
Tags = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
Version = table.Column<int>(type: "int", nullable: false),
WarningMask = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Rooms", x => x.RoomId);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "RoomRoles",
columns: table => new
{
Id = table.Column<long>(type: "bigint", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
RoomId = table.Column<long>(type: "bigint", nullable: false),
AccountId = table.Column<int>(type: "int", nullable: false),
InvitedRole = table.Column<int>(type: "int", nullable: false),
Role = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_RoomRoles", x => x.Id);
table.ForeignKey(
name: "FK_RoomRoles_Rooms_RoomId",
column: x => x.RoomId,
principalTable: "Rooms",
principalColumn: "RoomId",
onDelete: ReferentialAction.Cascade);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "RoomStats",
columns: table => new
{
Id = table.Column<long>(type: "bigint", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
RoomId = table.Column<long>(type: "bigint", nullable: false),
CheerCount = table.Column<int>(type: "int", nullable: false),
FavoriteCount = table.Column<int>(type: "int", nullable: false),
VisitCount = table.Column<int>(type: "int", nullable: false),
VisitorCount = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_RoomStats", x => x.Id);
table.ForeignKey(
name: "FK_RoomStats_Rooms_RoomId",
column: x => x.RoomId,
principalTable: "Rooms",
principalColumn: "RoomId",
onDelete: ReferentialAction.Cascade);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "SubRooms",
columns: table => new
{
SubRoomId = table.Column<int>(type: "int", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
RoomId = table.Column<long>(type: "bigint", nullable: false),
Accessibility = table.Column<int>(type: "int", nullable: false),
IsSandbox = table.Column<bool>(type: "tinyint(1)", nullable: false),
MaxPlayers = table.Column<int>(type: "int", nullable: false),
Name = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
UnitySceneId = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_SubRooms", x => x.SubRoomId);
table.ForeignKey(
name: "FK_SubRooms_Rooms_RoomId",
column: x => x.RoomId,
principalTable: "Rooms",
principalColumn: "RoomId",
onDelete: ReferentialAction.Cascade);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "SubRoomSaves",
columns: table => new
{
Id = table.Column<long>(type: "bigint", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
RoomId = table.Column<long>(type: "bigint", nullable: false),
SubRoomId = table.Column<int>(type: "int", nullable: false),
SubRoomDataSaveId = table.Column<int>(type: "int", nullable: false),
DataBlob = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
SavedByAccountId = table.Column<int>(type: "int", nullable: false),
Description = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
CreatedAt = table.Column<DateTime>(type: "datetime(6)", nullable: false),
UnityAssetId = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
SubRoomId1 = table.Column<int>(type: "int", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_SubRoomSaves", x => x.Id);
table.ForeignKey(
name: "FK_SubRoomSaves_Rooms_RoomId",
column: x => x.RoomId,
principalTable: "Rooms",
principalColumn: "RoomId",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_SubRoomSaves_SubRooms_SubRoomId",
column: x => x.SubRoomId,
principalTable: "SubRooms",
principalColumn: "SubRoomId",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_SubRoomSaves_SubRooms_SubRoomId1",
column: x => x.SubRoomId1,
principalTable: "SubRooms",
principalColumn: "SubRoomId");
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateIndex(
name: "IX_RoomRoles_RoomId",
table: "RoomRoles",
column: "RoomId");
migrationBuilder.CreateIndex(
name: "IX_RoomStats_RoomId",
table: "RoomStats",
column: "RoomId",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_SubRooms_RoomId",
table: "SubRooms",
column: "RoomId");
migrationBuilder.CreateIndex(
name: "IX_SubRoomSaves_RoomId",
table: "SubRoomSaves",
column: "RoomId");
migrationBuilder.CreateIndex(
name: "IX_SubRoomSaves_SubRoomId",
table: "SubRoomSaves",
column: "SubRoomId",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_SubRoomSaves_SubRoomId1",
table: "SubRoomSaves",
column: "SubRoomId1");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "RoomRoles");
migrationBuilder.DropTable(
name: "RoomStats");
migrationBuilder.DropTable(
name: "SubRoomSaves");
migrationBuilder.DropTable(
name: "SubRooms");
migrationBuilder.DropTable(
name: "Rooms");
migrationBuilder.AlterColumn<long>(
name: "accountId",
table: "Settings",
type: "bigint",
nullable: false,
defaultValue: 0L,
oldClrType: typeof(long),
oldType: "bigint",
oldNullable: true);
}
}
}
+797
View File
@@ -0,0 +1,797 @@
// <auto-generated />
using System;
using DeluxeNET.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace DeluxeNET.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20260420200518_heartbeatData")]
partial class heartbeatData
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.11")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
modelBuilder.Entity("DeluxeNET.Data.CachedLogin", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.Property<DateTime>("lastLoginTime")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "lastLoginTime");
b.Property<int>("platform")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platform");
b.Property<string>("platformId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "platformId");
b.Property<bool>("requirePassword")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "requirePassword");
b.HasKey("Id");
b.ToTable("CachedLogins");
});
modelBuilder.Entity("DeluxeNET.Data.Heartbeat", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("AppVersion")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "appVersion");
b.Property<int>("DeviceClass")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "deviceClass");
b.Property<bool>("IsOnline")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isOnline");
b.Property<DateTime>("LastOnline")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "lastOnline");
b.Property<int>("Platform")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platform");
b.Property<long>("PlayerId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "playerId");
b.Property<long?>("RoomInstanceId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "roomInstanceId");
b.Property<int>("StatusVisibility")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "statusVisibility");
b.Property<int>("VrMovementMode")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "vrMovementMode");
b.HasKey("Id");
b.HasIndex("RoomInstanceId");
b.ToTable("Heartbeats");
});
modelBuilder.Entity("DeluxeNET.Data.Room", b =>
{
b.Property<long>("RoomId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("RoomId"));
b.Property<int>("Accessibility")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Accessibility");
b.Property<bool>("CloningAllowed")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "CloningAllowed");
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "CreatedAt");
b.Property<int>("CreatorAccountId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CreatorAccountId");
b.Property<string>("CustomWarning")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "CustomWarning");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Description");
b.Property<bool>("DisableMicAutoMute")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "DisableMicAutoMute");
b.Property<bool>("DisableRoomComments")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "DisableRoomComments");
b.Property<bool>("EncryptVoiceChat")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "EncryptVoiceChat");
b.Property<string>("ImageName")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "ImageName");
b.Property<bool>("IsDeveloperOwned")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsDeveloperOwned");
b.Property<bool>("IsDorm")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsDorm");
b.Property<bool>("IsRRO")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsRRO");
b.Property<bool>("LoadScreenLocked")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "LoadScreenLocked");
b.Property<int>("MaxPlayerCalculationMode")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MaxPlayerCalculationMode");
b.Property<int>("MaxPlayers")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MaxPlayers");
b.Property<int>("MinLevel")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MinLevel");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Name");
b.Property<int>("State")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "State");
b.Property<bool>("SupportsJuniors")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsJuniors");
b.Property<bool>("SupportsLevelVoting")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsLevelVoting");
b.Property<bool>("SupportsMobile")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsMobile");
b.Property<bool>("SupportsQuest2")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsQuest2");
b.Property<bool>("SupportsScreens")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsScreens");
b.Property<bool>("SupportsTeleportVR")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsTeleportVR");
b.Property<bool>("SupportsVRLow")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsVRLow");
b.Property<bool>("SupportsWalkVR")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsWalkVR");
b.PrimitiveCollection<string>("Tags")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Tags");
b.Property<int>("Version")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Version");
b.Property<int>("WarningMask")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "WarningMask");
b.HasKey("RoomId");
b.ToTable("Rooms");
});
modelBuilder.Entity("DeluxeNET.Data.RoomInstance", b =>
{
b.Property<long>("RoomInstanceId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "roomInstanceId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("RoomInstanceId"));
b.Property<bool>("IsFull")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isFull");
b.Property<bool>("IsInProgress")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isInProgress");
b.Property<bool>("IsPrivate")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isPrivate");
b.Property<string>("Location")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "location");
b.Property<int>("MatchmakingPolicy")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "matchmakingPolicy");
b.Property<int>("MaxCapacity")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "maxCapacity");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "name");
b.Property<string>("PhotonRegion")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "photonRegion");
b.Property<string>("PhotonRegionId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "photonRegionId");
b.Property<string>("PhotonRoomId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "photonRoomId");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "roomId");
b.Property<int>("RoomInstanceType")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "roomInstanceType");
b.Property<long>("SubRoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "subRoomId");
b.HasKey("RoomInstanceId");
b.ToTable("RoomInstance");
b.HasAnnotation("Relational:JsonPropertyName", "roomInstance");
});
modelBuilder.Entity("DeluxeNET.Data.RoomRole", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("AccountId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "AccountId");
b.Property<int>("InvitedRole")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "InvitedRole");
b.Property<int>("Role")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Role");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.HasKey("Id");
b.HasIndex("RoomId");
b.ToTable("RoomRoles");
b.HasAnnotation("Relational:JsonPropertyName", "Roles");
});
modelBuilder.Entity("DeluxeNET.Data.RoomStats", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("CheerCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerCount");
b.Property<int>("FavoriteCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "FavoriteCount");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.Property<int>("VisitCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "VisitCount");
b.Property<int>("VisitorCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "VisitorCount");
b.HasKey("Id");
b.HasIndex("RoomId")
.IsUnique();
b.ToTable("RoomStats");
b.HasAnnotation("Relational:JsonPropertyName", "Stats");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoom", b =>
{
b.Property<int>("SubRoomId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SubRoomId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("SubRoomId"));
b.Property<int>("Accessibility")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Accessibility");
b.Property<bool>("IsSandbox")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsSandbox");
b.Property<int>("MaxPlayers")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MaxPlayers");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Name");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.Property<string>("UnitySceneId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "UnitySceneId");
b.HasKey("SubRoomId");
b.HasIndex("RoomId");
b.ToTable("SubRooms");
b.HasAnnotation("Relational:JsonPropertyName", "SubRooms");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoomSave", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "CreatedAt");
b.Property<string>("DataBlob")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "DataBlob");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Description");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.Property<int>("SavedByAccountId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SavedByAccountId");
b.Property<int>("SubRoomDataSaveId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SubRoomDataSaveId");
b.Property<int>("SubRoomId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SubRoomId");
b.Property<int?>("SubRoomId1")
.HasColumnType("int");
b.Property<string>("UnityAssetId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "UnityAssetId");
b.HasKey("Id");
b.HasIndex("RoomId");
b.HasIndex("SubRoomId")
.IsUnique();
b.HasIndex("SubRoomId1");
b.ToTable("SubRoomSaves");
b.HasAnnotation("Relational:JsonPropertyName", "CurrentSave");
});
modelBuilder.Entity("DeluxeNET.Data.account", b =>
{
b.Property<long>("accountId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("accountId"));
b.Property<string>("bannerImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "bannerImage");
b.Property<DateTime>("createdAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "createdAt");
b.Property<string>("displayName")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "displayName");
b.Property<int>("identityFlags")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "identityFlags");
b.Property<bool>("isJunior")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isJunior");
b.Property<bool>("isMetaPlatformBlocked")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isMetaPlatformBlocked");
b.Property<int>("personalPronouns")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "personalPronouns");
b.Property<int>("platforms")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platforms");
b.Property<string>("profileImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "profileImage");
b.Property<string>("username")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "username");
b.HasKey("accountId");
b.ToTable("Accounts");
});
modelBuilder.Entity("DeluxeNET.Data.avatar", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("FaceFeatures")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "FaceFeatures");
b.Property<string>("HairColor")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "HairColor");
b.Property<string>("OutfitSelections")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "OutfitSelections");
b.Property<string>("SkinColor")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "SkinColor");
b.Property<long?>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Avatars");
});
modelBuilder.Entity("DeluxeNET.Data.progression", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("Level")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Level");
b.Property<long>("PlayerId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "PlayerId");
b.Property<int>("XP")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "XP");
b.HasKey("Id");
b.ToTable("Progressions");
});
modelBuilder.Entity("DeluxeNET.Data.reputation", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("CheerCreative")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerCreative");
b.Property<int>("CheerCredit")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerCredit");
b.Property<int>("CheerGeneral")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerGeneral");
b.Property<int>("CheerGreatHost")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerGreatHost");
b.Property<int>("CheerHelpful")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerHelpful");
b.Property<int>("CheerSportsman")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerSportsman");
b.Property<bool>("IsCheerful")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsCheerful");
b.Property<float>("Noteriety")
.HasColumnType("float")
.HasAnnotation("Relational:JsonPropertyName", "Noteriety");
b.Property<int>("SelectedCheer")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SelectedCheer");
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Reputations");
});
modelBuilder.Entity("DeluxeNET.Data.setting", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("Key")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Key");
b.Property<string>("Value")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Value");
b.Property<long?>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Settings");
});
modelBuilder.Entity("DeluxeNET.Data.Heartbeat", b =>
{
b.HasOne("DeluxeNET.Data.RoomInstance", "RoomInstance")
.WithMany("Heartbeats")
.HasForeignKey("RoomInstanceId")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("RoomInstance");
});
modelBuilder.Entity("DeluxeNET.Data.RoomRole", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithMany("Roles")
.HasForeignKey("RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Room");
});
modelBuilder.Entity("DeluxeNET.Data.RoomStats", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithOne("Stats")
.HasForeignKey("DeluxeNET.Data.RoomStats", "RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Room");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoom", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithMany("SubRooms")
.HasForeignKey("RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Room");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoomSave", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithMany()
.HasForeignKey("RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("DeluxeNET.Data.SubRoom", "SubRoom")
.WithOne("CurrentSave")
.HasForeignKey("DeluxeNET.Data.SubRoomSave", "SubRoomId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("DeluxeNET.Data.SubRoom", null)
.WithMany("SubRoomSaves")
.HasForeignKey("SubRoomId1");
b.Navigation("Room");
b.Navigation("SubRoom");
});
modelBuilder.Entity("DeluxeNET.Data.Room", b =>
{
b.Navigation("Roles");
b.Navigation("Stats")
.IsRequired();
b.Navigation("SubRooms");
});
modelBuilder.Entity("DeluxeNET.Data.RoomInstance", b =>
{
b.Navigation("Heartbeats");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoom", b =>
{
b.Navigation("CurrentSave")
.IsRequired();
b.Navigation("SubRoomSaves");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,91 @@
using System;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace DeluxeNET.Migrations
{
/// <inheritdoc />
public partial class heartbeatData : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "RoomInstance",
columns: table => new
{
RoomInstanceId = table.Column<long>(type: "bigint", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
RoomId = table.Column<long>(type: "bigint", nullable: false),
SubRoomId = table.Column<long>(type: "bigint", nullable: false),
Location = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
RoomInstanceType = table.Column<int>(type: "int", nullable: false),
PhotonRegionId = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
PhotonRegion = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
PhotonRoomId = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
Name = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
MaxCapacity = table.Column<int>(type: "int", nullable: false),
IsFull = table.Column<bool>(type: "tinyint(1)", nullable: false),
IsPrivate = table.Column<bool>(type: "tinyint(1)", nullable: false),
IsInProgress = table.Column<bool>(type: "tinyint(1)", nullable: false),
MatchmakingPolicy = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_RoomInstance", x => x.RoomInstanceId);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "Heartbeats",
columns: table => new
{
Id = table.Column<long>(type: "bigint", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
PlayerId = table.Column<long>(type: "bigint", nullable: false),
StatusVisibility = table.Column<int>(type: "int", nullable: false),
Platform = table.Column<int>(type: "int", nullable: false),
DeviceClass = table.Column<int>(type: "int", nullable: false),
RoomInstanceId = table.Column<long>(type: "bigint", nullable: true),
VrMovementMode = table.Column<int>(type: "int", nullable: false),
LastOnline = table.Column<DateTime>(type: "datetime(6)", nullable: false),
IsOnline = table.Column<bool>(type: "tinyint(1)", nullable: false),
AppVersion = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_Heartbeats", x => x.Id);
table.ForeignKey(
name: "FK_Heartbeats_RoomInstance_RoomInstanceId",
column: x => x.RoomInstanceId,
principalTable: "RoomInstance",
principalColumn: "RoomInstanceId",
onDelete: ReferentialAction.SetNull);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateIndex(
name: "IX_Heartbeats_RoomInstanceId",
table: "Heartbeats",
column: "RoomInstanceId");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Heartbeats");
migrationBuilder.DropTable(
name: "RoomInstance");
}
}
}
@@ -0,0 +1,800 @@
// <auto-generated />
using System;
using DeluxeNET.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace DeluxeNET.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20260425140432_FixHeartbeatAddNullProperty")]
partial class FixHeartbeatAddNullProperty
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.11")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
modelBuilder.Entity("DeluxeNET.Data.CachedLogin", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.Property<DateTime>("lastLoginTime")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "lastLoginTime");
b.Property<int>("platform")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platform");
b.Property<string>("platformId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "platformId");
b.Property<bool>("requirePassword")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "requirePassword");
b.HasKey("Id");
b.ToTable("CachedLogins");
});
modelBuilder.Entity("DeluxeNET.Data.Heartbeat", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("AppVersion")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "appVersion");
b.Property<int>("DeviceClass")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "deviceClass");
b.Property<bool>("IsOnline")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isOnline");
b.Property<bool>("IsRoomInstanceNull")
.HasColumnType("tinyint(1)");
b.Property<DateTime>("LastOnline")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "lastOnline");
b.Property<int>("Platform")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platform");
b.Property<long>("PlayerId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "playerId");
b.Property<long?>("RoomInstanceId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "roomInstanceId");
b.Property<int>("StatusVisibility")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "statusVisibility");
b.Property<int>("VrMovementMode")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "vrMovementMode");
b.HasKey("Id");
b.HasIndex("RoomInstanceId");
b.ToTable("Heartbeats");
});
modelBuilder.Entity("DeluxeNET.Data.Room", b =>
{
b.Property<long>("RoomId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("RoomId"));
b.Property<int>("Accessibility")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Accessibility");
b.Property<bool>("CloningAllowed")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "CloningAllowed");
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "CreatedAt");
b.Property<int>("CreatorAccountId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CreatorAccountId");
b.Property<string>("CustomWarning")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "CustomWarning");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Description");
b.Property<bool>("DisableMicAutoMute")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "DisableMicAutoMute");
b.Property<bool>("DisableRoomComments")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "DisableRoomComments");
b.Property<bool>("EncryptVoiceChat")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "EncryptVoiceChat");
b.Property<string>("ImageName")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "ImageName");
b.Property<bool>("IsDeveloperOwned")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsDeveloperOwned");
b.Property<bool>("IsDorm")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsDorm");
b.Property<bool>("IsRRO")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsRRO");
b.Property<bool>("LoadScreenLocked")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "LoadScreenLocked");
b.Property<int>("MaxPlayerCalculationMode")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MaxPlayerCalculationMode");
b.Property<int>("MaxPlayers")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MaxPlayers");
b.Property<int>("MinLevel")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MinLevel");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Name");
b.Property<int>("State")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "State");
b.Property<bool>("SupportsJuniors")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsJuniors");
b.Property<bool>("SupportsLevelVoting")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsLevelVoting");
b.Property<bool>("SupportsMobile")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsMobile");
b.Property<bool>("SupportsQuest2")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsQuest2");
b.Property<bool>("SupportsScreens")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsScreens");
b.Property<bool>("SupportsTeleportVR")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsTeleportVR");
b.Property<bool>("SupportsVRLow")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsVRLow");
b.Property<bool>("SupportsWalkVR")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsWalkVR");
b.PrimitiveCollection<string>("Tags")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Tags");
b.Property<int>("Version")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Version");
b.Property<int>("WarningMask")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "WarningMask");
b.HasKey("RoomId");
b.ToTable("Rooms");
});
modelBuilder.Entity("DeluxeNET.Data.RoomInstance", b =>
{
b.Property<long>("RoomInstanceId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "roomInstanceId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("RoomInstanceId"));
b.Property<bool>("IsFull")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isFull");
b.Property<bool>("IsInProgress")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isInProgress");
b.Property<bool>("IsPrivate")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isPrivate");
b.Property<string>("Location")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "location");
b.Property<int>("MatchmakingPolicy")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "matchmakingPolicy");
b.Property<int>("MaxCapacity")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "maxCapacity");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "name");
b.Property<string>("PhotonRegion")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "photonRegion");
b.Property<string>("PhotonRegionId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "photonRegionId");
b.Property<string>("PhotonRoomId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "photonRoomId");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "roomId");
b.Property<int>("RoomInstanceType")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "roomInstanceType");
b.Property<long>("SubRoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "subRoomId");
b.HasKey("RoomInstanceId");
b.ToTable("RoomInstance");
b.HasAnnotation("Relational:JsonPropertyName", "roomInstance");
});
modelBuilder.Entity("DeluxeNET.Data.RoomRole", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("AccountId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "AccountId");
b.Property<int>("InvitedRole")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "InvitedRole");
b.Property<int>("Role")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Role");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.HasKey("Id");
b.HasIndex("RoomId");
b.ToTable("RoomRoles");
b.HasAnnotation("Relational:JsonPropertyName", "Roles");
});
modelBuilder.Entity("DeluxeNET.Data.RoomStats", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("CheerCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerCount");
b.Property<int>("FavoriteCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "FavoriteCount");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.Property<int>("VisitCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "VisitCount");
b.Property<int>("VisitorCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "VisitorCount");
b.HasKey("Id");
b.HasIndex("RoomId")
.IsUnique();
b.ToTable("RoomStats");
b.HasAnnotation("Relational:JsonPropertyName", "Stats");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoom", b =>
{
b.Property<int>("SubRoomId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SubRoomId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("SubRoomId"));
b.Property<int>("Accessibility")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Accessibility");
b.Property<bool>("IsSandbox")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsSandbox");
b.Property<int>("MaxPlayers")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MaxPlayers");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Name");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.Property<string>("UnitySceneId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "UnitySceneId");
b.HasKey("SubRoomId");
b.HasIndex("RoomId");
b.ToTable("SubRooms");
b.HasAnnotation("Relational:JsonPropertyName", "SubRooms");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoomSave", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "CreatedAt");
b.Property<string>("DataBlob")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "DataBlob");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Description");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.Property<int>("SavedByAccountId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SavedByAccountId");
b.Property<int>("SubRoomDataSaveId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SubRoomDataSaveId");
b.Property<int>("SubRoomId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SubRoomId");
b.Property<int?>("SubRoomId1")
.HasColumnType("int");
b.Property<string>("UnityAssetId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "UnityAssetId");
b.HasKey("Id");
b.HasIndex("RoomId");
b.HasIndex("SubRoomId")
.IsUnique();
b.HasIndex("SubRoomId1");
b.ToTable("SubRoomSaves");
b.HasAnnotation("Relational:JsonPropertyName", "CurrentSave");
});
modelBuilder.Entity("DeluxeNET.Data.account", b =>
{
b.Property<long>("accountId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("accountId"));
b.Property<string>("bannerImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "bannerImage");
b.Property<DateTime>("createdAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "createdAt");
b.Property<string>("displayName")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "displayName");
b.Property<int>("identityFlags")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "identityFlags");
b.Property<bool>("isJunior")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isJunior");
b.Property<bool>("isMetaPlatformBlocked")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isMetaPlatformBlocked");
b.Property<int>("personalPronouns")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "personalPronouns");
b.Property<int>("platforms")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platforms");
b.Property<string>("profileImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "profileImage");
b.Property<string>("username")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "username");
b.HasKey("accountId");
b.ToTable("Accounts");
});
modelBuilder.Entity("DeluxeNET.Data.avatar", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("FaceFeatures")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "FaceFeatures");
b.Property<string>("HairColor")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "HairColor");
b.Property<string>("OutfitSelections")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "OutfitSelections");
b.Property<string>("SkinColor")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "SkinColor");
b.Property<long?>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Avatars");
});
modelBuilder.Entity("DeluxeNET.Data.progression", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("Level")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Level");
b.Property<long>("PlayerId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "PlayerId");
b.Property<int>("XP")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "XP");
b.HasKey("Id");
b.ToTable("Progressions");
});
modelBuilder.Entity("DeluxeNET.Data.reputation", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("CheerCreative")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerCreative");
b.Property<int>("CheerCredit")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerCredit");
b.Property<int>("CheerGeneral")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerGeneral");
b.Property<int>("CheerGreatHost")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerGreatHost");
b.Property<int>("CheerHelpful")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerHelpful");
b.Property<int>("CheerSportsman")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerSportsman");
b.Property<bool>("IsCheerful")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsCheerful");
b.Property<float>("Noteriety")
.HasColumnType("float")
.HasAnnotation("Relational:JsonPropertyName", "Noteriety");
b.Property<int>("SelectedCheer")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SelectedCheer");
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Reputations");
});
modelBuilder.Entity("DeluxeNET.Data.setting", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("Key")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Key");
b.Property<string>("Value")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Value");
b.Property<long?>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Settings");
});
modelBuilder.Entity("DeluxeNET.Data.Heartbeat", b =>
{
b.HasOne("DeluxeNET.Data.RoomInstance", "RoomInstance")
.WithMany("Heartbeats")
.HasForeignKey("RoomInstanceId")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("RoomInstance");
});
modelBuilder.Entity("DeluxeNET.Data.RoomRole", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithMany("Roles")
.HasForeignKey("RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Room");
});
modelBuilder.Entity("DeluxeNET.Data.RoomStats", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithOne("Stats")
.HasForeignKey("DeluxeNET.Data.RoomStats", "RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Room");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoom", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithMany("SubRooms")
.HasForeignKey("RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Room");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoomSave", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithMany()
.HasForeignKey("RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("DeluxeNET.Data.SubRoom", "SubRoom")
.WithOne("CurrentSave")
.HasForeignKey("DeluxeNET.Data.SubRoomSave", "SubRoomId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("DeluxeNET.Data.SubRoom", null)
.WithMany("SubRoomSaves")
.HasForeignKey("SubRoomId1");
b.Navigation("Room");
b.Navigation("SubRoom");
});
modelBuilder.Entity("DeluxeNET.Data.Room", b =>
{
b.Navigation("Roles");
b.Navigation("Stats")
.IsRequired();
b.Navigation("SubRooms");
});
modelBuilder.Entity("DeluxeNET.Data.RoomInstance", b =>
{
b.Navigation("Heartbeats");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoom", b =>
{
b.Navigation("CurrentSave")
.IsRequired();
b.Navigation("SubRoomSaves");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,29 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace DeluxeNET.Migrations
{
/// <inheritdoc />
public partial class FixHeartbeatAddNullProperty : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<bool>(
name: "IsRoomInstanceNull",
table: "Heartbeats",
type: "tinyint(1)",
nullable: false,
defaultValue: false);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "IsRoomInstanceNull",
table: "Heartbeats");
}
}
}
+805
View File
@@ -0,0 +1,805 @@
// <auto-generated />
using System;
using DeluxeNET.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace DeluxeNET.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20260425143535_addBio")]
partial class addBio
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.11")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
modelBuilder.Entity("DeluxeNET.Data.CachedLogin", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.Property<DateTime>("lastLoginTime")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "lastLoginTime");
b.Property<int>("platform")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platform");
b.Property<string>("platformId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "platformId");
b.Property<bool>("requirePassword")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "requirePassword");
b.HasKey("Id");
b.ToTable("CachedLogins");
});
modelBuilder.Entity("DeluxeNET.Data.Heartbeat", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("AppVersion")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "appVersion");
b.Property<int>("DeviceClass")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "deviceClass");
b.Property<bool>("IsOnline")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isOnline");
b.Property<bool>("IsRoomInstanceNull")
.HasColumnType("tinyint(1)");
b.Property<DateTime>("LastOnline")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "lastOnline");
b.Property<int>("Platform")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platform");
b.Property<long>("PlayerId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "playerId");
b.Property<long?>("RoomInstanceId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "roomInstanceId");
b.Property<int>("StatusVisibility")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "statusVisibility");
b.Property<int>("VrMovementMode")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "vrMovementMode");
b.HasKey("Id");
b.HasIndex("RoomInstanceId");
b.ToTable("Heartbeats");
});
modelBuilder.Entity("DeluxeNET.Data.Room", b =>
{
b.Property<long>("RoomId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("RoomId"));
b.Property<int>("Accessibility")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Accessibility");
b.Property<bool>("CloningAllowed")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "CloningAllowed");
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "CreatedAt");
b.Property<int>("CreatorAccountId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CreatorAccountId");
b.Property<string>("CustomWarning")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "CustomWarning");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Description");
b.Property<bool>("DisableMicAutoMute")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "DisableMicAutoMute");
b.Property<bool>("DisableRoomComments")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "DisableRoomComments");
b.Property<bool>("EncryptVoiceChat")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "EncryptVoiceChat");
b.Property<string>("ImageName")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "ImageName");
b.Property<bool>("IsDeveloperOwned")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsDeveloperOwned");
b.Property<bool>("IsDorm")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsDorm");
b.Property<bool>("IsRRO")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsRRO");
b.Property<bool>("LoadScreenLocked")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "LoadScreenLocked");
b.Property<int>("MaxPlayerCalculationMode")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MaxPlayerCalculationMode");
b.Property<int>("MaxPlayers")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MaxPlayers");
b.Property<int>("MinLevel")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MinLevel");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Name");
b.Property<int>("State")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "State");
b.Property<bool>("SupportsJuniors")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsJuniors");
b.Property<bool>("SupportsLevelVoting")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsLevelVoting");
b.Property<bool>("SupportsMobile")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsMobile");
b.Property<bool>("SupportsQuest2")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsQuest2");
b.Property<bool>("SupportsScreens")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsScreens");
b.Property<bool>("SupportsTeleportVR")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsTeleportVR");
b.Property<bool>("SupportsVRLow")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsVRLow");
b.Property<bool>("SupportsWalkVR")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsWalkVR");
b.PrimitiveCollection<string>("Tags")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Tags");
b.Property<int>("Version")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Version");
b.Property<int>("WarningMask")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "WarningMask");
b.HasKey("RoomId");
b.ToTable("Rooms");
});
modelBuilder.Entity("DeluxeNET.Data.RoomInstance", b =>
{
b.Property<long>("RoomInstanceId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "roomInstanceId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("RoomInstanceId"));
b.Property<bool>("IsFull")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isFull");
b.Property<bool>("IsInProgress")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isInProgress");
b.Property<bool>("IsPrivate")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isPrivate");
b.Property<string>("Location")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "location");
b.Property<int>("MatchmakingPolicy")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "matchmakingPolicy");
b.Property<int>("MaxCapacity")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "maxCapacity");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "name");
b.Property<string>("PhotonRegion")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "photonRegion");
b.Property<string>("PhotonRegionId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "photonRegionId");
b.Property<string>("PhotonRoomId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "photonRoomId");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "roomId");
b.Property<int>("RoomInstanceType")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "roomInstanceType");
b.Property<long>("SubRoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "subRoomId");
b.HasKey("RoomInstanceId");
b.ToTable("RoomInstance");
b.HasAnnotation("Relational:JsonPropertyName", "roomInstance");
});
modelBuilder.Entity("DeluxeNET.Data.RoomRole", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("AccountId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "AccountId");
b.Property<int>("InvitedRole")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "InvitedRole");
b.Property<int>("Role")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Role");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.HasKey("Id");
b.HasIndex("RoomId");
b.ToTable("RoomRoles");
b.HasAnnotation("Relational:JsonPropertyName", "Roles");
});
modelBuilder.Entity("DeluxeNET.Data.RoomStats", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("CheerCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerCount");
b.Property<int>("FavoriteCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "FavoriteCount");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.Property<int>("VisitCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "VisitCount");
b.Property<int>("VisitorCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "VisitorCount");
b.HasKey("Id");
b.HasIndex("RoomId")
.IsUnique();
b.ToTable("RoomStats");
b.HasAnnotation("Relational:JsonPropertyName", "Stats");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoom", b =>
{
b.Property<int>("SubRoomId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SubRoomId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("SubRoomId"));
b.Property<int>("Accessibility")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Accessibility");
b.Property<bool>("IsSandbox")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsSandbox");
b.Property<int>("MaxPlayers")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MaxPlayers");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Name");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.Property<string>("UnitySceneId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "UnitySceneId");
b.HasKey("SubRoomId");
b.HasIndex("RoomId");
b.ToTable("SubRooms");
b.HasAnnotation("Relational:JsonPropertyName", "SubRooms");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoomSave", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "CreatedAt");
b.Property<string>("DataBlob")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "DataBlob");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Description");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.Property<int>("SavedByAccountId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SavedByAccountId");
b.Property<int>("SubRoomDataSaveId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SubRoomDataSaveId");
b.Property<int>("SubRoomId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SubRoomId");
b.Property<int?>("SubRoomId1")
.HasColumnType("int");
b.Property<string>("UnityAssetId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "UnityAssetId");
b.HasKey("Id");
b.HasIndex("RoomId");
b.HasIndex("SubRoomId")
.IsUnique();
b.HasIndex("SubRoomId1");
b.ToTable("SubRoomSaves");
b.HasAnnotation("Relational:JsonPropertyName", "CurrentSave");
});
modelBuilder.Entity("DeluxeNET.Data.account", b =>
{
b.Property<long>("accountId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("accountId"));
b.Property<string>("bannerImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "bannerImage");
b.Property<string>("bio")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "bio");
b.Property<DateTime>("createdAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "createdAt");
b.Property<string>("displayName")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "displayName");
b.Property<int>("identityFlags")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "identityFlags");
b.Property<bool>("isJunior")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isJunior");
b.Property<bool>("isMetaPlatformBlocked")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isMetaPlatformBlocked");
b.Property<int>("personalPronouns")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "personalPronouns");
b.Property<int>("platforms")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platforms");
b.Property<string>("profileImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "profileImage");
b.Property<string>("username")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "username");
b.HasKey("accountId");
b.ToTable("Accounts");
});
modelBuilder.Entity("DeluxeNET.Data.avatar", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("FaceFeatures")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "FaceFeatures");
b.Property<string>("HairColor")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "HairColor");
b.Property<string>("OutfitSelections")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "OutfitSelections");
b.Property<string>("SkinColor")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "SkinColor");
b.Property<long?>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Avatars");
});
modelBuilder.Entity("DeluxeNET.Data.progression", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("Level")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Level");
b.Property<long>("PlayerId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "PlayerId");
b.Property<int>("XP")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "XP");
b.HasKey("Id");
b.ToTable("Progressions");
});
modelBuilder.Entity("DeluxeNET.Data.reputation", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("CheerCreative")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerCreative");
b.Property<int>("CheerCredit")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerCredit");
b.Property<int>("CheerGeneral")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerGeneral");
b.Property<int>("CheerGreatHost")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerGreatHost");
b.Property<int>("CheerHelpful")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerHelpful");
b.Property<int>("CheerSportsman")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerSportsman");
b.Property<bool>("IsCheerful")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsCheerful");
b.Property<float>("Noteriety")
.HasColumnType("float")
.HasAnnotation("Relational:JsonPropertyName", "Noteriety");
b.Property<int>("SelectedCheer")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SelectedCheer");
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Reputations");
});
modelBuilder.Entity("DeluxeNET.Data.setting", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("Key")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Key");
b.Property<string>("Value")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Value");
b.Property<long?>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Settings");
});
modelBuilder.Entity("DeluxeNET.Data.Heartbeat", b =>
{
b.HasOne("DeluxeNET.Data.RoomInstance", "RoomInstance")
.WithMany("Heartbeats")
.HasForeignKey("RoomInstanceId")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("RoomInstance");
});
modelBuilder.Entity("DeluxeNET.Data.RoomRole", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithMany("Roles")
.HasForeignKey("RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Room");
});
modelBuilder.Entity("DeluxeNET.Data.RoomStats", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithOne("Stats")
.HasForeignKey("DeluxeNET.Data.RoomStats", "RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Room");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoom", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithMany("SubRooms")
.HasForeignKey("RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Room");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoomSave", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithMany()
.HasForeignKey("RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("DeluxeNET.Data.SubRoom", "SubRoom")
.WithOne("CurrentSave")
.HasForeignKey("DeluxeNET.Data.SubRoomSave", "SubRoomId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("DeluxeNET.Data.SubRoom", null)
.WithMany("SubRoomSaves")
.HasForeignKey("SubRoomId1");
b.Navigation("Room");
b.Navigation("SubRoom");
});
modelBuilder.Entity("DeluxeNET.Data.Room", b =>
{
b.Navigation("Roles");
b.Navigation("Stats")
.IsRequired();
b.Navigation("SubRooms");
});
modelBuilder.Entity("DeluxeNET.Data.RoomInstance", b =>
{
b.Navigation("Heartbeats");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoom", b =>
{
b.Navigation("CurrentSave")
.IsRequired();
b.Navigation("SubRoomSaves");
});
#pragma warning restore 612, 618
}
}
}
+29
View File
@@ -0,0 +1,29 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace DeluxeNET.Migrations
{
/// <inheritdoc />
public partial class addBio : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "bio",
table: "Accounts",
type: "longtext",
nullable: false)
.Annotation("MySql:CharSet", "utf8mb4");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "bio",
table: "Accounts");
}
}
}
@@ -0,0 +1,779 @@
// <auto-generated />
using System;
using DeluxeNET.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace DeluxeNET.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20260503101145_FixedHeartbeatAndRoomInstances")]
partial class FixedHeartbeatAndRoomInstances
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.11")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
modelBuilder.Entity("DeluxeNET.Data.CachedLogin", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.Property<DateTime>("lastLoginTime")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "lastLoginTime");
b.Property<int>("platform")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platform");
b.Property<string>("platformId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "platformId");
b.Property<bool>("requirePassword")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "requirePassword");
b.HasKey("Id");
b.ToTable("CachedLogins");
});
modelBuilder.Entity("DeluxeNET.Data.Heartbeat", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("AppVersion")
.IsRequired()
.HasColumnType("longtext");
b.Property<int>("DeviceClass")
.HasColumnType("int");
b.Property<bool>("IsOnline")
.HasColumnType("tinyint(1)");
b.Property<DateTime>("LastOnline")
.HasColumnType("datetime(6)");
b.Property<int>("Platform")
.HasColumnType("int");
b.Property<long>("PlayerId")
.HasColumnType("bigint");
b.Property<long?>("RoomInstanceId")
.HasColumnType("bigint");
b.Property<int>("StatusVisibility")
.HasColumnType("int");
b.Property<int>("VrMovementMode")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("RoomInstanceId");
b.ToTable("Heartbeats");
});
modelBuilder.Entity("DeluxeNET.Data.Room", b =>
{
b.Property<long>("RoomId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("RoomId"));
b.Property<int>("Accessibility")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Accessibility");
b.Property<bool>("CloningAllowed")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "CloningAllowed");
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "CreatedAt");
b.Property<int>("CreatorAccountId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CreatorAccountId");
b.Property<string>("CustomWarning")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "CustomWarning");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Description");
b.Property<bool>("DisableMicAutoMute")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "DisableMicAutoMute");
b.Property<bool>("DisableRoomComments")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "DisableRoomComments");
b.Property<bool>("EncryptVoiceChat")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "EncryptVoiceChat");
b.Property<string>("ImageName")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "ImageName");
b.Property<bool>("IsDeveloperOwned")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsDeveloperOwned");
b.Property<bool>("IsDorm")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsDorm");
b.Property<bool>("IsRRO")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsRRO");
b.Property<bool>("LoadScreenLocked")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "LoadScreenLocked");
b.Property<int>("MaxPlayerCalculationMode")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MaxPlayerCalculationMode");
b.Property<int>("MaxPlayers")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MaxPlayers");
b.Property<int>("MinLevel")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MinLevel");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Name");
b.Property<int>("State")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "State");
b.Property<bool>("SupportsJuniors")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsJuniors");
b.Property<bool>("SupportsLevelVoting")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsLevelVoting");
b.Property<bool>("SupportsMobile")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsMobile");
b.Property<bool>("SupportsQuest2")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsQuest2");
b.Property<bool>("SupportsScreens")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsScreens");
b.Property<bool>("SupportsTeleportVR")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsTeleportVR");
b.Property<bool>("SupportsVRLow")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsVRLow");
b.Property<bool>("SupportsWalkVR")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsWalkVR");
b.PrimitiveCollection<string>("Tags")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Tags");
b.Property<int>("Version")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Version");
b.Property<int>("WarningMask")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "WarningMask");
b.HasKey("RoomId");
b.ToTable("Rooms");
});
modelBuilder.Entity("DeluxeNET.Data.RoomInstance", b =>
{
b.Property<long>("RoomInstanceId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("RoomInstanceId"));
b.Property<bool>("IsFull")
.HasColumnType("tinyint(1)");
b.Property<bool>("IsInProgress")
.HasColumnType("tinyint(1)");
b.Property<bool>("IsPrivate")
.HasColumnType("tinyint(1)");
b.Property<string>("Location")
.IsRequired()
.HasColumnType("longtext");
b.Property<int>("MatchmakingPolicy")
.HasColumnType("int");
b.Property<int>("MaxCapacity")
.HasColumnType("int");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<string>("PhotonRegion")
.IsRequired()
.HasColumnType("longtext");
b.Property<string>("PhotonRegionId")
.IsRequired()
.HasColumnType("longtext");
b.Property<string>("PhotonRoomId")
.IsRequired()
.HasColumnType("longtext");
b.Property<long>("RoomId")
.HasColumnType("bigint");
b.Property<int>("RoomInstanceType")
.HasColumnType("int");
b.Property<long>("SubRoomId")
.HasColumnType("bigint");
b.HasKey("RoomInstanceId");
b.HasIndex("Name");
b.ToTable("RoomInstances");
});
modelBuilder.Entity("DeluxeNET.Data.RoomRole", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("AccountId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "AccountId");
b.Property<int>("InvitedRole")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "InvitedRole");
b.Property<int>("Role")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Role");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.HasKey("Id");
b.HasIndex("RoomId");
b.ToTable("RoomRoles");
b.HasAnnotation("Relational:JsonPropertyName", "Roles");
});
modelBuilder.Entity("DeluxeNET.Data.RoomStats", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("CheerCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerCount");
b.Property<int>("FavoriteCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "FavoriteCount");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.Property<int>("VisitCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "VisitCount");
b.Property<int>("VisitorCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "VisitorCount");
b.HasKey("Id");
b.HasIndex("RoomId")
.IsUnique();
b.ToTable("RoomStats");
b.HasAnnotation("Relational:JsonPropertyName", "Stats");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoom", b =>
{
b.Property<int>("SubRoomId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SubRoomId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("SubRoomId"));
b.Property<int>("Accessibility")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Accessibility");
b.Property<bool>("IsSandbox")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsSandbox");
b.Property<int>("MaxPlayers")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MaxPlayers");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Name");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.Property<string>("UnitySceneId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "UnitySceneId");
b.HasKey("SubRoomId");
b.HasIndex("RoomId");
b.ToTable("SubRooms");
b.HasAnnotation("Relational:JsonPropertyName", "SubRooms");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoomSave", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "CreatedAt");
b.Property<string>("DataBlob")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "DataBlob");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Description");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.Property<int>("SavedByAccountId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SavedByAccountId");
b.Property<int>("SubRoomDataSaveId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SubRoomDataSaveId");
b.Property<int>("SubRoomId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SubRoomId");
b.Property<int?>("SubRoomId1")
.HasColumnType("int");
b.Property<string>("UnityAssetId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "UnityAssetId");
b.HasKey("Id");
b.HasIndex("RoomId");
b.HasIndex("SubRoomId")
.IsUnique();
b.HasIndex("SubRoomId1");
b.ToTable("SubRoomSaves");
b.HasAnnotation("Relational:JsonPropertyName", "CurrentSave");
});
modelBuilder.Entity("DeluxeNET.Data.account", b =>
{
b.Property<long>("accountId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("accountId"));
b.Property<string>("bannerImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "bannerImage");
b.Property<string>("bio")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "bio");
b.Property<DateTime>("createdAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "createdAt");
b.Property<string>("displayName")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "displayName");
b.Property<int>("identityFlags")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "identityFlags");
b.Property<bool>("isJunior")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isJunior");
b.Property<bool>("isMetaPlatformBlocked")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isMetaPlatformBlocked");
b.Property<int>("personalPronouns")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "personalPronouns");
b.Property<int>("platforms")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platforms");
b.Property<string>("profileImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "profileImage");
b.Property<string>("username")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "username");
b.HasKey("accountId");
b.ToTable("Accounts");
});
modelBuilder.Entity("DeluxeNET.Data.avatar", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("FaceFeatures")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "FaceFeatures");
b.Property<string>("HairColor")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "HairColor");
b.Property<string>("OutfitSelections")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "OutfitSelections");
b.Property<string>("SkinColor")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "SkinColor");
b.Property<long?>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Avatars");
});
modelBuilder.Entity("DeluxeNET.Data.progression", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("Level")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Level");
b.Property<long>("PlayerId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "PlayerId");
b.Property<int>("XP")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "XP");
b.HasKey("Id");
b.ToTable("Progressions");
});
modelBuilder.Entity("DeluxeNET.Data.reputation", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("CheerCreative")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerCreative");
b.Property<int>("CheerCredit")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerCredit");
b.Property<int>("CheerGeneral")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerGeneral");
b.Property<int>("CheerGreatHost")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerGreatHost");
b.Property<int>("CheerHelpful")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerHelpful");
b.Property<int>("CheerSportsman")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerSportsman");
b.Property<bool>("IsCheerful")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsCheerful");
b.Property<float>("Noteriety")
.HasColumnType("float")
.HasAnnotation("Relational:JsonPropertyName", "Noteriety");
b.Property<int>("SelectedCheer")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SelectedCheer");
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Reputations");
});
modelBuilder.Entity("DeluxeNET.Data.setting", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("Key")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Key");
b.Property<string>("Value")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Value");
b.Property<long?>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Settings");
});
modelBuilder.Entity("DeluxeNET.Data.Heartbeat", b =>
{
b.HasOne("DeluxeNET.Data.RoomInstance", "RoomInstance")
.WithMany("Heartbeats")
.HasForeignKey("RoomInstanceId")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("RoomInstance");
});
modelBuilder.Entity("DeluxeNET.Data.RoomRole", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithMany("Roles")
.HasForeignKey("RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Room");
});
modelBuilder.Entity("DeluxeNET.Data.RoomStats", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithOne("Stats")
.HasForeignKey("DeluxeNET.Data.RoomStats", "RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Room");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoom", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithMany("SubRooms")
.HasForeignKey("RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Room");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoomSave", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithMany()
.HasForeignKey("RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("DeluxeNET.Data.SubRoom", "SubRoom")
.WithOne("CurrentSave")
.HasForeignKey("DeluxeNET.Data.SubRoomSave", "SubRoomId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("DeluxeNET.Data.SubRoom", null)
.WithMany("SubRoomSaves")
.HasForeignKey("SubRoomId1");
b.Navigation("Room");
b.Navigation("SubRoom");
});
modelBuilder.Entity("DeluxeNET.Data.Room", b =>
{
b.Navigation("Roles");
b.Navigation("Stats")
.IsRequired();
b.Navigation("SubRooms");
});
modelBuilder.Entity("DeluxeNET.Data.RoomInstance", b =>
{
b.Navigation("Heartbeats");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoom", b =>
{
b.Navigation("CurrentSave")
.IsRequired();
b.Navigation("SubRoomSaves");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,108 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace DeluxeNET.Migrations
{
/// <inheritdoc />
public partial class FixedHeartbeatAndRoomInstances : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Heartbeats_RoomInstance_RoomInstanceId",
table: "Heartbeats");
migrationBuilder.DropPrimaryKey(
name: "PK_RoomInstance",
table: "RoomInstance");
migrationBuilder.DropColumn(
name: "IsRoomInstanceNull",
table: "Heartbeats");
migrationBuilder.RenameTable(
name: "RoomInstance",
newName: "RoomInstances");
migrationBuilder.AlterColumn<string>(
name: "Name",
table: "RoomInstances",
type: "varchar(255)",
nullable: false,
oldClrType: typeof(string),
oldType: "longtext")
.Annotation("MySql:CharSet", "utf8mb4")
.OldAnnotation("MySql:CharSet", "utf8mb4");
migrationBuilder.AddPrimaryKey(
name: "PK_RoomInstances",
table: "RoomInstances",
column: "RoomInstanceId");
migrationBuilder.CreateIndex(
name: "IX_RoomInstances_Name",
table: "RoomInstances",
column: "Name");
migrationBuilder.AddForeignKey(
name: "FK_Heartbeats_RoomInstances_RoomInstanceId",
table: "Heartbeats",
column: "RoomInstanceId",
principalTable: "RoomInstances",
principalColumn: "RoomInstanceId",
onDelete: ReferentialAction.SetNull);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Heartbeats_RoomInstances_RoomInstanceId",
table: "Heartbeats");
migrationBuilder.DropPrimaryKey(
name: "PK_RoomInstances",
table: "RoomInstances");
migrationBuilder.DropIndex(
name: "IX_RoomInstances_Name",
table: "RoomInstances");
migrationBuilder.RenameTable(
name: "RoomInstances",
newName: "RoomInstance");
migrationBuilder.AddColumn<bool>(
name: "IsRoomInstanceNull",
table: "Heartbeats",
type: "tinyint(1)",
nullable: false,
defaultValue: false);
migrationBuilder.AlterColumn<string>(
name: "Name",
table: "RoomInstance",
type: "longtext",
nullable: false,
oldClrType: typeof(string),
oldType: "varchar(255)")
.Annotation("MySql:CharSet", "utf8mb4")
.OldAnnotation("MySql:CharSet", "utf8mb4");
migrationBuilder.AddPrimaryKey(
name: "PK_RoomInstance",
table: "RoomInstance",
column: "RoomInstanceId");
migrationBuilder.AddForeignKey(
name: "FK_Heartbeats_RoomInstance_RoomInstanceId",
table: "Heartbeats",
column: "RoomInstanceId",
principalTable: "RoomInstance",
principalColumn: "RoomInstanceId",
onDelete: ReferentialAction.SetNull);
}
}
}
+776
View File
@@ -0,0 +1,776 @@
// <auto-generated />
using System;
using DeluxeNET.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace DeluxeNET.Migrations
{
[DbContext(typeof(AppDbContext))]
partial class AppDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.11")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
modelBuilder.Entity("DeluxeNET.Data.CachedLogin", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.Property<DateTime>("lastLoginTime")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "lastLoginTime");
b.Property<int>("platform")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platform");
b.Property<string>("platformId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "platformId");
b.Property<bool>("requirePassword")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "requirePassword");
b.HasKey("Id");
b.ToTable("CachedLogins");
});
modelBuilder.Entity("DeluxeNET.Data.Heartbeat", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("AppVersion")
.IsRequired()
.HasColumnType("longtext");
b.Property<int>("DeviceClass")
.HasColumnType("int");
b.Property<bool>("IsOnline")
.HasColumnType("tinyint(1)");
b.Property<DateTime>("LastOnline")
.HasColumnType("datetime(6)");
b.Property<int>("Platform")
.HasColumnType("int");
b.Property<long>("PlayerId")
.HasColumnType("bigint");
b.Property<long?>("RoomInstanceId")
.HasColumnType("bigint");
b.Property<int>("StatusVisibility")
.HasColumnType("int");
b.Property<int>("VrMovementMode")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("RoomInstanceId");
b.ToTable("Heartbeats");
});
modelBuilder.Entity("DeluxeNET.Data.Room", b =>
{
b.Property<long>("RoomId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("RoomId"));
b.Property<int>("Accessibility")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Accessibility");
b.Property<bool>("CloningAllowed")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "CloningAllowed");
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "CreatedAt");
b.Property<int>("CreatorAccountId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CreatorAccountId");
b.Property<string>("CustomWarning")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "CustomWarning");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Description");
b.Property<bool>("DisableMicAutoMute")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "DisableMicAutoMute");
b.Property<bool>("DisableRoomComments")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "DisableRoomComments");
b.Property<bool>("EncryptVoiceChat")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "EncryptVoiceChat");
b.Property<string>("ImageName")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "ImageName");
b.Property<bool>("IsDeveloperOwned")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsDeveloperOwned");
b.Property<bool>("IsDorm")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsDorm");
b.Property<bool>("IsRRO")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsRRO");
b.Property<bool>("LoadScreenLocked")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "LoadScreenLocked");
b.Property<int>("MaxPlayerCalculationMode")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MaxPlayerCalculationMode");
b.Property<int>("MaxPlayers")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MaxPlayers");
b.Property<int>("MinLevel")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MinLevel");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Name");
b.Property<int>("State")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "State");
b.Property<bool>("SupportsJuniors")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsJuniors");
b.Property<bool>("SupportsLevelVoting")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsLevelVoting");
b.Property<bool>("SupportsMobile")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsMobile");
b.Property<bool>("SupportsQuest2")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsQuest2");
b.Property<bool>("SupportsScreens")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsScreens");
b.Property<bool>("SupportsTeleportVR")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsTeleportVR");
b.Property<bool>("SupportsVRLow")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsVRLow");
b.Property<bool>("SupportsWalkVR")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "SupportsWalkVR");
b.PrimitiveCollection<string>("Tags")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Tags");
b.Property<int>("Version")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Version");
b.Property<int>("WarningMask")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "WarningMask");
b.HasKey("RoomId");
b.ToTable("Rooms");
});
modelBuilder.Entity("DeluxeNET.Data.RoomInstance", b =>
{
b.Property<long>("RoomInstanceId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("RoomInstanceId"));
b.Property<bool>("IsFull")
.HasColumnType("tinyint(1)");
b.Property<bool>("IsInProgress")
.HasColumnType("tinyint(1)");
b.Property<bool>("IsPrivate")
.HasColumnType("tinyint(1)");
b.Property<string>("Location")
.IsRequired()
.HasColumnType("longtext");
b.Property<int>("MatchmakingPolicy")
.HasColumnType("int");
b.Property<int>("MaxCapacity")
.HasColumnType("int");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("varchar(255)");
b.Property<string>("PhotonRegion")
.IsRequired()
.HasColumnType("longtext");
b.Property<string>("PhotonRegionId")
.IsRequired()
.HasColumnType("longtext");
b.Property<string>("PhotonRoomId")
.IsRequired()
.HasColumnType("longtext");
b.Property<long>("RoomId")
.HasColumnType("bigint");
b.Property<int>("RoomInstanceType")
.HasColumnType("int");
b.Property<long>("SubRoomId")
.HasColumnType("bigint");
b.HasKey("RoomInstanceId");
b.HasIndex("Name");
b.ToTable("RoomInstances");
});
modelBuilder.Entity("DeluxeNET.Data.RoomRole", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("AccountId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "AccountId");
b.Property<int>("InvitedRole")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "InvitedRole");
b.Property<int>("Role")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Role");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.HasKey("Id");
b.HasIndex("RoomId");
b.ToTable("RoomRoles");
b.HasAnnotation("Relational:JsonPropertyName", "Roles");
});
modelBuilder.Entity("DeluxeNET.Data.RoomStats", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("CheerCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerCount");
b.Property<int>("FavoriteCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "FavoriteCount");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.Property<int>("VisitCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "VisitCount");
b.Property<int>("VisitorCount")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "VisitorCount");
b.HasKey("Id");
b.HasIndex("RoomId")
.IsUnique();
b.ToTable("RoomStats");
b.HasAnnotation("Relational:JsonPropertyName", "Stats");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoom", b =>
{
b.Property<int>("SubRoomId")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SubRoomId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("SubRoomId"));
b.Property<int>("Accessibility")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Accessibility");
b.Property<bool>("IsSandbox")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsSandbox");
b.Property<int>("MaxPlayers")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "MaxPlayers");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Name");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.Property<string>("UnitySceneId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "UnitySceneId");
b.HasKey("SubRoomId");
b.HasIndex("RoomId");
b.ToTable("SubRooms");
b.HasAnnotation("Relational:JsonPropertyName", "SubRooms");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoomSave", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "CreatedAt");
b.Property<string>("DataBlob")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "DataBlob");
b.Property<string>("Description")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Description");
b.Property<long>("RoomId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "RoomId");
b.Property<int>("SavedByAccountId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SavedByAccountId");
b.Property<int>("SubRoomDataSaveId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SubRoomDataSaveId");
b.Property<int>("SubRoomId")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SubRoomId");
b.Property<int?>("SubRoomId1")
.HasColumnType("int");
b.Property<string>("UnityAssetId")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "UnityAssetId");
b.HasKey("Id");
b.HasIndex("RoomId");
b.HasIndex("SubRoomId")
.IsUnique();
b.HasIndex("SubRoomId1");
b.ToTable("SubRoomSaves");
b.HasAnnotation("Relational:JsonPropertyName", "CurrentSave");
});
modelBuilder.Entity("DeluxeNET.Data.account", b =>
{
b.Property<long>("accountId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("accountId"));
b.Property<string>("bannerImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "bannerImage");
b.Property<string>("bio")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "bio");
b.Property<DateTime>("createdAt")
.HasColumnType("datetime(6)")
.HasAnnotation("Relational:JsonPropertyName", "createdAt");
b.Property<string>("displayName")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "displayName");
b.Property<int>("identityFlags")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "identityFlags");
b.Property<bool>("isJunior")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isJunior");
b.Property<bool>("isMetaPlatformBlocked")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "isMetaPlatformBlocked");
b.Property<int>("personalPronouns")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "personalPronouns");
b.Property<int>("platforms")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "platforms");
b.Property<string>("profileImage")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "profileImage");
b.Property<string>("username")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "username");
b.HasKey("accountId");
b.ToTable("Accounts");
});
modelBuilder.Entity("DeluxeNET.Data.avatar", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("FaceFeatures")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "FaceFeatures");
b.Property<string>("HairColor")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "HairColor");
b.Property<string>("OutfitSelections")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "OutfitSelections");
b.Property<string>("SkinColor")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "SkinColor");
b.Property<long?>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Avatars");
});
modelBuilder.Entity("DeluxeNET.Data.progression", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("Level")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "Level");
b.Property<long>("PlayerId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "PlayerId");
b.Property<int>("XP")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "XP");
b.HasKey("Id");
b.ToTable("Progressions");
});
modelBuilder.Entity("DeluxeNET.Data.reputation", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<int>("CheerCreative")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerCreative");
b.Property<int>("CheerCredit")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerCredit");
b.Property<int>("CheerGeneral")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerGeneral");
b.Property<int>("CheerGreatHost")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerGreatHost");
b.Property<int>("CheerHelpful")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerHelpful");
b.Property<int>("CheerSportsman")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "CheerSportsman");
b.Property<bool>("IsCheerful")
.HasColumnType("tinyint(1)")
.HasAnnotation("Relational:JsonPropertyName", "IsCheerful");
b.Property<float>("Noteriety")
.HasColumnType("float")
.HasAnnotation("Relational:JsonPropertyName", "Noteriety");
b.Property<int>("SelectedCheer")
.HasColumnType("int")
.HasAnnotation("Relational:JsonPropertyName", "SelectedCheer");
b.Property<long>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Reputations");
});
modelBuilder.Entity("DeluxeNET.Data.setting", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "Id");
MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<long>("Id"));
b.Property<string>("Key")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Key");
b.Property<string>("Value")
.IsRequired()
.HasColumnType("longtext")
.HasAnnotation("Relational:JsonPropertyName", "Value");
b.Property<long?>("accountId")
.HasColumnType("bigint")
.HasAnnotation("Relational:JsonPropertyName", "accountId");
b.HasKey("Id");
b.ToTable("Settings");
});
modelBuilder.Entity("DeluxeNET.Data.Heartbeat", b =>
{
b.HasOne("DeluxeNET.Data.RoomInstance", "RoomInstance")
.WithMany("Heartbeats")
.HasForeignKey("RoomInstanceId")
.OnDelete(DeleteBehavior.SetNull);
b.Navigation("RoomInstance");
});
modelBuilder.Entity("DeluxeNET.Data.RoomRole", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithMany("Roles")
.HasForeignKey("RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Room");
});
modelBuilder.Entity("DeluxeNET.Data.RoomStats", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithOne("Stats")
.HasForeignKey("DeluxeNET.Data.RoomStats", "RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Room");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoom", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithMany("SubRooms")
.HasForeignKey("RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Room");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoomSave", b =>
{
b.HasOne("DeluxeNET.Data.Room", "Room")
.WithMany()
.HasForeignKey("RoomId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("DeluxeNET.Data.SubRoom", "SubRoom")
.WithOne("CurrentSave")
.HasForeignKey("DeluxeNET.Data.SubRoomSave", "SubRoomId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("DeluxeNET.Data.SubRoom", null)
.WithMany("SubRoomSaves")
.HasForeignKey("SubRoomId1");
b.Navigation("Room");
b.Navigation("SubRoom");
});
modelBuilder.Entity("DeluxeNET.Data.Room", b =>
{
b.Navigation("Roles");
b.Navigation("Stats")
.IsRequired();
b.Navigation("SubRooms");
});
modelBuilder.Entity("DeluxeNET.Data.RoomInstance", b =>
{
b.Navigation("Heartbeats");
});
modelBuilder.Entity("DeluxeNET.Data.SubRoom", b =>
{
b.Navigation("CurrentSave")
.IsRequired();
b.Navigation("SubRoomSaves");
});
#pragma warning restore 612, 618
}
}
}