type Lang = "ar" | "en";

export type JobKey =
  | "senior-fullstack-engineer"
  | "frontend-developer"
  | "backend-engineer"
  | "product-manager"
  | "customer-success-manager"
  | "qa-engineer"
  | "b2b-marketing-manager"
  | "sales-representative-gcc";

export type JobDepartment =
  | "engineering"
  | "product"
  | "customer-success"
  | "marketing"
  | "sales";
export type JobType = "full-time" | "part-time" | "contract";
export type JobLevel = "junior" | "mid" | "senior" | "lead";

export interface Job {
  id: JobKey;
  title: Record<Lang, string>;
  department: JobDepartment;
  departmentLabel: Record<Lang, string>;
  location: Record<Lang, string>;
  type: JobType;
  typeLabel: Record<Lang, string>;
  level: JobLevel;
  levelLabel: Record<Lang, string>;
  salaryRange: Record<Lang, string>;
  responsibilities: Record<Lang, string[]>;
  requirements: Record<Lang, string[]>;
  niceToHave: Record<Lang, string[]>;
  postedDate: string; // ISO date
  applicationDeadline?: string; // ISO date, optional
}

export const JOBS: Record<JobKey, Job> = {
  "senior-fullstack-engineer": {
    id: "senior-fullstack-engineer",
    title: {
      ar: "مهندس برمجيات متكامل - مستوى أول",
      en: "Senior Full-Stack Engineer",
    },
    department: "engineering",
    departmentLabel: { ar: "الهندسة", en: "Engineering" },
    location: { ar: "عن بُعد (منطقة الخليج)", en: "Remote (GCC Region)" },
    type: "full-time",
    typeLabel: { ar: "دوام كامل", en: "Full-Time" },
    level: "senior",
    levelLabel: { ar: "مستوى أول", en: "Senior" },
    salaryRange: {
      ar: "18,000 - 25,000 ريال سعودي شهرياً",
      en: "SAR 18,000 - 25,000 per month",
    },
    responsibilities: {
      ar: [
        "تطوير وصيانة منصة Mawidi باستخدام Next.js وTypeScript",
        "بناء واجهات برمجية قوية للتكامل مع أنظمة العيادات",
        "تحسين الأداء وقابلية التوسع للتطبيق",
        "التعاون مع فريق المنتج لتصميم ميزات جديدة",
        "المساهمة في مراجعة الكود وتوجيه المطورين الأصغر",
      ],
      en: [
        "Develop and maintain the Mawidi platform using Next.js and TypeScript",
        "Build robust APIs for clinic system integrations",
        "Optimize application performance and scalability",
        "Collaborate with product team to design new features",
        "Contribute to code reviews and mentor junior developers",
      ],
    },
    requirements: {
      ar: [
        "5+ سنوات خبرة في تطوير تطبيقات الويب",
        "إتقان React/Next.js وTypeScript",
        "خبرة قوية في Node.js وقواعد البيانات (PostgreSQL/MongoDB)",
        "فهم عميق لمبادئ REST/GraphQL APIs",
        "خبرة في أدوات Git وCI/CD",
        "إجادة اللغة الإنجليزية (العربية ميزة إضافية)",
      ],
      en: [
        "5+ years of web application development experience",
        "Strong proficiency in React/Next.js and TypeScript",
        "Solid experience with Node.js and databases (PostgreSQL/MongoDB)",
        "Deep understanding of REST/GraphQL API principles",
        "Experience with Git and CI/CD workflows",
        "Fluent in English (Arabic is a plus)",
      ],
    },
    niceToHave: {
      ar: [
        "خبرة سابقة في منصات SaaS B2B",
        "معرفة بتطبيقات WhatsApp Business API",
        "خبرة مع Docker وKubernetes",
        "معرفة بأنظمة الدفع في منطقة الخليج",
      ],
      en: [
        "Previous experience with B2B SaaS platforms",
        "Knowledge of WhatsApp Business API",
        "Experience with Docker and Kubernetes",
        "Familiarity with GCC payment systems",
      ],
    },
    postedDate: "2025-01-15",
  },

  "frontend-developer": {
    id: "frontend-developer",
    title: {
      ar: "مطور واجهات أمامية",
      en: "Frontend Developer",
    },
    department: "engineering",
    departmentLabel: { ar: "الهندسة", en: "Engineering" },
    location: { ar: "عن بُعد", en: "Remote" },
    type: "full-time",
    typeLabel: { ar: "دوام كامل", en: "Full-Time" },
    level: "mid",
    levelLabel: { ar: "مستوى متوسط", en: "Mid-Level" },
    salaryRange: {
      ar: "12,000 - 16,000 ريال سعودي شهرياً",
      en: "SAR 12,000 - 16,000 per month",
    },
    responsibilities: {
      ar: [
        "تطوير واجهات مستخدم متجاوبة وسهلة الاستخدام",
        "تنفيذ تصاميم ثنائية اللغة (عربي/إنجليزي) مع دعم RTL",
        "تحسين أداء الواجهة الأمامية وتجربة المستخدم",
        "التعاون مع مصممي UX لتحويل التصاميم إلى كود",
        "ضمان التوافق عبر المتصفحات والأجهزة المختلفة",
      ],
      en: [
        "Develop responsive and user-friendly interfaces",
        "Implement bilingual (Arabic/English) designs with RTL support",
        "Optimize frontend performance and user experience",
        "Collaborate with UX designers to transform designs into code",
        "Ensure cross-browser and cross-device compatibility",
      ],
    },
    requirements: {
      ar: [
        "3+ سنوات خبرة في تطوير React",
        "إتقان Next.js وTypeScript",
        "خبرة قوية في Tailwind CSS أو CSS-in-JS",
        "فهم لمبادئ التصميم المتجاوب والتطبيقات التقدمية (PWA)",
        "خبرة في اختبار الواجهات الأمامية (Jest, Playwright)",
      ],
      en: [
        "3+ years of React development experience",
        "Strong proficiency in Next.js and TypeScript",
        "Solid experience with Tailwind CSS or CSS-in-JS",
        "Understanding of responsive design and PWA principles",
        "Experience with frontend testing (Jest, Playwright)",
      ],
    },
    niceToHave: {
      ar: [
        "خبرة في تطوير التطبيقات متعددة اللغات",
        "معرفة بأدوات إدارة الحالة (Zustand, Redux)",
        "خبرة مع أطر الرسوم المتحركة (Framer Motion)",
        "فهم لمبادئ الوصول (a11y)",
      ],
      en: [
        "Experience with internationalized applications",
        "Knowledge of state management tools (Zustand, Redux)",
        "Experience with animation frameworks (Framer Motion)",
        "Understanding of accessibility (a11y) principles",
      ],
    },
    postedDate: "2025-01-20",
  },

  "backend-engineer": {
    id: "backend-engineer",
    title: {
      ar: "مهندس برمجيات خلفية",
      en: "Backend Engineer",
    },
    department: "engineering",
    departmentLabel: { ar: "الهندسة", en: "Engineering" },
    location: { ar: "الرياض أو عن بُعد", en: "Riyadh or Remote" },
    type: "full-time",
    typeLabel: { ar: "دوام كامل", en: "Full-Time" },
    level: "mid",
    levelLabel: { ar: "مستوى متوسط", en: "Mid-Level" },
    salaryRange: {
      ar: "14,000 - 18,000 ريال سعودي شهرياً",
      en: "SAR 14,000 - 18,000 per month",
    },
    responsibilities: {
      ar: [
        "تصميم وتطوير واجهات برمجية موثوقة وقابلة للتوسع",
        "دمج WhatsApp Business API وأنظمة الطرف الثالث",
        "إدارة قواعد البيانات وتحسين الاستعلامات",
        "تنفيذ أفضل ممارسات الأمان والامتثال للبيانات",
        "بناء وصيانة خطوط معالجة البيانات",
      ],
      en: [
        "Design and develop reliable, scalable APIs",
        "Integrate WhatsApp Business API and third-party systems",
        "Manage databases and optimize queries",
        "Implement security best practices and data compliance",
        "Build and maintain data processing pipelines",
      ],
    },
    requirements: {
      ar: [
        "3+ سنوات خبرة في تطوير الأنظمة الخلفية",
        "إتقان Node.js/Python وأطر العمل (Express, FastAPI)",
        "خبرة قوية مع PostgreSQL أو MongoDB",
        "فهم لأمان واجهات البرمجية والمصادقة (JWT, OAuth)",
        "خبرة في Docker وخدمات السحابة (AWS, GCP)",
      ],
      en: [
        "3+ years of backend development experience",
        "Strong proficiency in Node.js/Python and frameworks (Express, FastAPI)",
        "Solid experience with PostgreSQL or MongoDB",
        "Understanding of API security and authentication (JWT, OAuth)",
        "Experience with Docker and cloud services (AWS, GCP)",
      ],
    },
    niceToHave: {
      ar: [
        "خبرة مع WhatsApp Business API أو Twilio",
        "معرفة ببوابات الدفع في الخليج (مدى، سداد)",
        "خبرة في الأنظمة الموزعة والرسائل (Redis, RabbitMQ)",
        "فهم لمعايير HIPAA أو أمان البيانات الصحية",
      ],
      en: [
        "Experience with WhatsApp Business API or Twilio",
        "Knowledge of GCC payment gateways (Mada, Sadad)",
        "Experience with distributed systems and messaging (Redis, RabbitMQ)",
        "Understanding of HIPAA or healthcare data security standards",
      ],
    },
    postedDate: "2025-01-18",
  },

  "product-manager": {
    id: "product-manager",
    title: {
      ar: "مدير منتجات",
      en: "Product Manager",
    },
    department: "product",
    departmentLabel: { ar: "المنتج", en: "Product" },
    location: { ar: "دبي أو الرياض", en: "Dubai or Riyadh" },
    type: "full-time",
    typeLabel: { ar: "دوام كامل", en: "Full-Time" },
    level: "senior",
    levelLabel: { ar: "مستوى أول", en: "Senior" },
    salaryRange: {
      ar: "20,000 - 28,000 ريال سعودي شهرياً",
      en: "SAR 20,000 - 28,000 per month",
    },
    responsibilities: {
      ar: [
        "قيادة رؤية واستراتيجية المنتج لسوق الخليج",
        "التعاون مع العملاء لفهم احتياجات العيادات والمراكز",
        "تحديد أولويات الميزات بناءً على قيمة الأعمال والأثر",
        "العمل مع الفرق الهندسية لتسليم الميزات",
        "تحليل مؤشرات الاستخدام وتحسين تجربة المستخدم",
      ],
      en: [
        "Lead product vision and strategy for the GCC market",
        "Engage with customers to understand clinic and center needs",
        "Prioritize features based on business value and impact",
        "Work with engineering teams to deliver features",
        "Analyze usage metrics and optimize user experience",
      ],
    },
    requirements: {
      ar: [
        "4+ سنوات خبرة في إدارة المنتجات (SaaS مفضل)",
        "فهم عميق لسوق الخليج والقطاع الصحي/التجميلي",
        "خبرة في منهجيات Agile وتطوير المنتجات",
        "مهارات تحليلية قوية مع التركيز على البيانات",
        "إجادة العربية والإنجليزية",
        "مهارات تواصل وقيادة ممتازة",
      ],
      en: [
        "4+ years of product management experience (SaaS preferred)",
        "Deep understanding of GCC market and healthcare/beauty sector",
        "Experience with Agile methodologies and product development",
        "Strong analytical skills with data-driven focus",
        "Fluent in Arabic and English",
        "Excellent communication and leadership skills",
      ],
    },
    niceToHave: {
      ar: [
        "خبرة سابقة في قطاع الرعاية الصحية أو التجميل",
        "معرفة تقنية بواجهات البرمجة والتكاملات",
        "شهادة في إدارة المنتجات (CPM, CSPO)",
        "خبرة في التوسع الدولي للمنتجات SaaS",
      ],
      en: [
        "Previous experience in healthcare or beauty sector",
        "Technical knowledge of APIs and integrations",
        "Product management certification (CPM, CSPO)",
        "Experience with international SaaS product expansion",
      ],
    },
    postedDate: "2025-01-10",
  },

  "customer-success-manager": {
    id: "customer-success-manager",
    title: {
      ar: "مدير نجاح العملاء",
      en: "Customer Success Manager",
    },
    department: "customer-success",
    departmentLabel: { ar: "نجاح العملاء", en: "Customer Success" },
    location: { ar: "الرياض", en: "Riyadh" },
    type: "full-time",
    typeLabel: { ar: "دوام كامل", en: "Full-Time" },
    level: "mid",
    levelLabel: { ar: "مستوى متوسط", en: "Mid-Level" },
    salaryRange: {
      ar: "10,000 - 14,000 ريال سعودي شهرياً",
      en: "SAR 10,000 - 14,000 per month",
    },
    responsibilities: {
      ar: [
        "إعداد وتدريب عملاء جدد على منصة Mawidi",
        "بناء علاقات قوية مع العيادات والمراكز",
        "تحليل استخدام العملاء وتحديد فرص التحسين",
        "حل المشكلات التقنية والإجابة على استفسارات العملاء",
        "جمع ملاحظات العملاء لتحسين المنتج",
      ],
      en: [
        "Onboard and train new customers on Mawidi platform",
        "Build strong relationships with clinics and centers",
        "Analyze customer usage and identify improvement opportunities",
        "Resolve technical issues and answer customer inquiries",
        "Gather customer feedback for product improvements",
      ],
    },
    requirements: {
      ar: [
        "2+ سنوات خبرة في نجاح العملاء أو إدارة الحسابات",
        "مهارات تواصل ممتازة بالعربية والإنجليزية",
        "خبرة في منتجات SaaS أو التكنولوجيا",
        "القدرة على شرح المفاهيم التقنية لجمهور غير تقني",
        "مهارات تنظيمية قوية وإدارة متعددة المهام",
      ],
      en: [
        "2+ years of customer success or account management experience",
        "Excellent communication skills in Arabic and English",
        "Experience with SaaS or technology products",
        "Ability to explain technical concepts to non-technical audiences",
        "Strong organizational and multitasking skills",
      ],
    },
    niceToHave: {
      ar: [
        "خبرة في القطاع الصحي أو قطاع التجميل",
        "معرفة بأدوات CRM (Salesforce, HubSpot)",
        "خبرة في التدريب والعروض التقديمية",
        "فهم لعمليات العيادات الطبية",
      ],
      en: [
        "Experience in healthcare or beauty sector",
        "Knowledge of CRM tools (Salesforce, HubSpot)",
        "Experience with training and presentations",
        "Understanding of medical clinic operations",
      ],
    },
    postedDate: "2025-01-22",
  },

  "qa-engineer": {
    id: "qa-engineer",
    title: {
      ar: "مهندس ضمان الجودة",
      en: "QA Engineer",
    },
    department: "engineering",
    departmentLabel: { ar: "الهندسة", en: "Engineering" },
    location: { ar: "عن بُعد", en: "Remote" },
    type: "full-time",
    typeLabel: { ar: "دوام كامل", en: "Full-Time" },
    level: "mid",
    levelLabel: { ar: "مستوى متوسط", en: "Mid-Level" },
    salaryRange: {
      ar: "10,000 - 14,000 ريال سعودي شهرياً",
      en: "SAR 10,000 - 14,000 per month",
    },
    responsibilities: {
      ar: [
        "تطوير وتنفيذ خطط اختبار شاملة",
        "كتابة وصيانة اختبارات آلية (وحدة، تكامل، E2E)",
        "إجراء اختبارات يدوية للميزات الجديدة",
        "تحديد وتوثيق الأخطاء والمشكلات",
        "التعاون مع المطورين لضمان جودة الكود",
      ],
      en: [
        "Develop and execute comprehensive test plans",
        "Write and maintain automated tests (unit, integration, E2E)",
        "Perform manual testing for new features",
        "Identify and document bugs and issues",
        "Collaborate with developers to ensure code quality",
      ],
    },
    requirements: {
      ar: [
        "3+ سنوات خبرة في ضمان الجودة البرمجية",
        "خبرة قوية في أدوات الاختبار (Jest, Playwright, Cypress)",
        "معرفة بمنهجيات الاختبار وأفضل الممارسات",
        "خبرة في اختبار تطبيقات الويب والأجهزة المحمولة",
        "مهارات تحليلية ممتازة ودقة في التفاصيل",
      ],
      en: [
        "3+ years of software quality assurance experience",
        "Strong experience with testing tools (Jest, Playwright, Cypress)",
        "Knowledge of testing methodologies and best practices",
        "Experience testing web and mobile applications",
        "Excellent analytical skills and attention to detail",
      ],
    },
    niceToHave: {
      ar: [
        "خبرة في الاختبار الآلي باستخدام CI/CD",
        "معرفة بأدوات إدارة الاختبار (TestRail, Jira)",
        "خبرة في اختبار الأداء والحمل",
        "معرفة بلغات البرمجة (JavaScript, Python)",
      ],
      en: [
        "Experience with automated testing in CI/CD pipelines",
        "Knowledge of test management tools (TestRail, Jira)",
        "Experience with performance and load testing",
        "Knowledge of programming languages (JavaScript, Python)",
      ],
    },
    postedDate: "2025-01-25",
  },

  "b2b-marketing-manager": {
    id: "b2b-marketing-manager",
    title: {
      ar: "مدير تسويق B2B",
      en: "B2B Marketing Manager",
    },
    department: "marketing",
    departmentLabel: { ar: "التسويق", en: "Marketing" },
    location: { ar: "دبي", en: "Dubai" },
    type: "full-time",
    typeLabel: { ar: "دوام كامل", en: "Full-Time" },
    level: "senior",
    levelLabel: { ar: "مستوى أول", en: "Senior" },
    salaryRange: {
      ar: "16,000 - 22,000 ريال سعودي شهرياً",
      en: "SAR 16,000 - 22,000 per month",
    },
    responsibilities: {
      ar: [
        "تطوير وتنفيذ استراتيجية التسويق B2B للسوق الخليجي",
        "إنشاء محتوى تسويقي مستهدف (دراسات حالة، مدونات، فيديو)",
        "إدارة حملات التسويق الرقمي (SEO, SEM, وسائل التواصل)",
        "بناء شراكات مع الجمعيات الطبية والفعاليات",
        "تحليل أداء الحملات وتحسين معدلات التحويل",
      ],
      en: [
        "Develop and execute B2B marketing strategy for GCC market",
        "Create targeted marketing content (case studies, blogs, video)",
        "Manage digital marketing campaigns (SEO, SEM, social media)",
        "Build partnerships with medical associations and events",
        "Analyze campaign performance and optimize conversion rates",
      ],
    },
    requirements: {
      ar: [
        "4+ سنوات خبرة في التسويق B2B",
        "خبرة مثبتة في تسويق منتجات SaaS",
        "فهم عميق لسوق الخليج والقطاع الصحي",
        "إتقان أدوات التسويق الرقمي (Google Ads, LinkedIn, HubSpot)",
        "إجادة العربية والإنجليزية",
        "مهارات كتابة وإبداعية قوية",
      ],
      en: [
        "4+ years of B2B marketing experience",
        "Proven track record in SaaS product marketing",
        "Deep understanding of GCC market and healthcare sector",
        "Proficiency in digital marketing tools (Google Ads, LinkedIn, HubSpot)",
        "Fluent in Arabic and English",
        "Strong writing and creative skills",
      ],
    },
    niceToHave: {
      ar: [
        "شبكة علاقات في القطاع الصحي بالخليج",
        "خبرة في التسويق بالمحتوى والتسويق بالنمو",
        "معرفة بأدوات التحليل (Google Analytics, Mixpanel)",
        "خبرة في تنظيم الفعاليات والمؤتمرات",
      ],
      en: [
        "Network in GCC healthcare sector",
        "Experience with content marketing and growth marketing",
        "Knowledge of analytics tools (Google Analytics, Mixpanel)",
        "Experience organizing events and conferences",
      ],
    },
    postedDate: "2025-01-12",
  },

  "sales-representative-gcc": {
    id: "sales-representative-gcc",
    title: {
      ar: "ممثل مبيعات - منطقة الخليج",
      en: "Sales Representative - GCC",
    },
    department: "sales",
    departmentLabel: { ar: "المبيعات", en: "Sales" },
    location: { ar: "الرياض أو دبي", en: "Riyadh or Dubai" },
    type: "full-time",
    typeLabel: { ar: "دوام كامل", en: "Full-Time" },
    level: "mid",
    levelLabel: { ar: "مستوى متوسط", en: "Mid-Level" },
    salaryRange: {
      ar: "12,000 - 18,000 ريال + عمولة",
      en: "SAR 12,000 - 18,000 + commission",
    },
    responsibilities: {
      ar: [
        "تحديد والتواصل مع العيادات ومراكز التجميل المحتملة",
        "إجراء عروض توضيحية للمنتج وعروض تقديمية",
        "إدارة دورة المبيعات من الاتصال الأولي إلى الإغلاق",
        "بناء علاقات طويلة الأمد مع العملاء",
        "تحقيق أهداف المبيعات الشهرية والفصلية",
      ],
      en: [
        "Identify and reach out to potential clinics and beauty centers",
        "Conduct product demos and presentations",
        "Manage sales cycle from initial contact to close",
        "Build long-term relationships with customers",
        "Achieve monthly and quarterly sales targets",
      ],
    },
    requirements: {
      ar: [
        "2+ سنوات خبرة في مبيعات B2B",
        "خبرة مثبتة في تحقيق أهداف المبيعات",
        "معرفة بسوق الخليج والقطاع الصحي/التجميلي",
        "مهارات تواصل وعرض تقديمي ممتازة",
        "إجادة العربية والإنجليزية",
        "مهارات تفاوض قوية وتوجه نحو النتائج",
      ],
      en: [
        "2+ years of B2B sales experience",
        "Proven track record of meeting sales targets",
        "Knowledge of GCC market and healthcare/beauty sector",
        "Excellent communication and presentation skills",
        "Fluent in Arabic and English",
        "Strong negotiation skills and results-oriented mindset",
      ],
    },
    niceToHave: {
      ar: [
        "خبرة في بيع منتجات SaaS",
        "شبكة علاقات في القطاع الصحي بالخليج",
        "خبرة مع أدوات CRM (Salesforce, Pipedrive)",
        "فهم للتكنولوجيا والمصطلحات التقنية",
      ],
      en: [
        "Experience selling SaaS products",
        "Network in GCC healthcare sector",
        "Experience with CRM tools (Salesforce, Pipedrive)",
        "Understanding of technology and technical terminology",
      ],
    },
    postedDate: "2025-01-28",
  },
} as const satisfies Record<JobKey, Job>;

export const JOB_KEYS = Object.keys(JOBS) as JobKey[];

// Helper functions
export function getJobsByDepartment(department: JobDepartment): Job[] {
  return JOB_KEYS.map((key) => JOBS[key]).filter(
    (job) => job.department === department,
  );
}

export function getJobsByLevel(level: JobLevel): Job[] {
  return JOB_KEYS.map((key) => JOBS[key]).filter((job) => job.level === level);
}

export function getSortedJobs(): Job[] {
  return JOB_KEYS.map((key) => JOBS[key]).sort(
    (a, b) =>
      new Date(b.postedDate).getTime() - new Date(a.postedDate).getTime(),
  );
}

// Application form field configuration (for Option A - MVP)
export const APPLICATION_FORM_FIELDS = {
  required: ["fullName", "email", "phone", "resume"] as const,
  optional: ["coverLetter", "linkedIn", "portfolio"] as const,
} as const;

export type ApplicationFormField =
  | (typeof APPLICATION_FORM_FIELDS.required)[number]
  | (typeof APPLICATION_FORM_FIELDS.optional)[number];
