C.R.U.D. Cartes #12

Open
opened 2026-05-25 14:24:13 +00:00 by RiasGFirst · 0 comments
Owner

Objectif

Mettre en place les routes et la logique métier pour la gestion des cartes bancaires.
Aucune donnée sensible n'est stockée (pas de numéro, pas de CVV).
Le statut de la carte est calculé dynamiquement depuis la date d'expiration.
Une carte est liée soit à un compte, soit à un pocket — jamais les deux (contrainte XOR).

Tâches

  • Créer la table cards en base de données (contrainte XOR account/pocket)
  • POST /api/cards — Créer une carte
  • GET /api/cards — Lister toutes les cartes de l'utilisateur
  • GET /api/cards/:id — Détail d'une carte
  • PUT /api/cards/:id — Modifier une carte
  • DELETE /api/cards/:id — Supprimer une carte (hard delete)
  • Calcul dynamique du statut (active / expired) depuis expiration_date
  • Routes de validation temporaires

Validations

  • Le statut est bien calculé dynamiquement et non stocké
  • Une carte liée à un compte ET un pocket est rejetée (400 Bad Request)
  • Numéro de carte et CVV ne sont pas présents dans le schéma
  • DELETE supprime définitivement la carte
## Objectif Mettre en place les routes et la logique métier pour la gestion des cartes bancaires. Aucune donnée sensible n'est stockée (pas de numéro, pas de CVV). Le statut de la carte est calculé dynamiquement depuis la date d'expiration. Une carte est liée soit à un compte, soit à un pocket — jamais les deux (contrainte XOR). ## Tâches * [ ] Créer la table `cards` en base de données (contrainte XOR account/pocket) * [ ] `POST /api/cards` — Créer une carte * [ ] `GET /api/cards` — Lister toutes les cartes de l'utilisateur * [ ] `GET /api/cards/:id` — Détail d'une carte * [ ] `PUT /api/cards/:id` — Modifier une carte * [ ] `DELETE /api/cards/:id` — Supprimer une carte (hard delete) * [ ] Calcul dynamique du statut (`active` / `expired`) depuis `expiration_date` * [ ] Routes de validation temporaires ## Validations * [ ] Le statut est bien calculé dynamiquement et non stocké * [ ] Une carte liée à un compte ET un pocket est rejetée (`400 Bad Request`) * [ ] Numéro de carte et CVV ne sont pas présents dans le schéma * [ ] `DELETE` supprime définitivement la carte
Sign in to join this conversation.
No labels
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
RiasNetwork/riasbudget#12
No description provided.