#!/usr/bin/env node

/**
 * Seed Test Jobs Script
 *
 * Creates realistic test jobs in Supabase for careers page testing
 *
 * Usage: node scripts/seed-test-jobs.js
 */

const { createClient } = require('@supabase/supabase-js');
const dotenv = require('dotenv');
const path = require('path');

// Load environment variables
dotenv.config({ path: path.join(__dirname, '..', '.env.local') });

const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL;
const supabaseServiceKey = process.env.SUPABASE_SERVICE_ROLE_KEY;

if (!supabaseUrl || !supabaseServiceKey) {
  console.error('❌ Missing Supabase credentials');
  console.error('Please set NEXT_PUBLIC_SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY in .env.local');
  process.exit(1);
}

const supabase = createClient(supabaseUrl, supabaseServiceKey);

const testJobs = [
  {
    slug: 'senior-fullstack-developer',
    title: { en: 'Senior Full-Stack Developer', ar: 'مطور ويب متكامل أول' },
    department: 'engineering',
    departmentLabel: { en: 'Engineering', ar: 'الهندسة' },
    location: { en: 'Remote (GCC Region)', ar: 'عن بُعد (منطقة الخليج)' },
    contractType: 'full-time',
    contractTypeLabel: { en: 'Full-time', ar: 'دوام كامل' },
    level: 'senior',
    levelLabel: { en: 'Senior', ar: 'أول' },
    salary: { en: '$120,000 - $160,000 per year', ar: '120,000 - 160,000 دولار سنويًا' },
    benefits: {
      en: ['Comprehensive health insurance', 'Remote-first work', 'Annual learning budget ($3,000)', 'Stock options', 'Flexible hours', '25 days PTO'],
      ar: ['تأمين صحي شامل', 'عمل عن بُعد', 'ميزانية تعليمية (3,000 دولار)', 'خيارات أسهم', 'ساعات مرنة', 'إجازة 25 يومًا'],
    },
    skills: {
      en: ['TypeScript & JavaScript', 'React & Next.js 14', 'Node.js & Express', 'PostgreSQL & Prisma', 'APIs & GraphQL', 'Git & CI/CD', 'Docker & Kubernetes'],
      ar: ['تايب سكريبت وجافا سكريبت', 'رياكت ونكست جي إس', 'نود جي إس وإكسبرس', 'بوستجريس وبريزما', 'APIs وGraphQL', 'جت وCI/CD', 'دوكر وكوبرنيتس'],
    },
    requirements: {
      en: ['5+ years full-stack experience', 'Expert in React/JavaScript', 'Strong Node.js skills', 'Database design', 'Cloud platforms (AWS/GCP/Azure)', 'Problem-solving abilities', 'Strong English communication'],
      ar: ['خبرة 5 سنوات+ تطوير متكامل', 'خبرة متقدمة رياكت/جافا سكريبت', 'مهارات قوية نود جي إس', 'تصميم قواعد بيانات', 'منصات سحابة', 'قدرات حل مشكلات', 'تواصل إنجليزي قوي'],
    },
    responsibilities: {
      en: ['Design and implement new features', 'Build scalable APIs', 'Optimize database queries', 'Write clean, tested code', 'Collaborate with product team', 'Mentor junior developers', 'Participate in architecture decisions'],
      ar: ['تصميم وتنفيذ ميزات جديدة', 'بناء APIs قابلة للتوسع', 'تحسين استعلامات قاعدة البيانات', 'كتابة كود نظيف ومختبر', 'التعاون مع فريق المنتج', 'إرشاد مطورين مبتدئين', 'المشاركة في قرارات الهندسة'],
    },
    niceToHave: {
      en: ['Arabic/RTL interface experience', 'Open-source contributions', 'Real-time features (WebSockets)', 'Microservices architecture', 'Healthcare/SaaS experience'],
      ar: ['خبرة واجهات عربية/RTL', 'مساهمات مفتوحة المصدر', 'ميزات فورية (WebSockets)', 'هندسة خدمات صغيرة', 'خبرة رعاية صحية/SaaS'],
    },
    workday: {
      en: ['Daily standup 9 AM GST', 'Sprint planning biweekly', 'Code reviews & pair programming', 'Team retrospectives', 'Focus time (2-4 PM)'],
      ar: ['اجتماع يومي 9 صباحًا', 'تخطيط سبرنت كل أسبوعين', 'مراجعات كود وبرمجة زوجية', 'استعراضات فريق', 'وقت تركيز (2-4 مساءً)'],
    },
    instructions: {
      en: 'Submit resume and cover letter. Include GitHub profile and portfolio.',
      ar: 'أرسل سيرتك ورسالة تغطية. قم بتضمين GitHub ومحفظة أعمالك.',
    },
    openingDaysAgo: 5,
    closingDaysFromNow: 60,
  },
  {
    slug: 'product-manager',
    title: { en: 'Product Manager', ar: 'مدير منتج' },
    department: 'product',
    departmentLabel: { en: 'Product', ar: 'المنتج' },
    location: { en: 'Doha, Qatar (Hybrid)', ar: 'الدوحة، قطر (هجين)' },
    contractType: 'full-time',
    contractTypeLabel: { en: 'Full-time', ar: 'دوام كامل' },
    level: 'mid',
    levelLabel: { en: 'Mid-level', ar: 'متوسط الخبرة' },
    salary: { en: '$90,000 - $130,000 per year', ar: '90,000 - 130,000 دولار سنويًا' },
    benefits: {
      en: ['Health & dental insurance', 'Hybrid work (3 days office)', 'Professional development', 'Performance bonuses', 'Company retreats', 'Gym membership'],
      ar: ['تأمين صحي وأسنان', 'عمل هجين (3 أيام مكتب)', 'تطوير مهني', 'مكافآت أداء', 'رحلات شركة', 'عضوية نادي رياضي'],
    },
    skills: {
      en: ['Product strategy', 'User research', 'Agile/Scrum', 'Stakeholder management', 'SaaS products', 'UI/UX principles', 'Bilingual (AR/EN)'],
      ar: ['استراتيجية منتج', 'بحث مستخدم', 'Agile/Scrum', 'إدارة أصحاب مصلحة', 'منتجات SaaS', 'مبادئ UI/UX', 'ثنائي اللغة'],
    },
    requirements: {
      en: ['3-5 years product management', 'Proven product launches', 'B2B SaaS experience', 'Fluent Arabic & English', 'GCC market knowledge', 'Strong analytical skills'],
      ar: ['خبرة 3-5 سنوات إدارة منتجات', 'إطلاقات منتجات مثبتة', 'خبرة B2B SaaS', 'طلاقة عربية وإنجليزية', 'معرفة سوق الخليج', 'مهارات تحليلية قوية'],
    },
    responsibilities: {
      en: ['Define product vision', 'Conduct user interviews', 'Prioritize features', 'Work with engineering', 'Track KPIs', 'Collaborate with sales/marketing', 'Present updates to stakeholders'],
      ar: ['تحديد رؤية المنتج', 'إجراء مقابلات مستخدمين', 'تحديد أولويات', 'العمل مع الهندسة', 'تتبع KPIs', 'التعاون مع المبيعات/التسويق', 'تقديم تحديثات'],
    },
    niceToHave: {
      en: ['MBA or business degree', 'Healthcare tech experience', 'Product certifications (CSPO, CPO)', 'Data analytics tools', 'SQL skills'],
      ar: ['ماجستير إدارة أعمال', 'خبرة تقنية رعاية صحية', 'شهادات منتج', 'أدوات تحليل بيانات', 'مهارات SQL'],
    },
    workday: {
      en: ['Product planning Monday mornings', 'Customer calls & interviews', 'Sprint demos biweekly', 'Cross-functional collaboration', 'Weekly metrics review'],
      ar: ['تخطيط منتج صباح الاثنين', 'مكالمات ومقابلات عملاء', 'عروض سبرنت', 'تعاون متعدد الوظائف', 'مراجعة مقاييس أسبوعية'],
    },
    instructions: {
      en: 'Apply with resume and cover letter describing your product philosophy and GCC market experience.',
      ar: 'قدم مع سيرتك ورسالة تصف فلسفتك في المنتج وخبرتك في سوق الخليج.',
    },
    openingDaysAgo: 3,
    closingDaysFromNow: 45,
  },
  {
    slug: 'uiux-designer',
    title: { en: 'UI/UX Designer', ar: 'مصمم واجهات وتجربة مستخدم' },
    department: 'design',
    departmentLabel: { en: 'Design', ar: 'التصميم' },
    location: { en: 'Dubai, UAE', ar: 'دبي، الإمارات' },
    contractType: 'full-time',
    contractTypeLabel: { en: 'Full-time', ar: 'دوام كامل' },
    level: 'mid',
    levelLabel: { en: 'Mid-level', ar: 'متوسط الخبرة' },
    salary: { en: '$70,000 - $100,000 per year', ar: '70,000 - 100,000 دولار سنويًا' },
    benefits: {
      en: ['Medical & dental coverage', 'Creative workspace Dubai', 'Latest design tools', 'Conferences & workshops', 'Visa sponsorship', 'Annual bonus'],
      ar: ['تغطية طبية وأسنان', 'مساحة عمل إبداعية دبي', 'أحدث أدوات تصميم', 'مؤتمرات وورش', 'كفالة تأشيرة', 'مكافأة سنوية'],
    },
    skills: {
      en: ['Figma & Adobe Suite', 'User research', 'Prototyping & wireframing', 'Design systems', 'WCAG accessibility', 'Mobile-first design', 'RTL & Arabic typography'],
      ar: ['فيجما وAdobe', 'بحث مستخدم', 'نماذج أولية', 'أنظمة تصميم', 'إمكانية وصول WCAG', 'تصميم يركز على الهاتف', 'طباعة RTL وعربية'],
    },
    requirements: {
      en: ['3+ years UI/UX design', 'Portfolio demonstrating mobile/web design', 'Arabic & English interface design', 'User-centered design understanding', 'Figma proficiency', 'Excellent visual design'],
      ar: ['خبرة 3 سنوات+ UI/UX', 'محفظة تُظهر تصميم هاتف/ويب', 'تصميم واجهات عربية وإنجليزية', 'فهم تصميم مرتكز على المستخدم', 'إتقان فيجما', 'تصميم بصري ممتاز'],
    },
    responsibilities: {
      en: ['Create intuitive UI', 'Conduct user research', 'Design wireframes/mockups', 'Maintain design system', 'Collaborate with developers', 'Present to stakeholders', 'Ensure accessibility'],
      ar: ['إنشاء UI بديهية', 'إجراء بحث مستخدم', 'تصميم إطارات ونماذج', 'صيانة نظام تصميم', 'التعاون مع مطورين', 'التقديم لأصحاب مصلحة', 'ضمان إمكانية الوصول'],
    },
    niceToHave: {
      en: ['Motion design/animation', 'Design tokens', 'React components knowledge', 'Healthcare UX', 'Illustration/icon design'],
      ar: ['تصميم حركة/رسوم متحركة', 'رموز تصميم', 'معرفة مكونات رياكت', 'UX رعاية صحية', 'تصميم رسوم/أيقونات'],
    },
    workday: {
      en: ['Design reviews (Mon/Thu)', 'User testing sessions', 'Product/engineering collaboration', 'Design system updates', 'Portfolio presentations'],
      ar: ['مراجعات تصميم (اثنين/خميس)', 'جلسات اختبار مستخدم', 'تعاون منتج/هندسة', 'تحديثات نظام تصميم', 'عروض محفظة'],
    },
    instructions: {
      en: 'Submit portfolio (required), resume, and brief design process description.',
      ar: 'أرسل محفظة أعمالك (مطلوبة)، سيرتك، ووصف موجز لعملية التصميم.',
    },
    openingDaysAgo: 7,
    closingDaysFromNow: 30,
  },
  {
    slug: 'devops-engineer',
    title: { en: 'DevOps Engineer', ar: 'مهندس DevOps' },
    department: 'engineering',
    departmentLabel: { en: 'Engineering', ar: 'الهندسة' },
    location: { en: 'Remote (GCC Time Zone)', ar: 'عن بُعد (توقيت الخليج)' },
    contractType: 'full-time',
    contractTypeLabel: { en: 'Full-time', ar: 'دوام كامل' },
    level: 'senior',
    levelLabel: { en: 'Senior', ar: 'أول' },
    salary: { en: '$110,000 - $150,000 per year', ar: '110,000 - 150,000 دولار سنويًا' },
    benefits: {
      en: ['Health benefits', 'Remote flexible hours', 'Certification support', 'Cloud credits', 'On-call compensation', 'Equipment budget'],
      ar: ['مزايا صحية', 'عمل عن بُعد مرن', 'دعم شهادات', 'أرصدة سحابية', 'تعويض استدعاء', 'ميزانية معدات'],
    },
    skills: {
      en: ['AWS/GCP/Azure', 'Docker & Kubernetes', 'Terraform & IaC', 'CI/CD (GitHub Actions)', 'Monitoring (Datadog/Grafana)', 'Linux admin', 'Scripting (Bash/Python)'],
      ar: ['AWS/GCP/Azure', 'دوكر وكوبرنيتس', 'Terraform وIaC', 'CI/CD', 'مراقبة (Datadog/Grafana)', 'إدارة لينكس', 'برمجة نصية'],
    },
    requirements: {
      en: ['5+ years DevOps/SRE', 'Cloud infrastructure expertise', 'Production system management', 'Security best practices', 'High-availability systems', 'Problem-solving under pressure'],
      ar: ['خبرة 5 سنوات+ DevOps/SRE', 'خبرة بنية سحابية', 'إدارة أنظمة إنتاج', 'أفضل ممارسات أمان', 'أنظمة عالية توفر', 'حل مشكلات تحت ضغط'],
    },
    responsibilities: {
      en: ['Manage cloud infrastructure', 'Build CI/CD pipelines', 'Monitor performance', 'Implement security', 'Automate tasks', 'Respond to incidents', 'Document procedures'],
      ar: ['إدارة بنية سحابية', 'بناء خطوط CI/CD', 'مراقبة أداء', 'تنفيذ أمان', 'أتمتة مهام', 'الاستجابة لحوادث', 'توثيق إجراءات'],
    },
    niceToHave: {
      en: ['GitOps (ArgoCD/Flux)', 'Service mesh (Istio)', 'Multi-region deployments', 'Cost optimization', 'DevOps community contributions'],
      ar: ['GitOps', 'شبكة خدمات (Istio)', 'نشر متعدد المناطق', 'تحسين تكاليف', 'مساهمات مجتمع DevOps'],
    },
    workday: {
      en: ['Infrastructure planning', 'On-call (1 week/month)', 'Incident post-mortems', 'Automation development', 'Security audits'],
      ar: ['تخطيط بنية تحتية', 'استدعاء (أسبوع/شهر)', 'تحليل حوادث', 'تطوير أتمتة', 'تدقيق أمان'],
    },
    instructions: {
      en: 'Send resume with infrastructure examples you\'ve built or managed.',
      ar: 'أرسل سيرتك مع أمثلة بنية تحتية قمت ببنائها أو إدارتها.',
    },
    openingDaysAgo: 10,
    closingDaysFromNow: 60,
  },
  {
    slug: 'customer-success-manager',
    title: { en: 'Customer Success Manager', ar: 'مدير نجاح العملاء' },
    department: 'customer-success',
    departmentLabel: { en: 'Customer Success', ar: 'نجاح العملاء' },
    location: { en: 'Riyadh, Saudi Arabia', ar: 'الرياض، السعودية' },
    contractType: 'full-time',
    contractTypeLabel: { en: 'Full-time', ar: 'دوام كامل' },
    level: 'mid',
    levelLabel: { en: 'Mid-level', ar: 'متوسط الخبرة' },
    salary: { en: '$60,000 - $85,000 + commissions', ar: '60,000 - 85,000 دولار + عمولات' },
    benefits: {
      en: ['Health insurance', 'Sales commissions', 'Relocation assistance', 'Professional development', 'Team events', 'Mobile allowance'],
      ar: ['تأمين صحي', 'عمولات مبيعات', 'مساعدة انتقال', 'تطوير مهني', 'فعاليات فريق', 'بدل هاتف'],
    },
    skills: {
      en: ['Customer relationship management', 'SaaS product knowledge', 'Data analysis', 'Account management', 'Fluent Arabic/English', 'CRM tools (Salesforce/HubSpot)'],
      ar: ['إدارة علاقات عملاء', 'معرفة منتجات SaaS', 'تحليل بيانات', 'إدارة حسابات', 'طلاقة عربية/إنجليزية', 'أدوات CRM'],
    },
    requirements: {
      en: ['2-4 years customer success', 'B2B SaaS environment', 'Customer retention proven', 'Native Arabic speaker', 'GCC business culture', 'Presentation skills', 'Data-driven approach'],
      ar: ['خبرة 2-4 سنوات نجاح عملاء', 'بيئة B2B SaaS', 'احتفاظ بعملاء مثبت', 'متحدث عربي أصلي', 'ثقافة أعمال خليجية', 'مهارات عرض', 'نهج قائم على بيانات'],
    },
    responsibilities: {
      en: ['Onboard new customers', 'Build stakeholder relationships', 'Identify expansion opportunities', 'Conduct training/webinars', 'Monitor health metrics', 'Handle escalations', 'Gather product feedback'],
      ar: ['تأهيل عملاء جدد', 'بناء علاقات', 'تحديد فرص توسع', 'إجراء تدريب', 'مراقبة مقاييس صحة', 'معالجة تصعيدات', 'جمع ملاحظات منتج'],
    },
    niceToHave: {
      en: ['Healthcare industry', 'Customer success certification', 'Technical background', 'Appointment booking systems', 'Public speaking'],
      ar: ['صناعة رعاية صحية', 'شهادة نجاح عملاء', 'خلفية تقنية', 'أنظمة حجز مواعيد', 'خطابة عامة'],
    },
    workday: {
      en: ['Customer calls & check-ins', 'Onboarding sessions', 'Training webinars', 'Quarterly business reviews', 'Team collaboration'],
      ar: ['مكالمات ومتابعات عملاء', 'جلسات تأهيل', 'ندوات تدريبية', 'مراجعات ربع سنوية', 'تعاون فريق'],
    },
    instructions: {
      en: 'Apply with resume and cover letter on your customer success philosophy.',
      ar: 'قدم مع سيرتك ورسالة عن فلسفتك في نجاح العملاء.',
    },
    openingDaysAgo: 2,
    closingDaysFromNow: 90,
  },
  {
    slug: 'junior-frontend-developer',
    title: { en: 'Junior Frontend Developer', ar: 'مطور واجهات أمامية مبتدئ' },
    department: 'engineering',
    departmentLabel: { en: 'Engineering', ar: 'الهندسة' },
    location: { en: 'Remote', ar: 'عن بُعد' },
    contractType: 'full-time',
    contractTypeLabel: { en: 'Full-time', ar: 'دوام كامل' },
    level: 'junior',
    levelLabel: { en: 'Junior', ar: 'مبتدئ' },
    salary: { en: '$50,000 - $70,000 per year', ar: '50,000 - 70,000 دولار سنويًا' },
    benefits: {
      en: ['Health insurance', 'Remote work', 'Mentorship program', 'Learning budget ($1,500)', 'Career growth path', 'Team activities'],
      ar: ['تأمين صحي', 'عمل عن بُعد', 'برنامج إرشاد', 'ميزانية تعليمية (1,500 دولار)', 'مسار نمو', 'أنشطة فريق'],
    },
    skills: {
      en: ['HTML/CSS/JavaScript', 'React fundamentals', 'Responsive design', 'Git', 'Browser dev tools', 'Basic TypeScript', 'REST API'],
      ar: ['HTML/CSS/JavaScript', 'أساسيات رياكت', 'تصميم متجاوب', 'جت', 'أدوات المطور', 'تايب سكريبت أساسي', 'REST API'],
    },
    requirements: {
      en: ['1-2 years frontend experience', 'CS degree or equivalent', 'Web project portfolio', 'Modern web standards', 'Eagerness to learn', 'Team player'],
      ar: ['خبرة 1-2 سنة واجهات', 'درجة CS أو ما يعادلها', 'محفظة مشاريع ويب', 'معايير ويب حديثة', 'حماس للتعلم', 'لاعب فريق'],
    },
    responsibilities: {
      en: ['Build React components', 'Implement responsive designs', 'Write clean code', 'Participate in reviews', 'Fix bugs', 'Learn from seniors', 'Contribute to docs'],
      ar: ['بناء مكونات رياكت', 'تنفيذ تصاميم متجاوبة', 'كتابة كود نظيف', 'المشاركة في مراجعات', 'إصلاح أخطاء', 'التعلم من الأكبر', 'المساهمة في توثيق'],
    },
    niceToHave: {
      en: ['Next.js experience', 'Tailwind CSS', 'Testing (Jest/Testing Library)', 'Arabic language', 'Design eye'],
      ar: ['خبرة Next.js', 'Tailwind CSS', 'اختبار (Jest/Testing Library)', 'لغة عربية', 'عين تصميمية'],
    },
    workday: {
      en: ['Daily standup 9:30 AM', 'Pair programming with seniors', 'Weekly learning sessions', 'Sprint reviews', 'Self-paced learning time'],
      ar: ['اجتماع يومي 9:30 صباحًا', 'برمجة زوجية مع أكبر', 'جلسات تعليمية أسبوعية', 'مراجعات سبرنت', 'وقت تعلم ذاتي'],
    },
    instructions: {
      en: 'Submit resume, GitHub profile, and portfolio of your best work.',
      ar: 'أرسل سيرتك، ملف GitHub، ومحفظة أفضل أعمالك.',
    },
    openingDaysAgo: 1,
    closingDaysFromNow: 30,
  },
];

