// data.jsx — le VOCABULAIRE de l'interface. Plus aucune donnée d'entreprise.
//
// Ce fichier contenait l'entreprise fictive du prototype : un profil complet, ses
// adresses, ses contacts, son projet, ses runs, sa fiche rédigée. Pratique pour
// dessiner des écrans, dangereux dès que le backend est branché — un champ
// pré-rempli avec la vérité de quelqu'un d'autre se relit distraitement et se
// signe. Tout cela est parti le 2026-08-07 ; les données viennent du tenant.
//
// Ce qui reste est du vocabulaire produit : les étapes du parcours, les textes
// d'aide, les listes de choix. Il est écrit en français et traduit à l'affichage
// par `I18N.t()` — les entrées anglaises vivent dans i18n.jsx, au même endroit
// que le reste de la langue.
//
// Les NOMS COMMUNS du métier (« demande de subvention », « déclaration ») ne
// sont pas ici non plus : ils viennent de `FormDomain.lexicon`, en base.

// --- Parcours (rail d'étapes) — MVP téléversement, pas de catalogue ---
const JOURNEY = [
  { id: "company", label: "Votre entreprise", sub: "Confirmez votre profil" },
  { id: "reference", label: "Votre projet", sub: "Décrivez votre projet" },
  { id: "upload", label: "Le {formulaire}", sub: "Téléversez le document à remplir" },
  { id: "run", label: "Remplissage auto", sub: "L'assistant remplit le {formulaire}" },
  { id: "confirm", label: "À confirmer", sub: "Validez quelques champs" },
  { id: "result", label: "Prêt à soumettre", sub: "Téléchargez et déposez" },
];

// --- Phases du run, dans l'ordre du moteur ---
const RUN_PHASES = [
  { id: "parsing", label: "Lecture du {formulaire}", desc: "On repère tous les champs à remplir" },
  { id: "inferring", label: "Recherche de vos infos", desc: "On puise dans votre profil et vos documents" },
  { id: "filling", label: "Remplissage", desc: "On inscrit ce qu'on sait déjà" },
  { id: "awaiting_user", label: "Vérification", desc: "On vous montre ce qui reste à confirmer" },
];

// --- Besoins de financement (cases à cocher du profil) ---
// `on: true` n'existe plus : rien n'est coché d'avance pour l'utilisateur.
const FINANCING_NEEDS = [
  { id: "automatisation", label: "Automatisation" },
  { id: "achat_equipements", label: "Achat d'équipements" },
  { id: "innovation_rd", label: "Innovation / R&D" },
  { id: "amelioration_operationnelle", label: "Amélioration opérationnelle" },
  { id: "virage_numerique", label: "Virage numérique" },
  { id: "exportation", label: "Exportation" },
  { id: "croissance", label: "Croissance" },
  { id: "embauche", label: "Embauche" },
  { id: "formation", label: "Formation" },
  { id: "developpement_produits", label: "Nouveaux produits / services" },
];

// --- Fourchettes financières et référentiels de codes ---
const REVENUE_RANGES = ["", "Moins de 250 k$", "250 k$ – 500 k$", "500 k$ – 1 M$",
  "1 M$ – 5 M$", "5 M$ – 10 M$", "10 M$ – 50 M$", "Plus de 50 M$"];
const PROFIT_RANGES = ["", "Déficit (perte)", "0 – 50 k$", "50 k$ – 250 k$",
  "250 k$ – 500 k$", "500 k$ – 1 M$", "Plus de 1 M$"];
const CODE_SYSTEMS = ["SCIAN", "NAICS", "Revenu Québec", "ARC (fédéral)", "Autre"];

// --- Recherche de code d'activité ---
// Le référentiel embarqué (29 codes copiés à la main) est parti : la table
// `referentiel.cae_codes` fait foi, interrogée par `caeSearch` en GraphQL. Un
// second référentiel dans le front, c'est un référentiel qui dérive en silence.
// Hors ligne on ne propose rien plutôt qu'un extrait périmé.
function searchCae() { return []; }

