2 Commits

3 changed files with 73 additions and 27 deletions

View File

@ -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 dinscription / 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 ; aujourdhui `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 dimport générique participants aujourdhui (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).

View File

@ -1,24 +0,0 @@
---
description: Inbox Drive — demandes préparées sur le téléphone (.cursor/inbox)
alwaysApply: true
---
# Inbox téléphone → Cursor
## Emplacement
- Chemin projet : `.cursor/inbox/` (junction Windows vers Google Drive).
- Dossier Drive : `I:\Mon disque\inbox-cursor-ms1inscription` (compte syncé sur `I:`).
- Contenu **gitignoré** — notes de travail, pas du code.
## Quand lutilisateur dit « traite linbox », « nouvelles demandes », « ce que jai préparé », etc.
1. Lister les fichiers `.md` dans `.cursor/inbox/` **sauf** `_TEMPLATE.md`, `README.md`, et tout ce qui est sous `done/`.
2. Présenter un résumé court de chaque demande (titre + objectif).
3. Demander laquelle traiter (ou traiter la plus récente si une seule / si lutilisateur le dit).
4. Lire le fichier choisi comme brief de tâche ; demander le **JIRA** sil manque avant de modifier le code.
5. Après traitement réussi : proposer de déplacer le fichier vers `.cursor/inbox/done/`.
## Hors de ces phrases
Ne pas scanner linbox à chaque message. Les fichiers sont visibles dans lexplorateur Cursor.

3
.gitignore vendored
View File

@ -13,9 +13,6 @@ dist/
# IDE — ne jamais committer les connexions SQL (copier settings.json.example)
.vscode/settings.json
# Inbox téléphone (junction → Google Drive) — briefs locaux, pas du code
.cursor/inbox/
# Compiled Java class files
*.class