async function seedJobs() {
  console.log('🌱 Starting test jobs seeding...\n');

  let successCount = 0;
  let skipCount = 0;
  let errorCount = 0;

  for (const job of testJobs) {
    try {
      const now = new Date();
      const openingAt = new Date(now.getTime() - job.openingDaysAgo * 86400000).toISOString();
      const closingAt = new Date(now.getTime() + job.closingDaysFromNow * 86400000).toISOString();

      const { data, error } = await supabase
        .from('jobs')
        .insert({
          slug: job.slug,
          title_translations: job.title,
          department: job.department,
          department_label: job.departmentLabel,
          location_translations: job.location,
          contract_type: job.contractType,
          contract_type_label: job.contractTypeLabel,
          level: job.level,
          level_label: job.levelLabel,
          compensation_translations: job.salary,
          benefits: job.benefits,
          skills: job.skills,
          requirements: job.requirements,
          responsibilities: job.responsibilities,
          nice_to_have: job.niceToHave,
          workday_expectations: job.workday,
          application_instructions: job.instructions,
          status: 'open',
          opening_at: openingAt,
          closing_at: closingAt,
        })
        .select('id, slug, title_translations')
        .single();

      if (error) {
        if (error.code === '23505') {
          console.log(`⚠️  Job "${job.title.en}" already exists (slug: ${job.slug})`);
          skipCount++;
        } else {
          throw error;
        }
      } else {
        console.log(`✅ Created: ${job.title.en} (${job.slug})`);
        successCount++;
      }
    } catch (error) {
      console.error(`❌ Failed to create "${job.title.en}":`, error.message);
      errorCount++;
    }
  }

  console.log(`\n📊 Seeding Summary:`);
  console.log(`   ✅ Successfully created: ${successCount}`);
  console.log(`   ⚠️  Already existed: ${skipCount}`);
  console.log(`   ❌ Errors: ${errorCount}`);

  // Fetch current job count
  const { count } = await supabase
    .from('jobs')
    .select('*', { count: 'exact', head: true })
    .eq('status', 'open');

  console.log(`\n🎯 Total open jobs in database: ${count || 0}`);
  console.log(`\n✨ Test jobs seeding complete!`);
  console.log(`\n📍 View careers page at: http://localhost:9000/en/careers`);
}

seedJobs()
  .then(() => process.exit(0))
  .catch((error) => {
    console.error('\n💥 Seeding failed:', error);
    process.exit(1);
  });
