package bootstrap

import (
	"ai-css/library/modelprovider"
	"ai-css/library/modelprovider/config"
	"ai-css/library/modelprovider/consts"
)

type ClientOption func(*Options)

type Options struct {
	ProviderName   consts.ProviderName
	Provider       modelprovider.Provider
	ProviderConfig *config.ProviderConfig
	DefaultModel   string
}

func WithProviderName(name consts.ProviderName) ClientOption {
	return func(o *Options) {
		o.ProviderName = name
	}
}

func WithProvider(p modelprovider.Provider) ClientOption {
	return func(o *Options) {
		o.Provider = p
	}
}

func WithProviderConfig(cfg *config.ProviderConfig) ClientOption {
	return func(o *Options) {
		o.ProviderConfig = cfg
	}
}

func WithDefaultModel(model string) ClientOption {
	return func(o *Options) { o.DefaultModel = model }
}
