package utils

import (
	"cmdb-backend/models"
	"cmdb-backend/pkg/config"
	"fmt"
	"github.com/Authing/authing-golang-sdk/v3/dto"
	"github.com/Authing/authing-golang-sdk/v3/management"
	"strings"
)

func GetAuthingUserList() {
	options := management.ManagementClientOptions{
		AccessKeyId:     config.GC.Authing.UserPollId,
		AccessKeySecret: config.GC.Authing.UserPollSecret,
		Host:            "https://console.authing.pingcap.net",
	}

	client, err := management.NewManagementClient(&options)
	if err != nil {
		fmt.Println(err)
	}

	totalUser := 0
	// 获取用户列表
	for page := 1; page < 800/50+1; page++ {
		req := &dto.ListUsersRequestDto{
			Options: dto.ListUsersOptionsDto{
				Pagination: dto.PaginationDto{
					Page:  page,
					Limit: 50,
				}},
		}
		respDto := client.ListUsers(req)
		totalUser += len(respDto.Data.List)

		for _, user := range respDto.Data.List {
			userName := strings.Split(user.Username, "@")[0]
			userInfo := models.User{
				UserId:     user.UserId,
				UserName:   userName,
				UserNameCn: user.Name,
				Status:     user.Status,
				Email:      user.Email,
				IsStaff:    1,
			}
			fmt.Println(userInfo)
			//if err := models.CreateUser(&userInfo, user.Email); err != nil {
			//	fmt.Println("[ERROR]", err)
			//}
		}
	}

	fmt.Println("totalUser:", totalUser)
}

func GetAuthingCmdbAdmin() {
	//options := management.ManagementClientOptions{
	//	AccessKeyId:     config.GC.Authing.UserPollId,
	//	AccessKeySecret: config.GC.Authing.UserPollSecret,
	//}
	//
	//client, err := management.NewManagementClient(&options)
	//if err != nil {
	//	fmt.Println(err)
	//}

}
