feat(viewer): add FreePackClaims owned collection for daily-free quota tracking

This commit is contained in:
gamer147
2026-06-08 21:34:20 -04:00
parent d762c5766f
commit 7d7cf699f8
6 changed files with 4306 additions and 0 deletions

View File

@@ -164,6 +164,12 @@ public class SVSimDbContext : DbContext
e.HasIndex(x => new { x.PackId, x.Slot, x.Tier });
});
modelBuilder.Entity<Viewer>().OwnsMany(v => v.PackOpenCounts);
modelBuilder.Entity<Viewer>().OwnsMany(v => v.FreePackClaims, b =>
{
b.WithOwner().HasForeignKey("ViewerId");
b.HasKey("ViewerId", nameof(ViewerFreePackClaim.FreeGachaCampaignId));
b.Property(x => x.FreeGachaCampaignId).ValueGeneratedNever();
});
// OwnedCardEntry and OwnedItemEntry use composite PK (ViewerId, Id) where Id is auto-
// generated, which silently permits multiple rows per (Viewer, Card) or (Viewer, Item).