40 lines
1.1 KiB
Go

package authsvc
import (
staffrepository "legalgo-BE-go/internal/accessor/staff"
subscriberepository "legalgo-BE-go/internal/accessor/subscribe"
subscribeplanrepository "legalgo-BE-go/internal/accessor/subscribe_plan"
userrepository "legalgo-BE-go/internal/accessor/user"
staffdomain "legalgo-BE-go/internal/domain/staff"
userdomain "legalgo-BE-go/internal/domain/user"
)
type impl struct {
staffRepo staffrepository.Staff
userRepo userrepository.User
subsRepo subscriberepository.Subscribe
subsPlanRepo subscribeplanrepository.SubscribePlan
}
type Auth interface {
LoginAsStaff(staffdomain.StaffLogin) (string, error)
RegisterStaff(staffdomain.StaffRegister) (string, error)
GetStaffProfile(string) (*staffdomain.StaffProfile, error)
GetUsers() ([]userdomain.UserProfile, error)
UpdateStaff(staffdomain.Staff) error
}
func New(
staffRepo staffrepository.Staff,
userRepo userrepository.User,
subsRepo subscriberepository.Subscribe,
subsPlanRepo subscribeplanrepository.SubscribePlan,
) Auth {
return &impl{
staffRepo: staffRepo,
userRepo: userRepo,
subsRepo: subsRepo,
subsPlanRepo: subsPlanRepo,
}
}