52 lines
2.2 KiB
C#
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
|
|
};
|
|
}
|
|
}
|
|
}
|