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) RegisterPlan(plan *models.SubscriptionModel) (int64, error) } type membershipService struct { repo repositories.MembershipRepository planRepo repositories.SubscriptionModelsRepository } func NewMembershipService(repo repositories.MembershipRepository, planRepo repositories.SubscriptionModelsRepository) MembershipService { return &membershipService{repo, planRepo} } 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_Plans func (service *membershipService) RegisterPlan(plan *models.SubscriptionModel) (int64, error) { return service.planRepo.CreateSubscriptionModel(plan) }