35 lines
1.4 KiB
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)
|
|
}
|