2025-10-31 17:54:29 +07:00

44 lines
1.2 KiB
Go

package service
import (
"context"
"time"
"effective_mobile_test_go_api/internal/model"
"effective_mobile_test_go_api/internal/repo"
"github.com/google/uuid"
)
type SubscriptionService struct {
repo *repo.SubscriptionRepo
}
func NewSubscriptionService(r *repo.SubscriptionRepo) *SubscriptionService {
return &SubscriptionService{repo: r}
}
func (s *SubscriptionService) Create(ctx context.Context, sub *model.Subscription) error {
return s.repo.Create(ctx, sub)
}
func (s *SubscriptionService) GetByID(ctx context.Context, id int) (*model.Subscription, error) {
return s.repo.GetByID(ctx, id)
}
func (s *SubscriptionService) Update(ctx context.Context, sub *model.Subscription) error {
return s.repo.Update(ctx, sub)
}
func (s *SubscriptionService) Delete(ctx context.Context, id int) error {
return s.repo.Delete(ctx, id)
}
func (s *SubscriptionService) List(ctx context.Context) ([]*model.Subscription, error) {
return s.repo.List(ctx)
}
func (s *SubscriptionService) SumPrice(ctx context.Context, userID *uuid.UUID, serviceName string, startPeriod, endPeriod time.Time) (int, error) {
return s.repo.SumPrice(ctx, userID, serviceName, startPeriod, endPeriod)
}