using System.ComponentModel.DataAnnotations; namespace DorkNet.Server.Data.Entities; public class GameRewardSelectionEntity { public long Id { get; set; } public long PlayerId { get; set; } public int RewardType { get; set; } public int GiftContext { get; set; } [MaxLength(256)] public string Message { get; set; } = string.Empty; public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime? SelectedAt { get; set; } public int? SelectedGiftDropId { get; set; } /// The three store-item ids offered as the choose-1-of-3 /// reward. Persisted so re-fetching the pending reward is stable and /// /select can grant exactly what was shown. 0 = empty slot. public long Offer1ItemId { get; set; } public long Offer2ItemId { get; set; } public long Offer3ItemId { get; set; } /// Set once the chosen item has been granted to inventory, so /// a replayed /select can't grant twice. public long GrantedItemId { get; set; } }