52 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package product
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"tyapi-server/internal/application/product/dto/commands"
 | |
| 	"tyapi-server/internal/application/product/dto/queries"
 | |
| 	"tyapi-server/internal/application/product/dto/responses"
 | |
| 	"tyapi-server/internal/shared/interfaces"
 | |
| )
 | |
| 
 | |
| // ProductApplicationService 产品应用服务接口
 | |
| type ProductApplicationService interface {
 | |
| 	// 产品管理
 | |
| 	CreateProduct(ctx context.Context, cmd *commands.CreateProductCommand) error
 | |
| 	UpdateProduct(ctx context.Context, cmd *commands.UpdateProductCommand) error
 | |
| 	DeleteProduct(ctx context.Context, cmd *commands.DeleteProductCommand) error
 | |
| 
 | |
| 	GetProductByID(ctx context.Context, query *queries.GetProductQuery) (*responses.ProductInfoResponse, error)
 | |
| 	ListProducts(ctx context.Context, filters map[string]interface{}, options interfaces.ListOptions) (*responses.ProductListResponse, error)
 | |
| 	ListProductsWithSubscriptionStatus(ctx context.Context, filters map[string]interface{}, options interfaces.ListOptions) (*responses.ProductListResponse, error)
 | |
| 	GetProductsByIDs(ctx context.Context, query *queries.GetProductsByIDsQuery) ([]*responses.ProductInfoResponse, error)
 | |
| 
 | |
| 	// 管理员专用方法
 | |
| 	ListProductsForAdmin(ctx context.Context, filters map[string]interface{}, options interfaces.ListOptions) (*responses.ProductAdminListResponse, error)
 | |
| 	GetProductByIDForAdmin(ctx context.Context, query *queries.GetProductDetailQuery) (*responses.ProductAdminInfoResponse, error)
 | |
| 
 | |
| 	// 用户端专用方法
 | |
| 	GetProductByIDForUser(ctx context.Context, query *queries.GetProductDetailQuery) (*responses.ProductInfoWithDocumentResponse, error)
 | |
| 
 | |
| 	// 业务查询
 | |
| 	GetSubscribableProducts(ctx context.Context, query *queries.GetSubscribableProductsQuery) ([]*responses.ProductInfoResponse, error)
 | |
| 	GetProductStats(ctx context.Context) (*responses.ProductStatsResponse, error)
 | |
| 
 | |
| 	// 组合包管理
 | |
| 	AddPackageItem(ctx context.Context, packageID string, cmd *commands.AddPackageItemCommand) error
 | |
| 	UpdatePackageItem(ctx context.Context, packageID, itemID string, cmd *commands.UpdatePackageItemCommand) error
 | |
| 	RemovePackageItem(ctx context.Context, packageID, itemID string) error
 | |
| 	ReorderPackageItems(ctx context.Context, packageID string, cmd *commands.ReorderPackageItemsCommand) error
 | |
| 	UpdatePackageItems(ctx context.Context, packageID string, cmd *commands.UpdatePackageItemsCommand) error
 | |
| 
 | |
| 	// 可选子产品查询
 | |
| 	GetAvailableProducts(ctx context.Context, query *queries.GetAvailableProductsQuery) (*responses.ProductListResponse, error)
 | |
| 
 | |
| 	// API配置管理
 | |
| 	GetProductApiConfig(ctx context.Context, productID string) (*responses.ProductApiConfigResponse, error)
 | |
| 	CreateProductApiConfig(ctx context.Context, productID string, config *responses.ProductApiConfigResponse) error
 | |
| 	UpdateProductApiConfig(ctx context.Context, configID string, config *responses.ProductApiConfigResponse) error
 | |
| 	DeleteProductApiConfig(ctx context.Context, configID string) error
 | |
| 
 | |
| 
 | |
| }
 |