package usecase import ( "users_management/m/model/entity" "users_management/m/repository" "github.com/google/uuid" ) type UsersUsecase interface { GetRoleByDepartment(departmentName string) (uuid.UUID, error) GetUserByUsername(username string) (entity.User, error) } type usersUsecase struct { userRepo repository.UsersRepo } func NewUsersUsecase(userRepo repository.UsersRepo) UsersUsecase { return &usersUsecase{ userRepo: userRepo, } } func (u *usersUsecase) GetRoleByDepartment(departmentName string) (uuid.UUID, error) { role, err := u.userRepo.GetRoleByDepartment(departmentName) if err != nil { return uuid.Nil, err } return role.Id, nil } func (u *usersUsecase) GetUserByUsername(username string) (entity.User, error) { users, err := u.userRepo.GetUserByUsername(username) if err != nil { return users, err } return users, nil }