Compare commits
2 Commits
fd250996b2
...
db7b2e9f46
| Author | SHA1 | Date | |
|---|---|---|---|
| db7b2e9f46 | |||
| b67fdaee78 |
73
.cursor/rules/projet/10-hors-transaction-import.mdc
Normal file
73
.cursor/rules/projet/10-hors-transaction-import.mdc
Normal 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 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).
|
||||
@ -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 l’utilisateur dit « traite l’inbox », « nouvelles demandes », « ce que j’ai 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 l’utilisateur le dit).
|
||||
4. Lire le fichier choisi comme brief de tâche ; demander le **JIRA** s’il 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 l’inbox à chaque message. Les fichiers sont visibles dans l’explorateur Cursor.
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user