namespace SaasMediaWorker.Configuration; public class WorkerSettings { public int MaxConcurrency { get; set; } = 2; public int PollIntervalSeconds { get; set; } = 2; public int MaxRetryAttempts { get; set; } = 3; public string WorkerVersion { get; set; } = "1.0.0"; } public class RedisSettings { public string ConnectionString { get; set; } = "localhost:6379"; public string QueueKey { get; set; } = "contgen:queue:video-generation"; public string ProgressChannel { get; set; } = "contgen:progress"; public string CompletionChannel { get; set; } = "contgen:completion"; } public class S3Settings { public string Endpoint { get; set; } = string.Empty; public string AccessKey { get; set; } = string.Empty; public string SecretKey { get; set; } = string.Empty; public string BucketName { get; set; } = "contgen-media"; public string Region { get; set; } = "auto"; public string PublicBaseUrl { get; set; } = string.Empty; } public class ApiSettings { public string HiggsFieldBaseUrl { get; set; } = string.Empty; public string HiggsFieldApiKey { get; set; } = string.Empty; public string TtsBaseUrl { get; set; } = string.Empty; public string TtsApiKey { get; set; } = string.Empty; public string TtsVoiceId { get; set; } = "pNInz6obpgDQGcFmaJgB"; public string SunoBaseUrl { get; set; } = string.Empty; public string SunoApiKey { get; set; } = string.Empty; public string CoreApiBaseUrl { get; set; } = "http://localhost:3000/api"; // AudioCraft — HuggingFace Inference API public string HuggingFaceApiKey { get; set; } = string.Empty; public string MusicGenModel { get; set; } = "facebook/musicgen-small"; // small (Pi-uyumlu), medium, large public string AudioGenModel { get; set; } = "facebook/audiogen-medium"; } public class FFmpegSettings { public string BinaryPath { get; set; } = "/usr/bin/ffmpeg"; public string FfprobePath { get; set; } = "/usr/bin/ffprobe"; public string TempDirectory { get; set; } = "/tmp/contgen-render"; public int MaxConcurrentRenders { get; set; } = 2; public string HardwareAcceleration { get; set; } = "none"; public string FontPath { get; set; } = "/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf"; }