using SVSim.Database.Models;
namespace SVSim.Database.Repositories.BuildDeck;
public interface IBuildDeckRepository
{
///
/// Load enabled series (filtered by addSeriesId when non-zero) with all owned children
/// for /build_deck/info. Series and per-series products are sorted by OrderIndex desc.
///
Task> GetEnabledCatalog(int addSeriesId);
///
/// Load a single product (with Series + Cards + Rewards + Series.SeriesRewards) by id.
/// Returns null if absent. Used by /build_deck/buy and /build_deck/get_purchase_count.
///
Task GetProduct(int productId);
///
/// Per-viewer purchase counter snapshot. Key = product_id.
///
Task> GetPurchasesForViewer(long viewerId);
///
/// Increment the (ViewerId, ProductId) purchase counter by 1 (insert if absent).
/// Returns the new total.
///
Task IncrementPurchaseCount(long viewerId, int productId);
}