[Definition of Done (DoD) - API CRUD Produit

  1. Général
    • Le code respecte les standards Laravel (PSR-12, conventions de nommage).

    • Le modèle Product est défini avec les relations et validations nécessaires.

    • Les routes et contrôleurs suivent la structure Laravel recommandée.

    • La documentation API (SCRIBE) est à jour

  2. Create (POST /create/product)
    • La requête est validée via FormRequest ou Validator.
    • Champs obligatoires :
    • name : string, obligatoire, unique, longueur max 255 caractères.

    • price : decimal, obligatoire, ≥ 0.

    • stock_quantity : integer, obligatoire, ≥ 0.

    • category_id : uuid, obligatoire, doit exister dans la table categories.

    • Champs optionnels (nullable) :
    • description : string, nullable.

    • image_url : string, nullable, URL valide si fournie.

    • La création du produit est persistée en base avec toutes les propriétés obligatoires remplies et les propriétés optionnelles/nullable gérées correctement.

    • Réponse JSON renvoyée avec le produit créé et code HTTP 201 Created.

    • Les tests manuels sont réalisés avec Postman/Insomnia.

    • Gestion des erreurs : doublon, données manquantes ou invalides.

  3. Read (GET /products et GET /product/{id})
    • Les endpoints retournent la liste ou le produit spécifique au format JSON standard.

    • Pagination et filtres appliqués si nécessaire.

    • Code HTTP 200 OK pour succès et 422 Not Found si le produit n’existe pas.

    • Tests manuels avec Postman/Insomnia.

  4. Update (PUT /product/{id})
    • Validation des données entrantes via FormRequest.
    • Champs modifiables :
    • name : string, unique si modifié, longueur max 255 caractères.

    • price : decimal, ≥ 0.

    • stock_quantity : integer, ≥ 0.

    • category_id : uuid, doit exister dans la table categories.

    • description : string, nullable.

    • image_url : string, nullable, URL valide si fournie.

    • Mise à jour en base des champs modifiables.

    • Réponse JSON renvoyée avec le produit mis à jour et code HTTP 200 OK.

    • Gestion des erreurs : produit non trouvé, données invalides.

    • Tests manuels réalisés.

  5. Delete (DELETE /product/{id})
    • Vérification que le produit existe avant suppression.

    • Suppression en base de données ou soft delete selon la configuration.

    • Réponse HTTP 204 No Content ou code adapté.

    • Gestion des erreurs : produit non trouvé, conflit lié à des relations.

    • Tests manuels réalisés.

  6. Sécurité & Performance
    • Endpoints sécurisés via middleware (auth, rôle, permissions).

    • Protection contre injection SQL et validation stricte des entrées.

    • Optimisation des requêtes Éloquent (éviter N+1 queries).

    • Rate-limiting si applicable.

    • Données sensibles protégées (tokens, secrets).

  7. Livraison
    • Tests manuels réussis.

    • Documentation Scribe à jour et testée.

    • Endpoint prêt à être consommé par le frontend ou clients externes.

    • Validation finale par le Manager si nécessaire.

!Definition Of Done (DoD) API CRUD[]2025-10-01T18:12:12.408Z