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