import type { AppLocale } from "../locale";
import { DEFAULT_LOCALE } from "../locale";

export type EditorHeroTemplateMessages = {
  headline: string;
  subheadline: string;
  primaryButtonLabel: string;
};

export type EditorFeaturesTemplateMessages = {
  itemTitlePrefix: string;
  itemTitleSuffix: string;
  itemDescription: string;
};

export type EditorCtaTemplateMessages = {
  body: string;
  buttonLabel: string;
};

export type EditorFaqTemplateMessages = {
  title: string;
  subtitle: string;
  items: Array<{
    question: string;
    answer: string;
  }>;
};

export type EditorPricingTemplateMessages = {
  plans: Array<{
    name: string;
    price: string;
    popular?: boolean;
  }>;
  featuresText: string;
  primaryButtonLabel: string;
  secondaryButtonLabel: string;
};

export type EditorTeamTemplateMessages = {
  members: Array<{
    name: string;
    role: string;
    bio: string;
  }>;
};

export type EditorTestimonialsTemplateMessages = {
  items: Array<{
    body: string;
    author: string;
  }>;
};

export type EditorBlogTemplateMessages = {
  posts: Array<{
    title: string;
    summary: string;
  }>;
};

export type EditorFooterTemplateMessages = {
  description: string;
  linksText: string;
};

export type EditorTemplatesMessages = {
  hero: EditorHeroTemplateMessages;
  features: EditorFeaturesTemplateMessages;
  cta: EditorCtaTemplateMessages;
  faq: EditorFaqTemplateMessages;
  pricing: EditorPricingTemplateMessages;
  team: EditorTeamTemplateMessages;
  testimonials: EditorTestimonialsTemplateMessages;
  blog: EditorBlogTemplateMessages;
  footer: EditorFooterTemplateMessages;
};

