Project

General

Profile

Actions

Feature #1141

open
RA

Feature #1133: Implémenter une page de profil utilisateur avec gestion des crédits et des tiers d'abonnement

Backend — Modèle de données crédits/tiers, permissions et historique

Feature #1141: Backend — Modèle de données crédits/tiers, permissions et historique

Added by Redmine Admin about 2 months ago. Updated about 2 months ago.

Status:
QA
Priority:
Normal
Assignee:
-
Start date:
06/18/2026
Due date:
% Done:

0%

Estimated time:
spec_ref:

issue:1133 — spec in epic + ticket description

build_status:
build_number:
ci_run_url:
scan_status:
scan_report_url:
deploy_status:
preprod_url:
deployed_at:
branch:
feat/1141-credits-tiers-backend
pr_url:
https://github.com/omdev-tech/PipeLiner-Client/pull/67
security_key:
severity:
paused:

Description

## Objectif
Poser les fondations backend (`api/`, architecture hexagonale : domain / application / infrastructure / presentation) pour les crédits, les tiers d'abonnement, leur historique et les permissions associées. Racine de l'épopée #1133 — les autres enfants en dépendent.

## Portée
- **Domaine** : entités `Tier` (Démarrage 2 500 €, Maintenance 4 200 €, Évolutions 9 700 €, Pilotage 16 000 € — crédits/flux/SLA par tier), `CreditBalance` (crédits restants par client), `AuditEntry` (modifications tier/crédits : qui, quoi, ancien→nouveau, quand).
- **Migration Alembic** + seed des définitions de tiers, synchronisées avec les offres commerciales.
- **Application** : use-cases lire profil/crédits/tier d'un client, modifier le tier, ajuster les crédits (delta + / -), lister l'historique. Chaque mutation émet un événement de domaine (tier changé, crédits ajustés, crédits bas <20 %) consommable par les notifications (enfant #2).
- **Permissions** : seuls les admins OmDev peuvent modifier tiers/crédits (les lectures restent ouvertes au client propriétaire). 403 sinon.
- **Présentation** : endpoints REST de lecture (profil/crédits/tier/historique) et d'écriture (édition tier, ajustement crédits) sous garde de permission.

## Acceptance criteria
- [ ] Les 4 tiers sont définis avec montant, crédits, flux, SLA, et seedés via une migration Alembic.
- [ ] Le solde de crédits d'un client est lisible via un endpoint authentifié (propriétaire ou admin).
- [ ] Modifier un tier ou ajuster des crédits écrit une entrée d'historique (auteur, ancien→nouveau, horodatage).
- [ ] L'historique est consultable via un endpoint (paginé, filtré par client).
- [ ] Toute mutation tier/crédits par un non-admin OmDev renvoie 403.
- [ ] Les mutations émettent les événements de domaine (tier changé, crédits ajustés, crédits bas <20 %).
- [ ] Tests pytest verts (TDD), `ruff check .` et `mypy src` propres.

Actions

Also available in: PDF Atom