import type { FAQItem } from "@/lib/types";

export type SeoIntentStage = "top" | "middle" | "bottom";

export type SeoPrimaryCta = {
  href: string;
  label: string;
};

export type SeoRelatedLink = {
  href: string;
  title: string;
  description: string;
};

export type ComparisonType =
  | "alternative"
  | "versus"
  | "feature"
  | "model";

export type GuideType = "problem-solving" | "strategic";

export type ComparisonScorecardRow = {
  topic: string;
  qrMaster: string;
  alternative: string;
};

export type ComparisonDecisionPoint = {
  label: string;
  winner: "qr-master" | "alternative" | "depends";
  reason: string;
};

export type ComparisonPage = {
  slug: string;
  title: string;
  description: string;
  canonicalPath: string;
  targetKeyword: string;
  comparisonType: ComparisonType;
  intentStage: SeoIntentStage;
  cluster: string;
  primaryEntity: string;
  secondaryEntity: string;
  intro: string;
  quickAnswer: string;
  scorecard: ComparisonScorecardRow[];
  decisionPoints: ComparisonDecisionPoint[];
  bestForQrMaster: string[];
  bestForAlternative: string[];
  migrationSteps: string[];
  faq: FAQItem[];
  primaryCta: SeoPrimaryCta;
  secondaryCta: SeoPrimaryCta;
  relatedLinks: SeoRelatedLink[];
};

export type GuideChecklistSection = {
  title: string;
  items: string[];
};

export type GuidePage = {
  slug: string;
  title: string;
  description: string;
  canonicalPath: string;
  targetKeyword: string;
  guideType: GuideType;
  intentStage: SeoIntentStage;
  cluster: string;
  intro: string;
  quickAnswer: string;
  symptoms?: string[];
  howToSteps: string[];
  keyTakeaways: string[];
  checklist?: GuideChecklistSection;
  faq: FAQItem[];
  primaryCta: SeoPrimaryCta;
  secondaryCta: SeoPrimaryCta;
  relatedLinks: SeoRelatedLink[];
};
