package services

import (
	"git.solsynth.dev/hypernet/passport/pkg/authkit/models"
	"git.solsynth.dev/hypernet/passport/pkg/internal/database"
	"github.com/samber/lo"
)

func GetUserAccountGroup(user models.Account) ([]models.AccountGroup, error) {
	var members []models.AccountGroupMember
	if err := database.C.Where(&models.AccountGroupMember{
		AccountID: user.ID,
	}).Find(&members).Error; err != nil {
		return nil, err
	}

	var groups []models.AccountGroup
	if err := database.C.Where("id IN ?", lo.Map(members, func(item models.AccountGroupMember, index int) uint {
		return item.GroupID
	})).Find(&groups).Error; err != nil {
		return nil, err
	}

	return groups, nil
}