import type { MasterContext } from "../intelligence/types";
import {
  buildDynamicVideoPrompt,
  buildDynamicVideoStoryboard,
} from "@/lib/generation/dynamic-video-prompt";
import type { BrandProfile, PostSequenceItem, Project } from "@/types/workflow";
import type { StoryContextSections } from "@/lib/generation/social-image";

/** Video Context Builder — dynamic production prompt for AI video platforms. */
export function buildVideoGenerationContext(
  master: MasterContext,
  input: {
    project: Project;
    brand: BrandProfile;
    sequenceItem: PostSequenceItem;
    caption: string;
    storySections?: StoryContextSections;
    marketingContext?: string;
    durationSeconds?: number;
  },
) {
  const videoPrompt = buildDynamicVideoPrompt({
    brand: input.brand,
    project: input.project,
    sequenceItem: input.sequenceItem,
    caption: input.caption,
    storySections: input.storySections,
    marketingContext: input.marketingContext,
    durationSeconds: input.durationSeconds,
  });

  return {
    videoIntelligence: master.video,
    storyIntelligence: master.story,
    brand: master.brand,
    videoPrompt,
    storyboard: buildDynamicVideoStoryboard(videoPrompt, {
      brand: input.brand,
      sequenceItem: input.sequenceItem,
      storySections: input.storySections,
      durationSeconds: input.durationSeconds,
    }),
    humanStoryAnchor: master.story.letterToGodBeat.title,
  };
}

export function formatVideoContextPrompt(
  ctx: ReturnType<typeof buildVideoGenerationContext>,
): string {
  return ctx.videoPrompt;
}
