package providers

import (
	"cmdb-backend/models"
	config2 "cmdb-backend/pkg/config"
	"cmdb-backend/pkg/logging"
	"cmdb-backend/pkg/utils"
	"fmt"
	openapi "github.com/alibabacloud-go/darabonba-openapi/client"
	domain "github.com/alibabacloud-go/domain-20180129/v3/client"
	util "github.com/alibabacloud-go/tea-utils/service"
	"github.com/alibabacloud-go/tea/tea"
)

func CreateClient() (client *domain.Client) {
	config := &openapi.Config{
		AccessKeyId:     tea.String(config2.GC.Vendor.AliyunAk),
		AccessKeySecret: tea.String(config2.GC.Vendor.AliyunSk),
	}
	config.Endpoint = tea.String("domain.aliyuncs.com")
	client, _ = domain.NewClient(config)
	return client
}

func AliyunGetDomainList() {
	client := CreateClient()
	queryDomainListRequest := &domain.QueryDomainListRequest{
		PageNum:  tea.Int32(1),
		PageSize: tea.Int32(30),
	}

	runtime := &util.RuntimeOptions{}
	resp, err := client.QueryDomainListWithOptions(queryDomainListRequest, runtime)
	if err != nil {
		logging.Error("err", err)
	}
	domainList := resp.Body.Data.Domain
	for _, tmp := range domainList {
		querys := &domain.QueryDomainByDomainNameRequest{
			DomainName: tmp.DomainName,
		}
		res, err := client.QueryDomainByDomainName(querys)
		if err != nil {
			logging.Error("err", err)
		}
		isIcp := 2
		process := ""
		status := *res.Body.RealNameStatus
		if status == "SUCCEED" {
			isIcp = 1
			process = *res.Body.ZhRegistrantOrganization
		}

		domain1 := models.Domain{
			Name:        *tmp.DomainName,
			Status:      *tmp.DomainAuditStatus,
			Grade:       "A",
			VendorId:    6,
			IsIcp:       isIcp,
			IcpCode:     "",
			Owner:       "",
			Remark:      "",
			Possessor:   process,
			CreateTime:  utils.Str2Time(*tmp.RegistrationDate),
			ExpiredTime: utils.Str2Time(*tmp.ExpirationDate),
		}
		fmt.Println(domain1)
		//写入数据库
		//if err = models.CreateDomainRecord(&domain1); err != nil {
		//	fmt.Println(err)
		//	logging.Error("Add domain failed !", err)
		//}
	}
}
