Files
2026-10-16 23:33:13 -07:00

51 lines
1.4 KiB
C#

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text.Json.Serialization;
using RadicadeServer.RecNet.Enums.Rooms;
namespace RadicadeServer.RecNet.Rooms
{
public class RoomInstance
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long roomInstanceId { get; set; }
public long roomId { get; set; } = 1;
public long subRoomId { get; set; } = 1;
public RoomInstanceType roomInstanceType { get; set; } = RoomInstanceType.Dormroom;
public string? location { get; set; } = "";
public string dataBlob { get; set; } = "";
public long? eventId { get; set; } = 0;
public long? clubId { get; set; } = 0;
public string? roomCode { get; set; } = "";
[NotMapped]
public string photonRegion { get; set; } = "us";
public string photonRegionId { get; set; } = "us";
public string photonRoomId { get; set; } = $"Radicade{Random.Shared.Next(232)}-{Guid.NewGuid().ToString().Replace("-", "")}";
public string name { get; set; } = "DormRoom";
public int maxCapacity { get; set; } = 4;
public bool isFull { get; set; } = false;
public bool isPrivate { get; set; } = false;
public bool isInProgress { get; set; } = false;
public bool EncryptVoiceChat { get; set; } = false;
public RoomInstance Copy() => (RoomInstance)MemberwiseClone();
}
public class FullRoomInstance : RoomInstance
{
public List<long> playerIds { get; set; } = new();
}
}