using System.ComponentModel.DataAnnotations; namespace DorkNet.Server.Data.Entities; /// /// Per-player dorm state. Decouples each player's dorm save bytes from /// the canonical RoomEntity row at RoomId=1 (which is shared /// across every dorm visit and would otherwise leak one player's save /// into every other player's dorm). /// /// One row per account that has ever entered their dorm. Created on the /// first /api/rooms/v4/details/1 hit and updated whenever the /// player saves their dorm via Maker Pen. /// public class DormStateEntity { /// The owning account id. Primary key — one dorm state row /// per player. [Key] public long PlayerId { get; set; } /// Blob name for the player's most recent dorm save. Format /// dorm_p<accountId>_v<n>.dat; matches the /// stored when the upload /// landed. Empty string before the player has saved. [MaxLength(128)] public string CurrentDataBlobName { get; set; } = string.Empty; public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; }