package dnsprovider

import (
	"context"
	"fmt"

	"github.com/libdns/libdns"
)

// AliyunProvider 阿里云 DNS 服务商实现
// 注意：由于网络问题，github.com/libdns/aliyun 暂时无法下载
// 此实现为占位代码，待网络恢复后需要安装并适配真实的 libdns/aliyun 库
type AliyunProvider struct {
	domain string
}

// NewAliyunProvider 创建阿里云 DNS 服务商实例
func NewAliyunProvider(config ProviderConfig) (*AliyunProvider, error) {
	if config.AccessKeyID == "" || config.AccessKeySecret == "" {
		return nil, fmt.Errorf("AccessKey ID 和 Secret 不能为空")
	}

	// TODO: 安装 github.com/libdns/aliyun 后，替换为真实实现
	// provider := &aliyun.Provider{
	// 	AccessKeyID:     config.AccessKeyID,
	// 	AccessKeySecret: config.AccessKeySecret,
	// }

	return &AliyunProvider{
		domain: config.Domain,
	}, fmt.Errorf("阿里云 DNS 服务商暂未支持，请稍后重试")
}

// AppendRecords 添加 DNS 记录
func (p *AliyunProvider) AppendRecords(ctx context.Context, zone string, recs []libdns.Record) ([]libdns.Record, error) {
	return nil, fmt.Errorf("未实现")
}

// SetRecords 设置 DNS 记录（会覆盖现有记录）
func (p *AliyunProvider) SetRecords(ctx context.Context, zone string, recs []libdns.Record) ([]libdns.Record, error) {
	return nil, fmt.Errorf("未实现")
}

// GetRecords 获取 DNS 记录
func (p *AliyunProvider) GetRecords(ctx context.Context, zone string) ([]libdns.Record, error) {
	return nil, fmt.Errorf("未实现")
}

// DeleteRecords 删除 DNS 记录
func (p *AliyunProvider) DeleteRecords(ctx context.Context, zone string, recs []libdns.Record) ([]libdns.Record, error) {
	return nil, fmt.Errorf("未实现")
}
