import type { BrandProfile, PostSequenceItem, Project } from "@/types/workflow";
import { resolveWebsiteIntelligence, type WebsiteIntelligence } from "./website-intelligence";
import {
  buildStoryContextPreview,
  getStoryArcForProject,
} from "./story-context-builder";

/** Server-only: refresh posting previews from website scrape + brand profile. */
export async function buildAllBrandContextPreviews(
  brand: BrandProfile,
  project: Project,
  posts: PostSequenceItem[],
  campaignName?: string,
  website?: WebsiteIntelligence | null,
): Promise<PostSequenceItem[]> {
  const resolvedWebsite =
    website ??
    (await resolveWebsiteIntelligence(project.id || "temp", project, brand));

  const arc = getStoryArcForProject(brand, project, resolvedWebsite);
  const name = campaignName?.trim() || project.name?.trim() || "Campaign Sequence";

  return posts.map((post, index) => {
    const beat = arc[index];
    const preview = buildStoryContextPreview(index, brand, project, name, resolvedWebsite);
    return {
      ...post,
      title: beat?.title ?? post.title,
      summary: beat?.summary ?? post.summary,
      tag: beat?.tag ?? post.tag,
      content: preview,
    };
  });
}
