package bookmark import ( "context" "tercul/internal/domain" "github.com/google/uuid" ) // BookmarkQueries contains the query handlers for the bookmark aggregate. type BookmarkQueries struct { repo domain.BookmarkRepository } // NewBookmarkQueries creates a new BookmarkQueries handler. func NewBookmarkQueries(repo domain.BookmarkRepository) *BookmarkQueries { return &BookmarkQueries{repo: repo} } // Bookmark returns a bookmark by ID. func (q *BookmarkQueries) Bookmark(ctx context.Context, id uuid.UUID) (*domain.Bookmark, error) { return q.repo.GetByID(ctx, id) } // BookmarksByUserID returns all bookmarks for a user. func (q *BookmarkQueries) BookmarksByUserID(ctx context.Context, userID uuid.UUID) ([]domain.Bookmark, error) { return q.repo.ListByUserID(ctx, userID) } // BookmarksByWorkID returns all bookmarks for a work. func (q *BookmarkQueries) BookmarksByWorkID(ctx context.Context, workID uuid.UUID) ([]domain.Bookmark, error) { return q.repo.ListByWorkID(ctx, workID) }