Files
2026-07-23 18:21:43 -07:00

53 lines
2.1 KiB
C#

using LiteDB;
using Newtonsoft.Json.Linq;
using System.Drawing;
using static DeluxeBackend.Enums;
namespace DeluxeBackend.Models
{
public class CustomAvatarItem
{
[BsonId]
public Guid Id { get; set; }
[BsonRef("accounts")]
public required Account Creator { get; set; }
public required string Name { get; set; }
public string Description { get; set; } = string.Empty;
public required int Price { get; set; }
public bool IsFeatured { get; set; } = false;
public int? BaseAvatarItemId { get; set; }
public required Color BaseAvatarItemColor { get; set; }
public required string DesignFilename { get; set; }
public required string ThumbnailImageFilename { get; set; }
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
public DateTime ModifiedAt { get; set; } = DateTime.UtcNow;
public RoomAccessibility Accessibility { get; set; } = RoomAccessibility.Public;//i love how i just use RoomAccessibility for any accessibility
public required PreviewOrientationType PreviewOrientation { get; set; }
[BsonIgnore]
public Dictionary<string, object> ToDictionary()
{
Dictionary<string, object> data= new()
{
["CustomAvatarItemId"] = Id.ToString(),
["CreatorAccountId"] = Creator.Id,
["Name"] = Name,
["Description"] = Description ?? "",
["Price"] = Price,
["Accessibility"] = (int)Accessibility,
["IsFeatured"] = IsFeatured,
["BaseAvatarItemColor"] = $"{ColorTranslator.ToHtml(BaseAvatarItemColor)}",
["DesignFilename"] = DesignFilename,
["ThumbnailImageFilename"] = ThumbnailImageFilename,
["CreatedAt"] = CreatedAt.ToString("O"),
["ModifiedAt"] = ModifiedAt.ToString("O"),
};
if (BaseAvatarItemId.HasValue)
{
data["BaseAvatarItemId"] = BaseAvatarItemId.Value;
}
return data;
}
}
}