38 lines
1.2 KiB
Go
38 lines
1.2 KiB
Go
package services
|
|
|
|
import (
|
|
"GoMembership/internal/models"
|
|
"GoMembership/internal/repositories"
|
|
"time"
|
|
)
|
|
|
|
type MembershipService interface {
|
|
RegisterMembership(membership *models.Membership) (int64, error)
|
|
FindMembershipByUserID(userID int64) (*models.Membership, error)
|
|
RegisterSubscription(subscription *models.SubscriptionModel) (int64, error)
|
|
}
|
|
|
|
type membershipService struct {
|
|
repo repositories.MembershipRepository
|
|
subscriptionRepo repositories.SubscriptionModelsRepository
|
|
}
|
|
|
|
func NewMembershipService(repo repositories.MembershipRepository, subscriptionRepo repositories.SubscriptionModelsRepository) MembershipService {
|
|
return &membershipService{repo, subscriptionRepo}
|
|
}
|
|
|
|
func (service *membershipService) RegisterMembership(membership *models.Membership) (int64, error) {
|
|
membership.StartDate = time.Now()
|
|
return service.repo.CreateMembership(membership)
|
|
}
|
|
|
|
func (service *membershipService) FindMembershipByUserID(userID int64) (*models.Membership, error) {
|
|
return service.repo.FindMembershipByUserID(userID)
|
|
}
|
|
|
|
// Membership_Subscriptions
|
|
|
|
func (service *membershipService) RegisterSubscription(subscription *models.SubscriptionModel) (int64, error) {
|
|
return service.subscriptionRepo.CreateSubscriptionModel(subscription)
|
|
}
|