namespace Api.Settings; public sealed class RagApiSettings { public string BaseUrl { get; set; } = "http://localhost:8081"; public string InternalApiKey { get; set; } = string.Empty; } public sealed class InternalApiSettings { public string ApiKey { get; set; } = string.Empty; public bool RequireApiKey { get; set; } = false; } public sealed class AiSettings { public string Provider { get; set; } = "OpenAI"; public OpenAiSettings OpenAI { get; set; } = new(); public OllamaSettings Ollama { get; set; } = new(); } public sealed class OpenAiSettings { public string ApiKey { get; set; } = string.Empty; public string ChatModel { get; set; } = "gpt-4o-mini"; public int TimeoutSeconds { get; set; } = 90; } public sealed class OllamaSettings { public string BaseUrl { get; set; } = "http://localhost:11434"; public string ChatModel { get; set; } = "llama3.1:8b"; public int TimeoutSeconds { get; set; } = 180; } public sealed class MatcherSettings { public int TopK { get; set; } = 10; public int DeepScoreTopN { get; set; } = 5; public int MaxJobTextChars { get; set; } = 60000; } public sealed class SmtpSettings { public string Host { get; set; } = string.Empty; public int Port { get; set; } = 587; public string Username { get; set; } = string.Empty; public string Password { get; set; } = string.Empty; public bool UseStartTls { get; set; } = true; public string FromEmail { get; set; } = "noreply@myai.ro"; public string ToEmail { get; set; } = string.Empty; }