// --- Textes d'aide (le « ? » à côté des champs) ---
// Vrai contenu produit : ce que l'utilisateur ne sait pas où chercher. Bilingue
// en clair plutôt que par clés — ces textes se relisent et se corrigent.
const FIELD_GUIDES = {
  neq: {
    fr: { titre: "Où trouver votre NEQ", t: "Le NEQ est un numéro à 10 chiffres attribué par le Registraire des entreprises du Québec (REQ). Vous le trouvez sur votre certificat d'immatriculation, ou en cherchant le nom de votre entreprise sur registreentreprises.gouv.qc.ca." },
    en: { titre: "Where to find your Québec business number", t: "The NEQ is a 10-digit number assigned by the Registraire des entreprises du Québec (REQ). It appears on your registration certificate, or you can look up your company name at registreentreprises.gouv.qc.ca." },
  },
  bn: {
    fr: { titre: "Où trouver votre numéro d'entreprise (NE)", t: "Attribué par l'Agence du revenu du Canada (ARC). Neuf chiffres, souvent suivis d'un code de programme (ex. RC0001 pour l'impôt des sociétés). Visible sur vos avis de l'ARC ou dans « Mon dossier d'entreprise »." },
    en: { titre: "Where to find your business number (BN)", t: "Assigned by the Canada Revenue Agency (CRA). Nine digits, usually followed by a program code (e.g. RC0001 for corporate income tax). It appears on your CRA notices or in “My Business Account”." },
  },
  forme: {
    fr: { titre: "Votre statut juridique", t: "Le statut légal de l'entreprise : société par actions (« inc. »), société en nom collectif, entreprise individuelle, coopérative, OBNL… Indiqué sur votre certificat d'immatriculation au REQ." },
    en: { titre: "Your legal form", t: "The company's legal status: corporation (“inc.”), general partnership, sole proprietorship, co-operative, non-profit… It appears on your registration certificate." },
  },
  scian: {
    fr: { titre: "Vos codes d'activité", t: "Le code d'activité classe votre secteur. Cherchez votre activité dans le champ de recherche : il interroge le référentiel officiel. Une entreprise peut en avoir plusieurs ; ajoutez-en autant que nécessaire." },
    en: { titre: "Your activity codes", t: "The activity code classifies your industry. Search for your activity in the search field: it queries the official reference list. A company may have several; add as many as needed." },
  },
  revenus: {
    fr: { titre: "Votre fourchette de revenus", t: "Le chiffre d'affaires annuel le plus récent. Une fourchette suffit, pas besoin du montant exact ; il provient de vos états financiers." },
    en: { titre: "Your revenue range", t: "Your most recent annual revenue. A range is enough; no need for the exact figure, it comes from your financial statements." },
  },
  revenus_brut: {
    fr: { titre: "Revenus bruts (chiffre d'affaires)", t: "Le total de vos ventes sur l'année, avant toute dépense. C'est le « chiffre d'affaires » en haut de votre état des résultats." },
    en: { titre: "Gross revenue (turnover)", t: "Your total sales for the year, before any expense. It's the top line of your income statement." },
  },
  revenus_net: {
    fr: { titre: "Revenus nets", t: "Vos revenus après remises, retours et rabais accordés aux clients, mais avant vos dépenses d'exploitation. Souvent appelé « ventes nettes »." },
    en: { titre: "Net revenue", t: "Your revenue after discounts, returns and rebates given to customers, but before operating expenses. Often called “net sales”." },
  },
  profit: {
    fr: { titre: "Bénéfice net (profit)", t: "Ce qui reste une fois TOUTES les dépenses et impôts payés : le « bénéfice net » au bas de votre état des résultats. Peut être négatif (perte)." },
    en: { titre: "Net profit", t: "What's left once ALL expenses and taxes are paid: the bottom line of your income statement. It can be negative (a loss)." },
  },
  employes: {
    fr: { titre: "Nombre d'employés", t: "Le total des employés, temps plein et temps partiel. Comptez les saisonniers selon leur moyenne sur l'année." },
    en: { titre: "Number of employees", t: "Total employees, full-time and part-time. Count seasonal staff by their yearly average." },
  },
  annee: {
    fr: { titre: "Année de constitution", t: "L'année où l'entreprise a été légalement créée. Elle figure sur votre certificat d'immatriculation au Registre des entreprises." },
    en: { titre: "Year of incorporation", t: "The year the company was legally created. It appears on your registration certificate." },
  },
  adresse: {
    fr: { titre: "Adresse officielle", t: "L'adresse déclarée au registre des entreprises. Si vos activités se déroulent ailleurs (atelier, entrepôt), ajoutez-la comme adresse supplémentaire ; certains {programmes} exigent le lieu de réalisation du projet." },
    en: { titre: "Official address", t: "The address declared to the enterprise registry. If you operate elsewhere (workshop, warehouse), add it as an additional address; some {programmes} require the project's location." },
  },
  secteur: {
    fr: { titre: "Votre secteur d'activité", t: "En quelques mots, le domaine principal de l'entreprise (ex. « ébénisterie sur mesure »). Sert à cibler les bons {programmes}." },
    en: { titre: "Your industry", t: "In a few words, the company's main field (e.g. “custom cabinetmaking”). Used to target the right {programmes}." },
  },
};

