using SVSim.Database.Common;
namespace SVSim.Database.Models;
///
/// Top-level entity for a promotional serial code. Admin inserts these directly via SQL;
/// there is no JSON seed or admin endpoint. Case-sensitive match on .
///
public class SerialCodeEntry : BaseEntity
{
/// User-typed code. Case-sensitive; unique index enforces no duplicates.
public string Code { get; set; } = string.Empty;
/// Player-facing mail body, copied onto every ViewerPresent created at redemption.
public string Message { get; set; } = string.Empty;
/// When the code becomes valid. NULL = always valid from creation.
public DateTime? StartAt { get; set; }
/// When the code expires. NULL = never expires.
public DateTime? EndAt { get; set; }
/// Admin kill-switch. False = treat as if it doesn't exist.
public bool IsEnabled { get; set; }
public List Rewards { get; set; } = new List();
}