using SVSim.Database.Enums; using SVSim.Database.Models; namespace SVSim.Database.Repositories.Deck; public interface IDeckRepository { Task> GetDecks(long viewerId, Format format); /// /// Bulk-fetch viewer decks grouped by format. Returns a dict keyed by every format in /// — missing formats map to empty lists so callers don't need /// dict-existence checks. Single viewer-load, no N+1. /// Task>> GetDecksByFormats(long viewerId, IEnumerable formats); Task GetDeck(long viewerId, Format format, int deckNo); Task GetEmptyDeckNumber(long viewerId, Format format); Task UpsertDeck(long viewerId, Format format, int deckNo, Action mutate); Task DeleteDecks(long viewerId, Format format, IEnumerable deckNos); }