45 lines
875 B
Go
45 lines
875 B
Go
package ports
|
|
|
|
import (
|
|
"Yimaru-Backend/internal/domain"
|
|
"context"
|
|
)
|
|
|
|
type RatingStore interface {
|
|
UpsertRating(
|
|
ctx context.Context,
|
|
userID int64,
|
|
targetType domain.RatingTargetType,
|
|
targetID int64,
|
|
stars int16,
|
|
review *string,
|
|
) (domain.Rating, error)
|
|
GetRatingByUserAndTarget(
|
|
ctx context.Context,
|
|
userID int64,
|
|
targetType domain.RatingTargetType,
|
|
targetID int64,
|
|
) (domain.Rating, error)
|
|
GetRatingsByTarget(
|
|
ctx context.Context,
|
|
targetType domain.RatingTargetType,
|
|
targetID int64,
|
|
limit int32,
|
|
offset int32,
|
|
) ([]domain.Rating, error)
|
|
GetRatingSummary(
|
|
ctx context.Context,
|
|
targetType domain.RatingTargetType,
|
|
targetID int64,
|
|
) (domain.RatingSummary, error)
|
|
GetUserRatings(
|
|
ctx context.Context,
|
|
userID int64,
|
|
) ([]domain.Rating, error)
|
|
DeleteRating(
|
|
ctx context.Context,
|
|
ratingID int64,
|
|
userID int64,
|
|
) error
|
|
}
|