using Newtonsoft.Json; using System.Collections.Generic; namespace DailyDigestWorker.Models.Gemini { public class GeminiRequestDto { [JsonProperty("contents")] public List Contents { get; set; } = new List(); // Опциональные параметры для контроля генерации [JsonProperty("generationConfig", NullValueHandling = NullValueHandling.Ignore)] public GenerationConfigDto? GenerationConfig { get; set; } // Опциональные параметры безопасности [JsonProperty("safetySettings", NullValueHandling = NullValueHandling.Ignore)] public List? SafetySettings { get; set; } } public class ContentDto { [JsonProperty("parts")] public List Parts { get; set; } = new List(); } public class PartDto { [JsonProperty("text")] public string Text { get; set; } = string.Empty; } public class GenerationConfigDto { [JsonProperty("temperature", NullValueHandling = NullValueHandling.Ignore)] public float? Temperature { get; set; } // 0.0 - 1.0 [JsonProperty("maxOutputTokens", NullValueHandling = NullValueHandling.Ignore)] public int? MaxOutputTokens { get; set; } } public class SafetySettingDto { [JsonProperty("category")] public string Category { get; set; } = string.Empty; // e.g., "HARM_CATEGORY_HARASSMENT" [JsonProperty("threshold")] public string Threshold { get; set; } = string.Empty; // e.g., "BLOCK_MEDIUM_AND_ABOVE" } }