meta {
  name: 03 Update
  type: http
  seq: 3
}

patch {
  url: {{baseUrl}}/api/v1/plans/{{planSlug}}
  body: json
  auth: inherit
}

body:json {
  {
    "name": "Standard B2B (édité)",
    "description": "Cadence affinée après retour utilisateur.",
    "steps": [
      {
        "order": 0,
        "offsetDays": 5,
        "tone": "amical",
        "subject": "Petit rappel — facture 1",
        "body": "Bonjour name,\n\nUn rappel pour la facture 1.\n\nSignatire",
        "requiresManualValidation": false
      },
      {
        "order": 1,
        "offsetDays": 12,
        "tone": "courtois",
        "subject": "Relance facture 1",
        "body": "Bonjour, la facture 1 reste impayée.\n\nSignature",
        "requiresManualValidation": false
      }
    ]
    
  }
}

tests {
  test("200 OK", function () {
    expect(res.getStatus()).to.equal(200);
  });
  test("steps replaced (2 steps now)", function () {
    expect(res.getBody().data.steps).to.have.lengthOf(2);
  });
}

docs {
  PATCH /api/v1/plans/:slug
  
  Édite name, description et/ou steps. Les steps sont **remplacés en bloc**
  dans une transaction (pas de diff fin id-par-id) — plus simple et
  prévisible côté UX.
  
  Validation des steps :
  - 1 à 10 étapes
  - `tone` ∈ `amical | courtois | ferme | mise_en_demeure`
  - `offsetDays` ∈ [-30, 180]
  - `subject` 1-200, `body` 1-5000
}
