package case_driver

import (
	"context"
	"os"

	. "github.com/tidbcloud/dataflow-service-e2e/internal/config"
	"github.com/tidbcloud/dataflow-service-e2e/internal/log"
	. "github.com/tidbcloud/dataflow-service-e2e/internal/model"
)

type azureBlobStorageDependency struct {
	lgr log.SimpleLogger
}

func NewAzureBlobStorageDependency(lgr log.SimpleLogger) Dependency {
	return &azureBlobStorageDependency{
		lgr: lgr,
	}
}

func (k azureBlobStorageDependency) Type() string {
	return AzureBlobStorage
}

func (k azureBlobStorageDependency) GetExistingUsableEntities() ([]DependencyEntity, error) {
	token := os.Getenv("AZURE_SAS_TOKEN")
	for _, it := range GlobalConfig.AzureBlobStorage {
		it.CreatedByDriver = false
		it.SASToken = token
	}
	return AzureBlobStorageEntities(GlobalConfig.AzureBlobStorage).ToDependencyEntities(), nil
}

func (k azureBlobStorageDependency) ProvisionEntities(_ context.Context, requirementStats EntitiesStats) (<-chan DependencyEntity, error) {
	// TODO implement me
	panic("implement me")
}

func (k azureBlobStorageDependency) Delete(entities ...DependencyEntity) error {
	// TODO implement me
	panic("implement me")
}
