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) }