package main

import (
	"bytes"
	"context"
	"fmt"
	"os"
	"time"

	"github.com/break/junhong_cmp_fiber/pkg/config"
	"github.com/break/junhong_cmp_fiber/pkg/storage"
)

func main() {
	cfg, err := config.Load()
	if err != nil {
		fmt.Printf("加载配置失败: %v\n", err)
		os.Exit(1)
	}

	provider, err := storage.NewS3Provider(&cfg.Storage)
	if err != nil {
		fmt.Printf("创建 S3 Provider 失败: %v\n", err)
		os.Exit(1)
	}

	ctx := context.Background()

	testContent := "iccid,msisdn\n89860012345678901234,13800000001\n89860012345678901235,13800000002\n"
	testKey := fmt.Sprintf("test/verify-%d.csv", time.Now().Unix())

	fmt.Printf("上传文件到: %s/%s\n", cfg.Storage.S3.Bucket, testKey)

	if err := provider.Upload(ctx, testKey, bytes.NewReader([]byte(testContent)), "text/csv"); err != nil {
		fmt.Printf("上传失败: %v\n", err)
		os.Exit(1)
	}

	exists, err := provider.Exists(ctx, testKey)
	if err != nil {
		fmt.Printf("检查存在失败: %v\n", err)
		os.Exit(1)
	}

	fmt.Printf("上传完成，文件存在: %v\n", exists)
	fmt.Printf("\n请在联通云后台检查 bucket '%s' 下的文件: %s\n", cfg.Storage.S3.Bucket, testKey)
	fmt.Println("文件未删除，请手动验证后删除")
}
