package repositories import ( "context" "tyapi-server/internal/domains/article/entities" "tyapi-server/internal/domains/article/repositories/queries" "tyapi-server/internal/shared/interfaces" ) // ArticleRepository 文章仓储接口 type ArticleRepository interface { interfaces.Repository[entities.Article] // 自定义查询方法 FindByAuthorID(ctx context.Context, authorID string) ([]*entities.Article, error) FindByCategoryID(ctx context.Context, categoryID string) ([]*entities.Article, error) FindByStatus(ctx context.Context, status entities.ArticleStatus) ([]*entities.Article, error) FindFeatured(ctx context.Context) ([]*entities.Article, error) Search(ctx context.Context, query *queries.SearchArticleQuery) ([]*entities.Article, int64, error) ListArticles(ctx context.Context, query *queries.ListArticleQuery) ([]*entities.Article, int64, error) ListArticlesForAdmin(ctx context.Context, query *queries.ListArticleQuery) ([]*entities.Article, int64, error) // 统计方法 CountByCategoryID(ctx context.Context, categoryID string) (int64, error) CountByStatus(ctx context.Context, status entities.ArticleStatus) (int64, error) // 更新统计信息 IncrementViewCount(ctx context.Context, articleID string) error }