/** Le texte d'aide dans la langue active, lexique interpolé. */
function fieldGuide(key) {
  const g = FIELD_GUIDES[key];
  if (!g) return null;
  const v = g[I18N.lang] || g.fr;
  return { titre: I18N.t(v.titre), t: I18N.t(v.t) };
}

// --- Fiche projet : les questions de cadrage, en langage courant ---
// Le champ `sample` (les réponses de la PME fictive) est supprimé : il était
// pré-rempli dans les champs et fini par être ENREGISTRÉ comme objectifs du
// vrai dossier. Un exemple a sa place dans un placeholder, jamais dans une
// valeur.
const FICHE_QUESTIONS = [
  { id: "quoi",
    q: "En une phrase, qu'est-ce que votre projet va accomplir ?",
    hint: "Pas besoin de jargon. Dites-le comme à un ami.",
    placeholder: "Ex. : Embaucher et former deux ébénistes pour absorber notre carnet de commandes." },
  { id: "pourquoi",
    q: "Quel problème est-ce que ça règle ?",
    hint: "Ce qui ne va pas aujourd'hui, et pourquoi ça vaut la peine d'agir.",
    placeholder: "Ex. : On refuse des contrats faute de main-d'œuvre qualifiée dans la région." },
  { id: "ges",
    q: "Qu'est-ce que vous voulez avoir accompli à la fin ?",
    hint: "Vos objectifs, en résultats concrets.",
    placeholder: "Ex. : Deux personnes autonomes sur nos machines, délais de livraison réduits de 30 %." },
  { id: "etapes",
    q: "Comment allez-vous vous y prendre ?",
    hint: "Les grandes étapes, dans l'ordre. Trois ou quatre suffisent.",
    placeholder: "Ex. : Recrutement, jumelage avec un compagnon, évaluations aux semaines 4, 8 et 12." },
  { id: "budget",
    q: "Combien ça coûte, et qu'est-ce que vous demandez ?",
    hint: "Une estimation suffit à ce stade.",
    placeholder: "Ex. : 96 000 $ de salaires sur 12 semaines, aide demandée de 48 000 $." },
];

Object.assign(window, {
  RUN_PHASES, JOURNEY, FICHE_QUESTIONS,
  FINANCING_NEEDS, CODE_SYSTEMS, FIELD_GUIDES, fieldGuide,
  REVENUE_RANGES, PROFIT_RANGES, searchCae,
});
