namespace Creative.Configuration;
///
/// Configuration for the Creative service.
/// Bound from appsettings.json section "Creative".
/// Override via environment variables: Creative__OpenAiApiKey, etc.
///
public class CreativeConfig
{
public const string SectionName = "Creative";
///
/// When false, returns emulated/mock creative assets.
/// When true, calls OpenAI and performs real URL scraping.
///
public bool EnableRealApi { get; set; } = false;
///
/// OpenAI API key for copy generation.
///
public string? OpenAiApiKey { get; set; }
///
/// OpenAI model to use. Default: gpt-4o-mini.
///
public string OpenAiModel { get; set; } = "gpt-4o-mini";
///
/// Max tokens for OpenAI responses.
///
public int OpenAiMaxTokens { get; set; } = 1000;
///
/// Timeout in seconds for URL scraping.
///
public int ScrapeTimeoutSeconds { get; set; } = 15;
///
/// Timeout in seconds for OpenAI API calls.
///
public int OpenAiTimeoutSeconds { get; set; } = 30;
// ── Image Provider ──────────────────────────────────────
///
/// Image provider: "emulated" | "unsplash" | "dalle".
/// Default: emulated (placeholder images).
///
public string ImageProvider { get; set; } = "emulated";
///
/// Unsplash Access Key (optional - basic search works without it,
/// but rate limits are generous with a free key from unsplash.com/developers).
///
public string? UnsplashAccessKey { get; set; }
///
/// Number of images to return per draft. Default: 3
/// (landscape, square, portrait for responsive display ads).
///
public int ImageCount { get; set; } = 3;
///
/// DALL-E model to use when ImageProvider=dalle.
/// Default: dall-e-3.
///
public string DalleModel { get; set; } = "dall-e-3";
///
/// DALL-E image size. Default: 1024x1024.
/// Options: 1024x1024, 1792x1024, 1024x1792.
///
public string DalleSize { get; set; } = "1024x1024";
}