package configfetcher

import (
	"net/http"

	"github.com/aws/aws-sdk-go-v2/service/s3"
)

// Option is a function that configures a fetcher.
type Option func(*FetcherConfig)

// FetcherConfig holds the configuration for a fetcher.
type FetcherConfig struct {
	S3Client   *s3.Client
	HTTPClient *http.Client
}

// WithS3Client sets the S3 client for the fetcher.
func WithS3Client(client *s3.Client) Option {
	return func(cfg *FetcherConfig) {
		cfg.S3Client = client
	}
}

// WithHTTPClient sets the HTTP client for the fetcher.
func WithHTTPClient(client *http.Client) Option {
	return func(cfg *FetcherConfig) {
		cfg.HTTPClient = client
	}
}