mirror of
https://github.com/CannedNet/CannedNet.git
synced 2026-10-27 16:09:03 -07:00
random bullshit go
reccenter still doesnt work
This commit is contained in:
@@ -105,7 +105,7 @@ public class AppDbContext : DbContext
|
|||||||
entity.HasKey(e => e.Id);
|
entity.HasKey(e => e.Id);
|
||||||
entity.Property(e => e.Id).ValueGeneratedOnAdd();
|
entity.Property(e => e.Id).ValueGeneratedOnAdd();
|
||||||
entity.Property(e => e.OwnerAccountId).IsRequired();
|
entity.Property(e => e.OwnerAccountId).IsRequired();
|
||||||
entity.HasIndex(e => e.OwnerAccountId).IsUnique();
|
entity.HasIndex(e => new { e.OwnerAccountId, e.roomId });
|
||||||
entity.ToTable("room_instances");
|
entity.ToTable("room_instances");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,693 @@
|
|||||||
|
// <auto-generated />
|
||||||
|
using System;
|
||||||
|
using CannedNet.Data;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||||
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace CannedNet.Migrations
|
||||||
|
{
|
||||||
|
[DbContext(typeof(AppDbContext))]
|
||||||
|
[Migration("20260404002057_RemoveUniqueOwnerAccountId")]
|
||||||
|
partial class RemoveUniqueOwnerAccountId
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||||
|
{
|
||||||
|
#pragma warning disable 612, 618
|
||||||
|
modelBuilder
|
||||||
|
.HasAnnotation("ProductVersion", "8.0.0")
|
||||||
|
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
||||||
|
|
||||||
|
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||||
|
|
||||||
|
modelBuilder.Entity("CannedNet.Account", b =>
|
||||||
|
{
|
||||||
|
b.Property<int?>("AccountId")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "accountId");
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreatedAt")
|
||||||
|
.HasColumnType("timestamp with time zone")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "createdAt");
|
||||||
|
|
||||||
|
b.Property<string>("DisplayName")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "displayName");
|
||||||
|
|
||||||
|
b.Property<int?>("IdentityFlags")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "identityFlags");
|
||||||
|
|
||||||
|
b.Property<bool>("IsJunior")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "isJunior");
|
||||||
|
|
||||||
|
b.Property<int?>("PersonalPronouns")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "personalPronouns");
|
||||||
|
|
||||||
|
b.Property<int?>("Platforms")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "platforms");
|
||||||
|
|
||||||
|
b.Property<string>("ProfileImage")
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "profileImage");
|
||||||
|
|
||||||
|
b.Property<string>("Username")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "username");
|
||||||
|
|
||||||
|
b.HasKey("AccountId");
|
||||||
|
|
||||||
|
b.ToTable("accounts", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("CannedNet.AvatarItem", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<string>("AvatarItemDesc")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "avatarItemDesc");
|
||||||
|
|
||||||
|
b.Property<int>("AvatarItemType")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "avatarItemType");
|
||||||
|
|
||||||
|
b.Property<string>("FriendlyName")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "friendlyName");
|
||||||
|
|
||||||
|
b.Property<int>("OwnerAccountId")
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
b.Property<int>("PlatformMask")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "platformMask");
|
||||||
|
|
||||||
|
b.Property<int>("Rarity")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "rarity");
|
||||||
|
|
||||||
|
b.Property<string>("Tooltip")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "tooltip");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("OwnerAccountId");
|
||||||
|
|
||||||
|
b.ToTable("avatar_items", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("CannedNet.CachedLogin", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<int>("AccountId")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "accountId");
|
||||||
|
|
||||||
|
b.Property<DateTime>("LastLoginTime")
|
||||||
|
.HasColumnType("timestamp with time zone")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "lastLoginTime");
|
||||||
|
|
||||||
|
b.Property<int>("Platform")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "platform");
|
||||||
|
|
||||||
|
b.Property<string>("PlatformID")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "platformId");
|
||||||
|
|
||||||
|
b.Property<bool>("RequirePassword")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "requirePassword");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("Platform", "PlatformID")
|
||||||
|
.IsUnique();
|
||||||
|
|
||||||
|
b.ToTable("cached_logins", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("CannedNet.LoadScreen", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<string>("ImageUrl")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "imageUrl");
|
||||||
|
|
||||||
|
b.Property<bool>("IsThumbnail")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "isThumbnail");
|
||||||
|
|
||||||
|
b.Property<int>("RoomId")
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
b.Property<string>("Tooltip")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "tooltip");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("RoomId");
|
||||||
|
|
||||||
|
b.ToTable("load_screens", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("CannedNet.PlayerAvatar", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<string>("FaceFeatures")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "FaceFeatures");
|
||||||
|
|
||||||
|
b.Property<string>("HairColor")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "HairColor");
|
||||||
|
|
||||||
|
b.Property<string>("OutfitSelections")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "OutfitSelections");
|
||||||
|
|
||||||
|
b.Property<int>("OwnerAccountId")
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
b.Property<string>("SkinColor")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "SkinColor");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("OwnerAccountId")
|
||||||
|
.IsUnique();
|
||||||
|
|
||||||
|
b.ToTable("player_avatars", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("CannedNet.PlayerProgression", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<int>("Level")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "level");
|
||||||
|
|
||||||
|
b.Property<int>("PlayerId")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "playerId");
|
||||||
|
|
||||||
|
b.Property<int>("Xp")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "xp");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("PlayerId")
|
||||||
|
.IsUnique();
|
||||||
|
|
||||||
|
b.ToTable("player_progressions", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("CannedNet.PlayerSetting", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<string>("Key")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "key");
|
||||||
|
|
||||||
|
b.Property<int>("PlayerId")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "playerId");
|
||||||
|
|
||||||
|
b.Property<string>("Value")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "value");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("PlayerId", "Key")
|
||||||
|
.IsUnique();
|
||||||
|
|
||||||
|
b.ToTable("player_settings", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("CannedNet.PromoExternalContent", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<int>("RoomId")
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
b.Property<string>("Tooltip")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "tooltip");
|
||||||
|
|
||||||
|
b.Property<int>("Type")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "type");
|
||||||
|
|
||||||
|
b.Property<string>("Url")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "url");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("RoomId");
|
||||||
|
|
||||||
|
b.ToTable("promo_external_contents", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("CannedNet.PromoImage", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<string>("ImageUrl")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "imageUrl");
|
||||||
|
|
||||||
|
b.Property<int>("RoomId")
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
b.Property<int>("SortOrder")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "sortOrder");
|
||||||
|
|
||||||
|
b.Property<string>("Tooltip")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "tooltip");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("RoomId");
|
||||||
|
|
||||||
|
b.ToTable("promo_images", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("CannedNet.Room", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
b.Property<int>("Accessibility")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "accessibility");
|
||||||
|
|
||||||
|
b.Property<bool>("CloningAllowed")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "cloningAllowed");
|
||||||
|
|
||||||
|
b.Property<DateTime>("CreatedAt")
|
||||||
|
.HasColumnType("timestamp with time zone")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "createdAt");
|
||||||
|
|
||||||
|
b.Property<int>("CreatorAccountId")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "creatorAccountId");
|
||||||
|
|
||||||
|
b.Property<string>("CustomWarning")
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "customWarning");
|
||||||
|
|
||||||
|
b.Property<string>("Description")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "description");
|
||||||
|
|
||||||
|
b.Property<bool>("DisableMicAutoMute")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "disableMicAutoMute");
|
||||||
|
|
||||||
|
b.Property<bool>("DisableRoomComments")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "disableRoomComments");
|
||||||
|
|
||||||
|
b.Property<bool>("EncryptVoiceChat")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "encryptVoiceChat");
|
||||||
|
|
||||||
|
b.Property<string>("ImageName")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "imageName");
|
||||||
|
|
||||||
|
b.Property<bool>("IsDorm")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "isDorm");
|
||||||
|
|
||||||
|
b.Property<bool>("IsRRO")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "isRRO");
|
||||||
|
|
||||||
|
b.Property<int>("MinLevel")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "minLevel");
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "name");
|
||||||
|
|
||||||
|
b.Property<int>("RoomId")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "roomId");
|
||||||
|
|
||||||
|
b.Property<int>("State")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "state");
|
||||||
|
|
||||||
|
b.Property<bool>("SupportsJuniors")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "supportsJuniors");
|
||||||
|
|
||||||
|
b.Property<bool>("SupportsLevelVoting")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "supportsLevelVoting");
|
||||||
|
|
||||||
|
b.Property<bool>("SupportsMobile")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "supportsMobile");
|
||||||
|
|
||||||
|
b.Property<bool>("SupportsQuest2")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "supportsQuest2");
|
||||||
|
|
||||||
|
b.Property<bool>("SupportsScreens")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "supportsScreens");
|
||||||
|
|
||||||
|
b.Property<bool>("SupportsTeleportVR")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "supportsTeleportVR");
|
||||||
|
|
||||||
|
b.Property<bool>("SupportsVRLow")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "supportsVRLow");
|
||||||
|
|
||||||
|
b.Property<bool>("SupportsWalkVR")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "supportsWalkVR");
|
||||||
|
|
||||||
|
b.Property<string>("Tags")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "tags");
|
||||||
|
|
||||||
|
b.Property<int>("WarningMask")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "warningMask");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("CreatorAccountId");
|
||||||
|
|
||||||
|
b.ToTable("rooms", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("CannedNet.RoomInstance", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<bool>("EncryptVoiceChat")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "EncryptVoiceChat");
|
||||||
|
|
||||||
|
b.Property<int>("OwnerAccountId")
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
b.Property<int>("clubId")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "clubId");
|
||||||
|
|
||||||
|
b.Property<string>("dataBlob")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "dataBlob");
|
||||||
|
|
||||||
|
b.Property<int>("eventId")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "eventId");
|
||||||
|
|
||||||
|
b.Property<bool>("isFull")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "isFull");
|
||||||
|
|
||||||
|
b.Property<bool>("isInProgress")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "isInProgress");
|
||||||
|
|
||||||
|
b.Property<bool>("isPrivate")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "isPrivate");
|
||||||
|
|
||||||
|
b.Property<string>("location")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "location");
|
||||||
|
|
||||||
|
b.Property<int>("maxCapacity")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "maxCapacity");
|
||||||
|
|
||||||
|
b.Property<string>("name")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "name");
|
||||||
|
|
||||||
|
b.Property<string>("photonRegionId")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "photonRegionId");
|
||||||
|
|
||||||
|
b.Property<string>("photonRoomId")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "photonRoomId");
|
||||||
|
|
||||||
|
b.Property<string>("roomCode")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "roomCode");
|
||||||
|
|
||||||
|
b.Property<int>("roomId")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "roomId");
|
||||||
|
|
||||||
|
b.Property<int>("roomInstanceId")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "roomInstanceId");
|
||||||
|
|
||||||
|
b.Property<int>("roomInstanceType")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "roomInstanceType");
|
||||||
|
|
||||||
|
b.Property<int>("subRoomId")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "subRoomId");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("OwnerAccountId", "roomId");
|
||||||
|
|
||||||
|
b.ToTable("room_instances", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("CannedNet.RoomRole", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<int>("AccountId")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "accountId");
|
||||||
|
|
||||||
|
b.Property<int>("InvitedRole")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "invitedRole");
|
||||||
|
|
||||||
|
b.Property<int>("Role")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "role");
|
||||||
|
|
||||||
|
b.Property<int>("RoomId")
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("RoomId");
|
||||||
|
|
||||||
|
b.ToTable("room_roles", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("CannedNet.SavedOutfit", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<string>("FaceFeatures")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "FaceFeatures");
|
||||||
|
|
||||||
|
b.Property<string>("HairColor")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "HairColor");
|
||||||
|
|
||||||
|
b.Property<string>("OutfitSelections")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "OutfitSelections");
|
||||||
|
|
||||||
|
b.Property<int>("OwnerAccountId")
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
b.Property<string>("PreviewImageName")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "PreviewImageName");
|
||||||
|
|
||||||
|
b.Property<string>("SkinColor")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "SkinColor");
|
||||||
|
|
||||||
|
b.Property<int>("Slot")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "Slot");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("OwnerAccountId")
|
||||||
|
.IsUnique();
|
||||||
|
|
||||||
|
b.ToTable("saved_outfits", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("CannedNet.SubRoom", b =>
|
||||||
|
{
|
||||||
|
b.Property<int>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
|
||||||
|
|
||||||
|
b.Property<int>("Accessibility")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "accessibility");
|
||||||
|
|
||||||
|
b.Property<string>("DataBlob")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "dataBlob");
|
||||||
|
|
||||||
|
b.Property<DateTime>("DataSavedAt")
|
||||||
|
.HasColumnType("timestamp with time zone")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "dataSavedAt");
|
||||||
|
|
||||||
|
b.Property<bool>("IsSandbox")
|
||||||
|
.HasColumnType("boolean")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "isSandbox");
|
||||||
|
|
||||||
|
b.Property<int>("MaxPlayers")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "maxPlayers");
|
||||||
|
|
||||||
|
b.Property<string>("Name")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "name");
|
||||||
|
|
||||||
|
b.Property<int>("RoomId")
|
||||||
|
.HasColumnType("integer");
|
||||||
|
|
||||||
|
b.Property<int>("SubRoomId")
|
||||||
|
.HasColumnType("integer")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "subRoomId");
|
||||||
|
|
||||||
|
b.Property<string>("UnitySceneId")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("text")
|
||||||
|
.HasAnnotation("Relational:JsonPropertyName", "unitySceneId");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("RoomId");
|
||||||
|
|
||||||
|
b.ToTable("sub_rooms", (string)null);
|
||||||
|
});
|
||||||
|
#pragma warning restore 612, 618
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace CannedNet.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class RemoveUniqueOwnerAccountId : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropIndex(
|
||||||
|
name: "IX_room_instances_OwnerAccountId",
|
||||||
|
table: "room_instances");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_room_instances_OwnerAccountId_roomId",
|
||||||
|
table: "room_instances",
|
||||||
|
columns: new[] { "OwnerAccountId", "roomId" });
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropIndex(
|
||||||
|
name: "IX_room_instances_OwnerAccountId_roomId",
|
||||||
|
table: "room_instances");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_room_instances_OwnerAccountId",
|
||||||
|
table: "room_instances",
|
||||||
|
column: "OwnerAccountId",
|
||||||
|
unique: true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -549,8 +549,7 @@ namespace CannedNet.Migrations
|
|||||||
|
|
||||||
b.HasKey("Id");
|
b.HasKey("Id");
|
||||||
|
|
||||||
b.HasIndex("OwnerAccountId")
|
b.HasIndex("OwnerAccountId", "roomId");
|
||||||
.IsUnique();
|
|
||||||
|
|
||||||
b.ToTable("room_instances", (string)null);
|
b.ToTable("room_instances", (string)null);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -712,31 +712,23 @@ public class APIService
|
|||||||
if (room == null)
|
if (room == null)
|
||||||
return Results.NotFound();
|
return Results.NotFound();
|
||||||
|
|
||||||
var include = request.Query["include"].FirstOrDefault() ?? "";
|
var subRooms = true
|
||||||
|
|
||||||
bool includeSubRooms = include.Contains("subRooms", StringComparison.OrdinalIgnoreCase);
|
|
||||||
bool includeRoles = include.Contains("roles", StringComparison.OrdinalIgnoreCase);
|
|
||||||
bool includeLoadScreens = include.Contains("loadScreens", StringComparison.OrdinalIgnoreCase);
|
|
||||||
bool includePromoImages = include.Contains("promoImages", StringComparison.OrdinalIgnoreCase);
|
|
||||||
bool includeExternal = include.Contains("promoExternalContent", StringComparison.OrdinalIgnoreCase);
|
|
||||||
|
|
||||||
var subRooms = includeSubRooms
|
|
||||||
? await db.SubRooms.Where(x => x.RoomId == room.RoomId).ToListAsync()
|
? await db.SubRooms.Where(x => x.RoomId == room.RoomId).ToListAsync()
|
||||||
: new List<SubRoom>();
|
: new List<SubRoom>();
|
||||||
|
|
||||||
var roles = includeRoles
|
var roles = true
|
||||||
? await db.RoomRoles.Where(x => x.RoomId == room.RoomId).ToListAsync()
|
? await db.RoomRoles.Where(x => x.RoomId == room.RoomId).ToListAsync()
|
||||||
: new List<RoomRole>();
|
: new List<RoomRole>();
|
||||||
|
|
||||||
var loadScreens = includeLoadScreens
|
var loadScreens = true
|
||||||
? await db.LoadScreens.Where(x => x.RoomId == room.RoomId).ToListAsync()
|
? await db.LoadScreens.Where(x => x.RoomId == room.RoomId).ToListAsync()
|
||||||
: new List<LoadScreen>();
|
: new List<LoadScreen>();
|
||||||
|
|
||||||
var promoImages = includePromoImages
|
var promoImages = true
|
||||||
? await db.PromoImages.Where(x => x.RoomId == room.RoomId).ToListAsync()
|
? await db.PromoImages.Where(x => x.RoomId == room.RoomId).ToListAsync()
|
||||||
: new List<PromoImage>();
|
: new List<PromoImage>();
|
||||||
|
|
||||||
var external = includeExternal
|
var external = true
|
||||||
? await db.PromoExternalContents.Where(x => x.RoomId == room.RoomId).ToListAsync()
|
? await db.PromoExternalContents.Where(x => x.RoomId == room.RoomId).ToListAsync()
|
||||||
: new List<PromoExternalContent>();
|
: new List<PromoExternalContent>();
|
||||||
|
|
||||||
@@ -784,6 +776,7 @@ public class APIService
|
|||||||
SubRooms = subRooms.Select(s => new
|
SubRooms = subRooms.Select(s => new
|
||||||
{
|
{
|
||||||
s.SubRoomId,
|
s.SubRoomId,
|
||||||
|
s.RoomId,
|
||||||
s.Name,
|
s.Name,
|
||||||
s.DataBlob,
|
s.DataBlob,
|
||||||
s.IsSandbox,
|
s.IsSandbox,
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ public class CommerceService
|
|||||||
{
|
{
|
||||||
app.MapGet("/purchase/v1/hasspentmoney", (HttpRequest request) =>
|
app.MapGet("/purchase/v1/hasspentmoney", (HttpRequest request) =>
|
||||||
{
|
{
|
||||||
return "true";
|
return Results.NotFound();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -72,18 +72,6 @@ public class MatchmakingService
|
|||||||
roomData = await db.Rooms.FirstOrDefaultAsync(r => r.Name.ToLower() == roomLower);
|
roomData = await db.Rooms.FirstOrDefaultAsync(r => r.Name.ToLower() == roomLower);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (roomData == null && roomLower == "dormroom")
|
|
||||||
{
|
|
||||||
roomData = new Room
|
|
||||||
{
|
|
||||||
RoomId = 1,
|
|
||||||
Name = "DormRoom",
|
|
||||||
Description = "Your private room",
|
|
||||||
CreatorAccountId = id,
|
|
||||||
EncryptVoiceChat = false
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
if (roomData == null)
|
if (roomData == null)
|
||||||
{
|
{
|
||||||
return Results.NotFound("Room not found");
|
return Results.NotFound("Room not found");
|
||||||
@@ -95,16 +83,6 @@ public class MatchmakingService
|
|||||||
int subRoomId = subRoom?.SubRoomId ?? 0;
|
int subRoomId = subRoom?.SubRoomId ?? 0;
|
||||||
int maxCapacity = subRoom?.MaxPlayers ?? 4;
|
int maxCapacity = subRoom?.MaxPlayers ?? 4;
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(location))
|
|
||||||
{
|
|
||||||
location = "76d98498-60a1-430c-ab76-b54a29b7a163";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (subRoomId == 0)
|
|
||||||
{
|
|
||||||
subRoomId = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
var publicInstance = await db.RoomInstances
|
var publicInstance = await db.RoomInstances
|
||||||
.FirstOrDefaultAsync(r => r.roomId == roomData.RoomId && !r.isPrivate && !r.isFull);
|
.FirstOrDefaultAsync(r => r.roomId == roomData.RoomId && !r.isPrivate && !r.isFull);
|
||||||
|
|
||||||
@@ -155,7 +133,7 @@ public class MatchmakingService
|
|||||||
name = roomData.Name,
|
name = roomData.Name,
|
||||||
maxCapacity = maxCapacity,
|
maxCapacity = maxCapacity,
|
||||||
isFull = false,
|
isFull = false,
|
||||||
isPrivate = false,
|
isPrivate = roomData.RoomId == 1,
|
||||||
isInProgress = false,
|
isInProgress = false,
|
||||||
EncryptVoiceChat = roomData.EncryptVoiceChat
|
EncryptVoiceChat = roomData.EncryptVoiceChat
|
||||||
};
|
};
|
||||||
@@ -189,13 +167,11 @@ public class MatchmakingService
|
|||||||
name = instanceToUse?.name ?? roomData.Name,
|
name = instanceToUse?.name ?? roomData.Name,
|
||||||
maxCapacity = instanceToUse?.maxCapacity ?? maxCapacity,
|
maxCapacity = instanceToUse?.maxCapacity ?? maxCapacity,
|
||||||
isFull = instanceToUse?.isFull ?? false,
|
isFull = instanceToUse?.isFull ?? false,
|
||||||
isPrivate = instanceToUse?.isPrivate ?? false,
|
isPrivate = roomData.RoomId == 1 ? true : (instanceToUse?.isPrivate ?? false),
|
||||||
isInProgress = instanceToUse?.isInProgress ?? false,
|
isInProgress = instanceToUse?.isInProgress ?? false,
|
||||||
EncryptVoiceChat = instanceToUse?.EncryptVoiceChat ?? roomData.EncryptVoiceChat
|
EncryptVoiceChat = instanceToUse?.EncryptVoiceChat ?? roomData.EncryptVoiceChat
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Console.WriteLine($"[DEBUG] Full response: {System.Text.Json.JsonSerializer.Serialize(response)}");
|
|
||||||
return Results.Json(response);
|
return Results.Json(response);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -263,7 +239,10 @@ public class MatchmakingService
|
|||||||
if (heartbeat == null)
|
if (heartbeat == null)
|
||||||
heartbeat = new HeartbeatRequest();
|
heartbeat = new HeartbeatRequest();
|
||||||
|
|
||||||
var roomInstance = await db.RoomInstances.FirstOrDefaultAsync(r => r.OwnerAccountId == id);
|
var roomInstance = await db.RoomInstances
|
||||||
|
.Where(r => r.OwnerAccountId == id)
|
||||||
|
.OrderByDescending(r => r.Id)
|
||||||
|
.FirstOrDefaultAsync();
|
||||||
|
|
||||||
return Results.Json(new
|
return Results.Json(new
|
||||||
{
|
{
|
||||||
@@ -291,7 +270,7 @@ public class MatchmakingService
|
|||||||
isInProgress = roomInstance.isInProgress,
|
isInProgress = roomInstance.isInProgress,
|
||||||
EncryptVoiceChat = roomInstance.EncryptVoiceChat
|
EncryptVoiceChat = roomInstance.EncryptVoiceChat
|
||||||
} : null,
|
} : null,
|
||||||
isOnline = true,
|
isOnline = roomInstance != null && roomInstance.roomId != 1,
|
||||||
appVersion = heartbeat.appVersion ?? "",
|
appVersion = heartbeat.appVersion ?? "",
|
||||||
platform = heartbeat.platform
|
platform = heartbeat.platform
|
||||||
});
|
});
|
||||||
@@ -301,15 +280,8 @@ public class MatchmakingService
|
|||||||
// TODO ADD FUNCTIONALITY
|
// TODO ADD FUNCTIONALITY
|
||||||
return Results.Ok();
|
return Results.Ok();
|
||||||
});
|
});
|
||||||
app.MapPut("/roominstance/{id}/reportjoinresult", async (HttpRequest request, AppDbContext db) =>
|
app.MapPost("/roominstance/{id}/reportjoinresult", async (HttpRequest request, AppDbContext db) =>
|
||||||
{
|
{
|
||||||
request.EnableBuffering();
|
|
||||||
request.Body.Position = 0;
|
|
||||||
using var reader = new StreamReader(request.Body);
|
|
||||||
var body = await reader.ReadToEndAsync();
|
|
||||||
|
|
||||||
Console.WriteLine($"[DEBUG] reportjoinresult body: {body}");
|
|
||||||
|
|
||||||
return Results.Ok();
|
return Results.Ok();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user