A social knowledge tool for researchers built on ATProto
1import { Result } from '../../../../shared/core/Result'; 2import { CardId } from '../../domain/value-objects/CardId'; 3 4export interface ICardLibraryQueryService { 5 /** 6 * Get all user IDs who have this card in their library 7 */ 8 getLibrariesForCard(cardId: CardId): Promise<Result<string[]>>; 9 10 /** 11 * Get all card IDs in a user's library 12 */ 13 getCardsInLibrary(userId: string): Promise<Result<CardId[]>>; 14 15 /** 16 * Check if a specific card is in a user's library 17 */ 18 isCardInLibrary(cardId: CardId, userId: string): Promise<Result<boolean>>; 19 20 /** 21 * Get library membership count for a card 22 */ 23 getLibraryMembershipCount(cardId: CardId): Promise<Result<number>>; 24 25 /** 26 * Get total number of cards in a user's library 27 */ 28 getLibraryCardCount(userId: string): Promise<Result<number>>; 29}