package sms_providers

import (
	"context"
	"fmt"

	"github.com/veypi/vbase/cfg"
)

// TencentProvider 腾讯云短信服务
type TencentProvider struct {
	secretID  string
	secretKey string
	sdkAppID  string
	signName  string
	region    string
}

// NewTencentProvider 创建腾讯云短信服务
func NewTencentProvider(config cfg.RegionConfig) (SMSProvider, error) {

	return &TencentProvider{
		secretID:  config.Key,
		secretKey: config.Secret,
		sdkAppID:  config.Endpoint,
		signName:  config.SignName,
		region:    config.Provider,
	}, nil
}

// SendSMS 发送短信
func (p *TencentProvider) SendSMS(ctx context.Context, req *SendSMSRequest) (string, error) {
	// 这里应该调用腾讯云SDK，为了示例简化处理
	// 实际实现需要集成腾讯云SMS SDK

	// 模拟发送逻辑
	if req.Phone == "" {
		return "", fmt.Errorf("phone is empty")
	}
	return "tencent-message-id-12345", nil
}

// GetName 获取服务商名称
func (p *TencentProvider) GetName() string {
	return "tencent"
}
