From db7b2e9f46da0404e2ff01ac5547f6a9a4af9795 Mon Sep 17 00:00:00 2001 From: stephan Date: Fri, 24 Jul 2026 15:27:50 -0400 Subject: [PATCH] =?UTF-8?q?Add=20new=20project=20rules=20for=20MSIN-4482?= =?UTF-8?q?=20=E2=80=94=20Implement=20import=20and=20quick=20entry=20for?= =?UTF-8?q?=20ChronoTrack=20without=20online=20registration.=20Document=20?= =?UTF-8?q?decisions,=20phases,=20and=20scope=20for=20development=20clarit?= =?UTF-8?q?y.=20Increment=20version=20code.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../projet/10-hors-transaction-import.mdc | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 .cursor/rules/projet/10-hors-transaction-import.mdc diff --git a/.cursor/rules/projet/10-hors-transaction-import.mdc b/.cursor/rules/projet/10-hors-transaction-import.mdc new file mode 100644 index 0000000..4ffcc4e --- /dev/null +++ b/.cursor/rules/projet/10-hors-transaction-import.mdc @@ -0,0 +1,73 @@ +--- +description: Projet MS1 hors transaction — import / saisie rapide / ChronoTrack (cadrage produit) +alwaysApply: true +--- + +# Projet MSIN-4482 — entrée hors transaction (import + terrain) + +JIRA : **MSIN-4482**. +Orthographe produit : **ChronoTrack**. +Doc de cadrage — source de vérité pour le développement de ce chantier. + +## Intention + +Utiliser la suite MS1 (gestion, ChronoTrack, hub allégé, signature de dossier, accès par tâche) pour des clients **sans** tunnel d’inscription / paiement en ligne MS1. +Les participants arrivent par **import fichier** et/ou **saisie rapide** ; ensuite sync ChronoTrack. + +Aussi utile le **jour J** sur une course **avec** inscription en ligne : ajout / correction rapide (sexe, âge, etc.) **sans** transaction financière. + +## Décisions actées + +| Sujet | Décision | +|---|---| +| Source terrain | Toujours **`resultats_*`** (`resultats_participants`, `resultats_epreuves_commandees`, `resultats_questions`) — pas le panier | +| Type événement | Nouveau type / mode « sans inscription en ligne » (ex. timing) — à créer | +| Paiement MS1 | Hors scope pour ces lignes ; **interdit** le « panier à 0 $ » | +| Clé unique | ID du fichier client = **`external_id` ChronoTrack** au push (pas seulement `par_id_original`) ; même fichier = fallback import CT | +| Questions import | **Option C** : matcher les questions existantes ; non matchées → preview + **création confirmée** | +| Hub | **Mini-hub / hub allégé** (pas zéro hub) ; grossit avec les options | +| Opérateur | MS1 (Stéphane / équipe) = promoteur opérateur ; délégation = **kits limités par tâche**, pas kit promoteur client « total » | +| Signature de dossier | **Dans le scope hub** — à cartographier (module exact) ; **≠ waiver** | +| Waiver | **Hors scope** — ne pas assimiler « signature de dossier » au waiver | +| Édition fiches | Create/edit sur `resultats_participants` (+ questions) ; **même** chemin jour J sur événement en ligne | +| Finances | Marqueur d’**origine** obligatoire ; import / saisie rapide **exclus** des rapports paiement / facture | + +## Origines participant (marqueur) + +| Code | Canal | +|---|---| +| `inscription_en_ligne` | Flux payant actuel | +| `import_fichier` | Bulk modèle fichier | +| `saisie_rapide` | Création unitaire / jour J | + +## Ancrages code existants + +- Sync CT : `php/chronotrack_api/` — push MS1→CT ; aujourd’hui `external_id` ≈ `par_id_original` → **à adapter** si clé import présente +- `ct_entry_id` : ID interne CT post-sync (MSIN-4328) — distinct de la clé fichier +- Questions → CT : `entry_note_*` (MSIN-4461) via `resultats_questions` + `inscriptions_questions` +- Hub / accès : `php/inc_fx_promoteur_hub.php`, `inscriptions_eve_acces*` +- Pas d’import générique participants aujourd’hui (seulement FNQ/TQ/PayPal spécialisés) + +## Hors scope + +- Waiver / `waiver_cleared` comme livrable de ce projet +- Kit promoteur client complet sur ce type d’événement +- Facturation / remboursements pour lignes import / saisie rapide +- Import inverse ChronoTrack → MS1 comme chemin nominal + +## Phases + +0. **Cadrage** — contrat fichier + unique ID ; stratégie questions C ; carto « signature de dossier » ; inventaire `no_panier` / finances +1. **Fondations** — type événement ; colonnes clé externe + origine ; coquille `pec` sans commande payante +2. **Import** — UI + upsert clé unique + questions (match / création confirmée) → `resultats_*` +3. **Saisie / édition** — fiche rapide ; ouvert aussi sur courses en ligne (jour J) +4. **CT + hub** — sync avec clé fichier ; mini-hub ; accès par tâche ; signature de dossier +5. **Ops** — tests mélange payant vs hors-transaction ; filet même fichier → CT + +## Règles agent (pendant le chantier) + +- Changement minimal ; référencer **MSIN-4482** dans SQL / commentaires PHP. +- Ne pas brancher ces flux sur le panier / paiement. +- Ne pas réintroduire le waiver « pour faire la signature de dossier ». +- Préférer étendre gestion / hub existants plutôt que doubler les fiches participant. +- SQL : uniquement **dev préprod**, puis Navicat + sync outil (workflow projet).