Files
VORTEX-REC-LEAK/Models/PlayerEvent.cs
T
2026-07-23 18:21:43 -07:00

52 lines
2.2 KiB
C#

using LiteDB;
using static DeluxeBackend.Enums;
namespace DeluxeBackend.Models
{
public class PlayerEvent
{
[BsonId]
public long Id { get; set; }
[BsonRef("accounts")]
public required Account Creator { get; set; }
[BsonRef("rooms")]
public required Room Room { get; set; }
[BsonRef("subrooms")]
public required SubRoom SubRoom { get; set; }
public required string Name { get; set; }
public string Description { get; set; } = string.Empty;
public string? ImageName { get; set; } = string.Empty;
public required DateTime StartTime { get; set; }
public required DateTime EndTime { get; set; }
public required RoomAccessibility Accessibility { get; set; }
public bool IsMultiInstance { get; set; } = false;
public bool SupportMultiInstanceRoomChat { get; set; } = false;
public BroadcastPerms DefaultBroadcastPermissions { get; set; } = BroadcastPerms.None;
public BroadcastPerms CanRequestBroadcastPermissions { get; set; } = BroadcastPerms.None;
public long? BroadcastingRoomInstanceId { get; set; } = null;
[BsonIgnore]
public Dictionary<string, object?> ToDictionary()
{
return new Dictionary<string, object?>()
{
["PlayerEventId"] = Id,
["CreatorPlayerId"] = Creator.Id,
["RoomId"] = Room.Id,
["SubRoomId"] = SubRoom.Id,
["Name"] = Name,
["Description"] = Description ?? "",
["ImageName"] = ImageName ?? "",
["StartTime"] = StartTime.ToUniversalTime().ToString("O"),
["EndTime"] = EndTime.ToUniversalTime().ToString("O"),
["AttendeeCount"] = -1,
["Accessibility"] = (int)Accessibility,
["IsMultiInstance"] = IsMultiInstance,
["SupportMultiInstanceRoomChat"] = SupportMultiInstanceRoomChat,
["DefaultBroadcastPermissions"] = (int)DefaultBroadcastPermissions,
["CanRequestBroadcastPermissions"] = (int)CanRequestBroadcastPermissions,
["BroadcastingRoomInstanceId"] = BroadcastingRoomInstanceId
};
}
}
}