| 303 | } |
| 304 | |
| 305 | func validateAIProviderName(name string) []ValidationError { |
| 306 | var validations []ValidationError |
| 307 | switch { |
| 308 | case name == "": |
| 309 | validations = append(validations, ValidationError{Field: "name", Detail: "name is required"}) |
| 310 | case !AIProviderNameRegex.MatchString(name): |
| 311 | validations = append(validations, ValidationError{ |
| 312 | Field: "name", |
| 313 | Detail: fmt.Sprintf("name must match %s (lowercase alphanumeric, hyphens between words)", AIProviderNameRegex), |
| 314 | }) |
| 315 | } |
| 316 | return validations |
| 317 | } |
| 318 | |
| 319 | func validateRequiredAIProviderBaseURL(raw string) []ValidationError { |
| 320 | if raw == "" { |