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).