// frontend/src/i18n/translations.js
export const translations = {
  en: {
    nav: {
      dashboard: 'Dashboard',
      niches: 'Niches',
      content: 'Content',
      pipeline: 'Pipeline',
      settings: 'Settings',
      billing: 'Billing',
      admin: 'Admin',
      logout: 'Log out',
    },
    auth: {
      login: 'Sign in',
      register: 'Get started',
      email: 'Email address',
      password: 'Password',
      fullName: 'Full name',
      forgotPassword: 'Forgot password?',
      noAccount: "Don't have an account?",
      hasAccount: 'Already have an account?',
      verifyEmail: 'Check your email',
      verifyDesc: "We sent a verification link to your email. Click it to activate your account.",
    },
    dashboard: {
      welcome: 'Good morning',
      trialBanner: 'Trial ends in {{days}} days.',
      upgradeCta: 'Upgrade now →',
      runPipeline: 'Run Pipeline',
      runningNow: 'Running…',
      lastRun: 'Last run',
      never: 'Never',
      scriptsGenerated: 'Scripts generated',
      postsGenerated: 'Posts generated',
      blogsGenerated: 'Blogs written',
      totalRuns: 'Total runs',
      recentContent: 'Recent content',
      viewAll: 'View all',
      noContent: 'No content yet. Run your first pipeline!',
      pipelineStatus: 'Pipeline status',
      completed: 'Completed',
      failed: 'Failed',
      running: 'Running',
      queued: 'Queued',
    },
    content: {
      title: 'Content Library',
      filter: 'Filter by type',
      all: 'All',
      script: 'Scripts',
      post: 'Posts',
      blog: 'Blog',
      newsletter: 'Newsletter',
      thumbnail: 'Thumbnails',
      clip: 'Clips',
      intel: 'Intel',
      outreach: 'Outreach',
      download: 'Download',
      preview: 'Preview',
      delete: 'Delete',
      noResults: 'No content found',
    },
    settings: {
      profile: 'Brand Profile',
      niche: 'Your niche',
      nichePlaceholder: 'e.g. fitness coaching, real estate, SaaS',
      brand: 'Brand / Channel name',
      audience: 'Target audience',
      audiencePlaceholder: 'e.g. entrepreneurs aged 25-40 who want to grow online',
      tone: 'Content tone',
      writingStyle: 'Writing style',
      personality: 'On-screen personality',
      avoidWords: 'Words to avoid (comma-separated)',
      cta: 'Call to action',
      save: 'Save changes',
      saved: 'Saved!',
      apiKeys: 'API Keys',
      addKey: 'Add key',
      testKey: 'Test',
      keyValid: 'Valid',
      keyInvalid: 'Invalid',
      keyMissing: 'Not configured',
      byokNotice: 'Your plan requires your own API keys. Keys are encrypted with AES-256.',
      starterNotice: 'Your Starter plan uses our shared AI. Upgrade to Pro to use your own API key.',
      language: 'Language',
      schedule: 'Pipeline Schedule',
      scheduleDesc: 'Your pipeline runs automatically at 6:00 AM in your timezone.',
      timezone: 'Timezone',
    },
    billing: {
      title: 'Billing',
      currentPlan: 'Current plan',
      trial: 'Trial',
      active: 'Active',
      pastDue: 'Past due',
      canceled: 'Canceled',
      renewsOn: 'Renews on',
      trialEnds: 'Trial ends',
      manage: 'Manage billing',
      upgrade: 'Upgrade plan',
      starter: 'Starter',
      pro: 'Pro',
      agency: 'Agency',
      perMonth: '/month',
      mostPopular: 'Most popular',
    },
    admin: {
      title: 'SuperAdmin',
      users: 'Users',
      overview: 'Overview',
      mrr: 'MRR',
      totalUsers: 'Total users',
      activeUsers: 'Active',
      trialUsers: 'Trial',
      totalRuns: 'Total runs',
      search: 'Search users…',
      filterStatus: 'All statuses',
      filterPlan: 'All plans',
      ban: 'Ban',
      activate: 'Activate',
      changePlan: 'Change plan',
      deleteUser: 'Delete user',
      auditLog: 'Audit log',
      confirmBan: 'Ban this user? They will lose access immediately.',
      confirmDelete: 'Permanently delete this user and all their data?',
    },
    plans: {
      starter: { name: 'Starter', desc: 'Perfect to get started' },
      pro: { name: 'Pro', desc: 'Unlimited with your own API' },
      agency: { name: 'Agency', desc: 'Run it as a service' },
    },
    common: {
      loading: 'Loading…',
      error: 'Something went wrong',
      retry: 'Retry',
      cancel: 'Cancel',
      confirm: 'Confirm',
      copy: 'Copy',
      copied: 'Copied!',
      close: 'Close',
      back: 'Back',
      next: 'Next',
      save: 'Save',
      delete: 'Delete',
      edit: 'Edit',
      view: 'View',
    }
  },

  ro: {
    nav: {
      dashboard: 'Dashboard',
      niches: 'Nișe',
      content: 'Conținut',
      pipeline: 'Pipeline',
      settings: 'Setări',
      billing: 'Facturare',
      admin: 'Admin',
      logout: 'Deconectare',
    },
    auth: {
      login: 'Autentificare',
      register: 'Începe gratuit',
      email: 'Adresă email',
      password: 'Parolă',
      fullName: 'Nume complet',
      forgotPassword: 'Ai uitat parola?',
      noAccount: 'Nu ai cont?',
      hasAccount: 'Ai deja un cont?',
      verifyEmail: 'Verifică emailul',
      verifyDesc: 'Am trimis un link de verificare. Dă click pe el pentru a-ți activa contul.',
    },
    dashboard: {
      welcome: 'Bună dimineața',
      trialBanner: 'Trial-ul expiră în {{days}} zile.',
      upgradeCta: 'Upgradează acum →',
      runPipeline: 'Rulează Pipeline',
      runningNow: 'Se rulează…',
      lastRun: 'Ultima rulare',
      never: 'Niciodată',
      scriptsGenerated: 'Scripturi generate',
      postsGenerated: 'Postări generate',
      blogsGenerated: 'Articole scrise',
      totalRuns: 'Rulări totale',
      recentContent: 'Conținut recent',
      viewAll: 'Vezi tot',
      noContent: 'Niciun conținut. Rulează primul pipeline!',
      pipelineStatus: 'Status pipeline',
      completed: 'Finalizat',
      failed: 'Eșuat',
      running: 'Se rulează',
      queued: 'În așteptare',
    },
    content: {
      title: 'Bibliotecă Conținut',
      filter: 'Filtrează după tip',
      all: 'Toate',
      script: 'Scripturi',
      post: 'Postări',
      blog: 'Blog',
      newsletter: 'Newsletter',
      thumbnail: 'Thumbnailuri',
      clip: 'Clipuri',
      intel: 'Intel',
      outreach: 'Outreach',
      download: 'Descarcă',
      preview: 'Previzualizare',
      delete: 'Șterge',
      noResults: 'Niciun conținut găsit',
    },
    settings: {
      profile: 'Profil Brand',
      niche: 'Nișa ta',
      nichePlaceholder: 'ex: coaching fitness, imobiliare, SaaS',
      brand: 'Nume brand / canal',
      audience: 'Audiență țintă',
      audiencePlaceholder: 'ex: antreprenori 25-40 ani care vor să crească online',
      tone: 'Ton conținut',
      writingStyle: 'Stil scriere',
      personality: 'Personalitate on-screen',
      avoidWords: 'Cuvinte de evitat (separate prin virgulă)',
      cta: 'Call to action',
      save: 'Salvează',
      saved: 'Salvat!',
      apiKeys: 'Chei API',
      addKey: 'Adaugă cheie',
      testKey: 'Testează',
      keyValid: 'Validă',
      keyInvalid: 'Invalidă',
      keyMissing: 'Neconfigurată',
      byokNotice: 'Planul tău necesită propriile chei API. Cheile sunt criptate AES-256.',
      starterNotice: 'Planul Starter folosește AI-ul nostru partajat. Upgradează la Pro pentru propriul API key.',
      language: 'Limbă',
      schedule: 'Program Pipeline',
      scheduleDesc: 'Pipeline-ul rulează automat la 6:00 AM în fusul tău orar.',
      timezone: 'Fus orar',
    },
    billing: {
      title: 'Facturare',
      currentPlan: 'Plan curent',
      trial: 'Trial',
      active: 'Activ',
      pastDue: 'Plată restantă',
      canceled: 'Anulat',
      renewsOn: 'Se reînnoiește pe',
      trialEnds: 'Trial expiră',
      manage: 'Gestionează facturarea',
      upgrade: 'Upgradează planul',
      starter: 'Starter',
      pro: 'Pro',
      agency: 'Agency',
      perMonth: '/lună',
      mostPopular: 'Cel mai popular',
    },
    admin: {
      title: 'SuperAdmin',
      users: 'Utilizatori',
      overview: 'Prezentare generală',
      mrr: 'MRR',
      totalUsers: 'Total utilizatori',
      activeUsers: 'Activi',
      trialUsers: 'Trial',
      totalRuns: 'Rulări totale',
      search: 'Caută utilizatori…',
      filterStatus: 'Toate statusurile',
      filterPlan: 'Toate planurile',
      ban: 'Blochează',
      activate: 'Activează',
      changePlan: 'Schimbă plan',
      deleteUser: 'Șterge utilizator',
      auditLog: 'Jurnal audit',
      confirmBan: 'Blochezi acest utilizator? Pierde accesul imediat.',
      confirmDelete: 'Ștergi permanent utilizatorul și toate datele sale?',
    },
    plans: {
      starter: { name: 'Starter', desc: 'Perfect pentru început' },
      pro: { name: 'Pro', desc: 'Nelimitat cu propriul API' },
      agency: { name: 'Agency', desc: 'Rulează-l ca serviciu' },
    },
    common: {
      loading: 'Se încarcă…',
      error: 'Ceva a mers greșit',
      retry: 'Reîncearcă',
      cancel: 'Anulează',
      confirm: 'Confirmă',
      copy: 'Copiază',
      copied: 'Copiat!',
      close: 'Închide',
      back: 'Înapoi',
      next: 'Următor',
      save: 'Salvează',
      delete: 'Șterge',
      edit: 'Editează',
      view: 'Vezi',
    }
  }
};

export function useT(locale = 'en') {
  const lang = translations[locale] || translations.en;
  return (path, vars = {}) => {
    const keys = path.split('.');
    let val = lang;
    for (const k of keys) val = val?.[k];
    if (!val) return path;
    return Object.entries(vars).reduce((s, [k, v]) => s.replace(`{{${k}}}`, v), val);
  };
}
