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}