/** Video generation config — FFmpeg slideshow (open-source, no cloud video API). */

export type VideoProviderMode = "ffmpeg" | "off";

export function getVideoProviderMode(): VideoProviderMode {
  const raw = process.env.VIDEO_PROVIDER?.trim().toLowerCase();
  return raw === "ffmpeg" ? "ffmpeg" : "off";
}

export function getVideoConfig() {
  const duration = Number(process.env.VIDEO_DURATION_SECONDS ?? 15);
  return {
    enabled: getVideoProviderMode() === "ffmpeg",
    provider: getVideoProviderMode(),
    durationSeconds: Number.isFinite(duration) && duration > 0 ? duration : 15,
    width: Number(process.env.VIDEO_WIDTH ?? 1080),
    height: Number(process.env.VIDEO_HEIGHT ?? 1920),
    ffmpegPath: process.env.FFMPEG_PATH?.trim() || "ffmpeg",
    youtubePrivacy:
      (process.env.YOUTUBE_VIDEO_PRIVACY?.trim().toLowerCase() as
        | "public"
        | "private"
        | "unlisted") || "unlisted",
  };
}

export function getPublicVideoConfig() {
  const cfg = getVideoConfig();
  return {
    videoProvider: cfg.enabled ? "ffmpeg (5-screen story slides from brand context)" : "off",
    durationSeconds: cfg.durationSeconds,
    resolution: `${cfg.width}x${cfg.height}`,
  };
}