const EDITOR_TEMPLATES_MESSAGES: Record<AppLocale, EditorTemplatesMessages> = {
  en: {
    hero: {
      headline: "Your hero headline goes here",
      subheadline: "Describe your product or service in a single, clear sentence.",
      primaryButtonLabel: "Get started now",
    },
    features: {
      itemTitlePrefix: "Feature",
      itemTitleSuffix: "",
      itemDescription: "A short description of this feature.",
    },
    cta: {
      body:
        "Write a compelling CTA message here.\nDon't hesitate to get started!",
      buttonLabel: "Call to action",
    },
    faq: {
      title: "FAQ",
      subtitle: "Frequently asked questions",
      items: [
        {
          question: "How much does the service cost?",
          answer:
            "The core features are free, and premium features are available with a monthly subscription.",
        },
        {
          question: "What is your refund policy?",
          answer:
            "If there is no usage within 7 days after purchase, you can request a full refund.",
        },
        {
          question: "Can I invite teammates?",
          answer:
            "Yes, team invitations are available on Pro plans and above.",
        },
      ],
    },
    pricing: {
      plans: [
        { name: "Basic", price: "$9/month" },
        { name: "Pro", price: "$29/month", popular: true },
        { name: "Enterprise", price: "Contact us" },
      ],
      featuresText: "• All core features\n• Email support\n• 1GB storage",
      primaryButtonLabel: "Start now",
      secondaryButtonLabel: "Choose plan",
    },
    team: {
      members: [
        {
          name: "Alex Kim",
          role: "Product Designer",
          bio: "Designs thoughtful user experiences.",
        },
        {
          name: "Jamie Lee",
          role: "Frontend Engineer",
          bio: "Builds clean, accessible UIs.",
        },
        {
          name: "Chris Park",
          role: "Backend Engineer",
          bio: "Keeps the infrastructure fast and reliable.",
        },
      ],
    },
    testimonials: {
      items: [
        {
          body: "This builder dramatically reduced the time we spend creating landing pages.",
          author: "Alex Kim",
        },
        {
          body: "Even without strong design skills, we can still launch clean, modern pages.",
          author: "Jamie Lee",
        },
        {
          body: "Our whole team is happy with this builder.",
          author: "Chris Park",
        },
      ],
    },
    blog: {
      posts: [
        {
          title: "Blog post 1",
          summary: "Write a short summary for your first post here.",
        },
        {
          title: "Blog post 2",
          summary: "Write a short summary for your second post here.",
        },
        {
          title: "Blog post 3",
          summary: "Write a short summary for your third post here.",
        },
      ],
    },
    footer: {
      description: "The best choice for building better websites.",
      linksText: "Product\nPricing\nSupport\nContact",
    },
  },
  ko: {
    hero: {
      headline: "Hero 제목을 여기에 입력하세요",
      subheadline: "제품이나 서비스를 한 문장으로 설명하는 서브텍스트입니다.",
      primaryButtonLabel: "지금 시작하기",
    },
    features: {
      itemTitlePrefix: "Feature",
      itemTitleSuffix: " 제목",
      itemDescription: "해당 기능을 간단히 설명하는 텍스트입니다.",
    },
    cta: {
      body:
        "지금 바로 행동을 유도하는 CTA 텍스트를 입력하세요.\n망설이지 말고 시작하세요!",
      buttonLabel: "CTA 버튼",
    },
    faq: {
      title: "FAQ",
      subtitle: "자주 묻는 질문",
      items: [
        {
          question: "서비스 이용료는 얼마인가요?",
          answer: "기본 기능은 무료로 제공되며, 프리미엄 기능은 월 구독료가 발생합니다.",
        },
        {
          question: "환불 정책은 어떻게 되나요?",
          answer: "결제 후 7일 이내에 사용 이력이 없는 경우 전액 환불 가능합니다.",
        },
        {
          question: "팀원 초대 기능이 있나요?",
          answer: "네, 프로 요금제 이상부터 팀원 초대가 가능합니다.",
        },
      ],
    },
    pricing: {
      plans: [
        { name: "Basic", price: "₩9,900/월" },
        { name: "Pro", price: "₩29,900/월", popular: true },
        { name: "Enterprise", price: "문의" },
      ],
      featuresText: "• 모든 기본 기능\n• 이메일 지원\n• 1GB 스토리지",
      primaryButtonLabel: "시작하기",
      secondaryButtonLabel: "선택하기",
    },
    team: {
      members: [
        {
          name: "홍길동",
          role: "Product Designer",
          bio: "사용자 경험을 설계합니다.",
        },
        {
          name: "김영희",
          role: "Frontend Engineer",
          bio: "깔끔한 UI를 구현합니다.",
        },
        {
          name: "이철수",
          role: "Backend Engineer",
          bio: "안정적인 인프라를 책임집니다.",
        },
      ],
    },
    testimonials: {
      items: [
        {
          body: "이 서비스 덕분에 랜딩 페이지 제작 시간이 크게 줄었습니다.",
          author: "홍길동",
        },
        {
          body: "디자인을 잘 못해도 깔끔한 페이지를 만들 수 있어요.",
          author: "김영희",
        },
        {
          body: "팀 전체가 만족하는 빌더입니다.",
          author: "이철수",
        },
      ],
    },
    blog: {
      posts: [
        {
          title: "블로그 포스트 1",
          summary: "첫 번째 포스트 요약을 여기에 입력하세요.",
        },
        {
          title: "블로그 포스트 2",
          summary: "두 번째 포스트 요약을 여기에 입력하세요.",
        },
        {
          title: "블로그 포스트 3",
          summary: "세 번째 포스트 요약을 여기에 입력하세요.",
        },
      ],
    },
    footer: {
      description: "더 나은 웹사이트를 위한 최고의 선택.",
      linksText: "서비스 소개\n요금제\n고객지원\n문의하기",
    },
  },
};

export function getEditorTemplatesMessages(
  locale: AppLocale | null | undefined,
): EditorTemplatesMessages {
  const key = (locale ?? DEFAULT_LOCALE) as AppLocale;
  return EDITOR_TEMPLATES_MESSAGES[key] ?? EDITOR_TEMPLATES_MESSAGES[DEFAULT_LOCALE];
}
