| 
									
										
										
										
											2025-09-01 18:29:59 +08:00
										 |  |  | 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) | 
					
						
							| 
									
										
										
										
											2025-09-01 21:15:15 +08:00
										 |  |  | 	ListArticlesForAdmin(ctx context.Context, query *queries.ListArticleQuery) ([]*entities.Article, int64, error) | 
					
						
							| 
									
										
										
										
											2025-09-01 18:29:59 +08:00
										 |  |  | 	 | 
					
						
							|  |  |  | 	// 统计方法 | 
					
						
							|  |  |  | 	CountByCategoryID(ctx context.Context, categoryID string) (int64, error) | 
					
						
							|  |  |  | 	CountByStatus(ctx context.Context, status entities.ArticleStatus) (int64, error) | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	// 更新统计信息 | 
					
						
							|  |  |  | 	IncrementViewCount(ctx context.Context, articleID string) error | 
					
						
							|  |  |  | } |