using System.ComponentModel.DataAnnotations.Schema; using SVSim.Database.Common; using SVSim.Database.Enums; namespace SVSim.Database.Models; /// /// Per-card-rate fact: which card prints in which (pack, slot, tier) at what rate. /// RatePct is nullable for rate-less "Guaranteed Leader Card" rows (sampler uses /// "uniform over (pool minus owned)" in that case). /// ClassId is nullable: null means the row applies to any class draw (the default /// for non-rotation-starter packs), an integer 1..8 means the row only applies /// when the viewer selects that class. RotationStarterCardPack rows always carry /// a non-null ClassId; cards shared across multiple classes are duplicated per /// class. /// public class PackDrawCardWeightEntry : BaseEntity { [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public override long Id { get; set; } public int PackId { get; set; } public DrawSlot Slot { get; set; } public DrawTier Tier { get; set; } public int? ClassId { get; set; } public long CardId { get; set; } public double? RatePct { get; set; } public bool IsLeader { get; set; } public bool IsAltArt { get; set; } }