package config

type S1TicketScheduleWebhookControllerConfig struct {
	StartHour int      `yaml:"startHour" default:"9"`
	EndHour   int      `yaml:"endHour" default:"18"`
	Emails    []string `yaml:"emails"` // List of emails to notify
}

type WebhookControllerConfig struct {
	S1TicketScheduleEnabled bool                                      `yaml:"s1TicketScheduleEnabled" default:"false"`
	S1TicketSchedules       []S1TicketScheduleWebhookControllerConfig `yaml:"s1TicketSchedules"`
}

type RateLimitBucketConfig struct {
	RPS   float64 `yaml:"rps"`
	Burst int     `yaml:"burst"`
}

type BillingProxyRateLimitConfig struct {
	Enabled  bool                  `yaml:"enabled" default:"true"`
	APIToken RateLimitBucketConfig `yaml:"apiToken"`
	APIKey   RateLimitBucketConfig `yaml:"apiKey"`
	User     RateLimitBucketConfig `yaml:"user"`
}

type BillingProxyConfig struct {
	RateLimit BillingProxyRateLimitConfig `yaml:"rateLimit"`
}

type Controllers struct {
	Webhook      WebhookControllerConfig `yaml:"webhook"`
	BillingProxy BillingProxyConfig      `yaml:"billingProxy"`
}
