package role

import (
	"context"

	"github.com/tidbcloud/account/internel/dao/apikey"
	entity "github.com/tidbcloud/account/internel/dao/entity"
	"github.com/tidbcloud/account/internel/dao/rbac"
	"gorm.io/gorm"
)

var rbacDao = rbac.NewRbacDao()
var apiKeyDao = apikey.NewApiKeyDao()

func ConvertOriginRole2RbacRoleID(tx *gorm.DB, originRole string) uint64 {
	var rbacRoleID uint64 = 0
	rbacRole, _ := rbacDao.GetRbacRoleByName(context.Background(), tx, originRole)
	if rbacRole != nil {
		rbacRoleID = rbacRole.ID.Uint64()
	}
	return rbacRoleID
}

func ConvertRbacRoleID2OriginRole(tx *gorm.DB, rbacRoleID uint64) string {
	var originRole = ""
	rbacRole, _ := rbacDao.GetRbacRoleByID(context.Background(), tx, rbacRoleID)
	if rbacRole != nil {
		originRole = rbacRole.Name
	}
	return originRole
}

func GetApiKeyEntity(ctx context.Context, tx *gorm.DB, apiKeyID uint64) (*entity.ApiKey, error) {
	return apiKeyDao.GetApiKeyByID(ctx, tx, apiKeyID)
}
