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;
}