package client

import "net/http"

type ClientOption func(c *Client)

func WithHTTPClient(httpClient *http.Client) ClientOption {
	return func(c *Client) {
		c.client = httpClient
	}
}

func WithEndpoint(endpoint string) ClientOption {
	return func(c *Client) {
		c.endpoint = endpoint
	}
}

type InputOption func(d *InputData)

func NewInputData(opts ...InputOption) *InputData {
	data := &InputData{}
	for _, opt := range opts {
		opt(data)
	}
	return data
}

func WithTopP(topP float64) InputOption {
	return func(d *InputData) {
		d.TopP = topP
	}
}

func WithTopK(topK int) InputOption {
	return func(d *InputData) {
		d.TopK = topK
	}
}

func WithTemperature(temperature float64) InputOption {
	return func(d *InputData) {
		d.Temperature = temperature
	}
}

func WithTokens(tokens int) InputOption {
	return func(d *InputData) {
		d.Tokens = tokens
	}
}