Feature #1147
openTiers réels — 2 pools (maintenance/évolutions) + flux/SLA + page /offres + jauge à 2 indicateurs
0%
issue:self — spec dans la description (matrice + copies + décisions)
Description
### Contexte
Le modèle de tiers livré dans l'épopée #1133 utilisait des crédits placeholder (un seul pool : 25/42/97/160). Le vrai modèle commercial OmDev a **deux pools de crédits** (maintenance + évolutions, certains illimités), un nombre de **flux simultanés**, un **SLA incident** et un **niveau humain** distincts par formule. De plus, le bouton « Demander une mise à niveau » doit ouvrir une **page /offres** présentant toutes les formules en détail.
### Matrice réelle des formules (source de vérité)
| Formule | Prix/mois | Maintenance | Évolutions | Flux | 1ʳᵉ livraison | Incident | Humain |
|---|---|---|---|---|---|---|---|
| Démarrage | 2 500 € | 100 crédits | 10 crédits | 1 | — | sans SLA contractuel (heures ouvrées) | 1 dev senior dédié |
| Maintenance | 4 200 € | illimité | 20 crédits | 1 | 48 h | P1 4 h ouvrées / P2 J+1 / P3 semaine | 1 dev senior dédié |
| Évolutions | 9 700 € | illimité | illimité | 2 | 24 h | P1 2 h / P2 8 h / P3 2 j | contact dédié + équipe senior |
| Pilotage | 16 000 € | illimité | illimité | 4 | 12 h | P1 1 h (lun-ven 9-19h) / P2 4 h / P3 1 j | CTO nommé + équipe senior |
« illimité » = pas de plafond (stocker NULL côté DB). Chaque formule inclut tout ce que contiennent les formules en dessous. Points non cumulables d'un mois sur l'autre.
### Contenu marketing par formule (pour la page /offres — vit en i18n, pas en DB)
**Démarrage (2 500 €)** — « Le socle qui fait tourner votre dispositif médical logiciel, en abonnement agile. » RUN Supervision & incidents · RUN Observabilité & tableau de bord · RUN Maintenance & dépendances · PROTECT Sécurité (socle : scan dépendances+vulnérabilités, correctifs sécurité, RGPD, registre SOUP à chaque build) · RUN Infra gérée · BUILD Évolutions (~2/mois). Cadence : maintenance proactive, sprint hebdo, 1 flux. Engagement : 100 crédits/mois (bugs, correctifs, vulnérabilités, en continu). Sans engagement, résiliable. Humain : 1 dev senior dédié.
**Maintenance (4 200 €)** — « Garder en vie le logiciel qui fait tourner votre activité. » BUILD Qualité & tests · RUN Observabilité · RUN Bug & incident (le cœur du métier) · RUN Maintenance & dépendances · PROTECT Sécurité (socle). Incident : P1 4 h ouvrées (correctif le jour ouvré même), P2 J+1, P3 semaine. 1ʳᵉ livraison 48 h. 1 flux. Maintenance illimitée + 20 crédits évolutions.
**Évolutions (9 700 €)** — « Un senior qui construit et livre à vos côtés. » + tout Maintenance. BUILD Produit & cadrage · BUILD UX/UI · BUILD Développement applicatif · BUILD Données · RUN Ingénierie de release (feature flags, canary, blue-green, rollback) · RUN DevOps & infra (CI/CD, IaC, conteneurs, cloud) · PROTECT Sécurité+ (auth, traçabilité exigences→code→test, RGPD+HDS). Incident : P1 2 h, P2 8 h, P3 2 j. 1ʳᵉ livraison 24 h. 2 flux. Maintenance + évolutions illimitées. Humain : 1 contact dédié + équipe senior.
**Pilotage (16 000 €)** — « Le jugement senior qui pilote toute la techno, avec un CTO joignable. » + tout Évolutions & Maintenance. PROTECT Sécurité++ (SAST/DAST, IEC 62304, ISO 14971) · PROTECT Performance & scalabilité · PROTECT Coût/FinOps · ADVISE Architecture & roadmap (niveau CTO). Incident : P1 1 h (lun-ven 9-19h), P2 4 h, P3 1 j. 1ʳᵉ livraison 12 h. 4 flux. CTO nommé + équipe senior. Option déploiement souverain (HDS) dès 3 000 € une fois (sur devis).
**Légende SLA (« Comment lire les SLA »)** — Réponse = quelqu'un travaille dessus pour de vrai (pas un accusé de réception). Correctif livré = PR ouverte, relue et validée par un senior, prête à fusionner. Première livraison = premier livrable utilisable (hors incident). Flux = chantier en cours (fonctionnalité/epic/incident) ; le nombre = combien en parallèle. Sévérité : P1 prod à l'arrêt/perte de données/faille · P2 dégradation majeure · P3 mineur/cosmétique. Couverture lun-ven heures ouvrées sauf on-call précisé. Délais de réponse fermes ; délais de correctif au mieux avec effort senior continu. Prix fixe sans TJM. 100 % du code reste au client.
### Décisions produit
- **2 pools de crédits** : maintenance + évolutions, chacun entier OU illimité (NULL). `CreditBalance` suit les deux par client.
- **Jauge profil = 2 indicateurs** (maintenance + évolutions ; afficher « illimité » quand NULL, jamais « bas »).
- **Page /offres** complète : 4 formules, deux pools, flux, SLA, humain/CTO, bullets RUN/BUILD/PROTECT/ADVISE, formule actuelle mise en évidence, CTA contact/upgrade. « Demander une mise à niveau » y renvoie.
### Découpage
1. Backend — modèle tiers à 2 pools + reseed + API + ajustement/alertes par pool.
2. Frontend — page /offres + jauge 2 indicateurs + TierCard + lien upgrade + i18n.
### Critères d'acceptation (épopée)
- [ ] Les 4 formules exposent maintenance & évolutions (nombre ou illimité), flux, SLA, prix — corrigés.
- [ ] La jauge profil montre 2 indicateurs (maintenance + évolutions), « illimité » géré, jamais faux « bas » sur un pool illimité.
- [ ] La page /offres présente les 4 formules avec tous les détails ci-dessus, formule actuelle mise en évidence.
- [ ] « Demander une mise à niveau » ouvre /offres.
- [ ] La page admin et les ajustements/alertes gèrent les deux pools.
- [ ] Migration : la table tiers + credit_balances migrées et reseedées avec les vraies valeurs.