namespace SVSim.Database.Models; /// /// One row per grant emitted by InventoryTransaction.CommitAsync. Rendered as the /// histories[] array on POST /item_acquire_history/info. Capped at 300 rows /// per viewer; oldest pruned on commit. /// public sealed class ViewerAcquireHistoryEntry { public long Id { get; set; } public long ViewerId { get; set; } /// UserGoodsType cast to int; matches the wire reward_type. public int RewardType { get; set; } /// Detail id for the goods; 0 for wallet currencies. public long RewardDetailId { get; set; } /// Delta granted in this row — NOT a post-state total. public int RewardCount { get; set; } /// GrantSource cast to int; matches the wire acquire_type. public int AcquireType { get; set; } /// Pre-localized text the client renders verbatim. Capped at 64 chars. public string Message { get; set; } = string.Empty; /// Server UTC at commit time. Stamped once per CommitAsync, identical across all rows in that commit. public DateTime AcquireTime { get; set; } }