Yimaru-BackEnd/internal/ports/rating.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
}