app-cloudep-product-service/pkg/domain/repository/product_statistics.go

35 lines
1.4 KiB
Go

package repository
import (
"context"
"code.30cm.net/digimon/app-cloudep-product-service/pkg/domain/entity"
"go.mongodb.org/mongo-driver/mongo"
)
type ProductStatisticsRepo interface {
// Create 新增一筆產品統計資料
Create(ctx context.Context, stats *entity.ProductStatistics) error
// GetByID 根據內部 ID 取得統計資料
GetByID(ctx context.Context, id string) (*entity.ProductStatistics, error)
// GetByProductID 根據產品 ID 取得統計資料
GetByProductID(ctx context.Context, productID string) (*entity.ProductStatistics, error)
// IncOrders 新增訂單數
IncOrders(ctx context.Context, productID string, count int64) error
// DecOrders 減少訂單數。-> 退貨時專用
DecOrders(ctx context.Context, productID string, count int64) error
// UpdateAverageRating 只更新綜合評價及其更新時間
UpdateAverageRating(ctx context.Context, productID string, averageRating float64) error
// IncFansCount 新增粉絲數
IncFansCount(ctx context.Context, productID string, fansCount uint64) error
// DecFansCount 減少粉絲數。-> 退貨時專用
DecFansCount(ctx context.Context, productID string, fansCount uint64) error
// Delete 刪除統計資料
Delete(ctx context.Context, id string) error
ProductStatisticsIndex
}
type ProductStatisticsIndex interface {
Index20250317001UP(ctx context.Context) (*mongo.Cursor, error)
}