{
  "usecases": {
    "EnregistrerNouveauLivre": {
      "input": {
        "isbn": "string(13)", 
        "titre": "string(required)",
        "auteur": "string(required)",
        "editeur": "string(required)",
        "datePublication": "date",
        "prix": "decimal(positive)",
        "stockInitial": "integer(min:0)",
        "categories": "array<string>",
        "description": "string",
        "langue": "string"
      },
      "output": {
        "isbn": "string(13)"
      }
    },

    "PasserCommande": {
      "input": {
        "clientId": "uuid",
        "lignesCommande": [{
          "livreId": "uuid",
          "quantite": "integer(positive)"
        }],
        "adresseLivraison": {
          "rue": "string",
          "ville": "string",
          "codePostal": "string",
          "pays": "string"
        },
        "modePaiement": "string(enum: CB, PAYPAL, POINTS_FIDELITE)"
      },
      "output": {
        "commandeId": "uuid",
        "montantTotal": "decimal",
        "pointsFideliteGagnes": "integer"
      }
    },
    "GererAvis": {
      "input": {
        "clientId": "uuid",
        "livreId": "uuid",
        "note": "integer(min:1,max:5)",
        "commentaire": "string",
        "dateAchat": "date"
      },
      "output": {
        "avisId": "uuid"
      }
    },

    "CreerAbonnement": {
      "input": {
        "clientId": "uuid",
        "duree": "integer(enum: 3,6,12)",
        "modePaiement": {
          "type": "string(enum: CB, PAYPAL)",
          "details": "object"
        },
        "dateDebutSouhaitee": "date"
      },
      "output": {
        "abonnementId": "uuid",
        "dateDebut": "date",
        "dateFin": "date",
        "montantMensuel": "decimal"
      }
    }
  }
}