{
    "status": "done",
    "apply": true,
    "plan_version": 1243,
    "programme_id": 12,
    "libelle": "TEST MARQUES",
    "drive_id": "b!Lb5Nj_7no0-TvERMwiGROelZ0oYm3lRPoBPnvB8oMpw8fXTxRouYSq6MDPP7Jwz3",
    "root_id": "01T6OSQJIGJXRQOULP4ZE2JDSSRIGPX2N7",
    "queue": [],
    "journal": [
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER",
            "destination": "05_SUIVI_CHANTIER/1_DCE",
            "dossier": "05_SUIVI_CHANTIER/1_DCE",
            "action": "ensure",
            "resultat": "planifié",
            "detail": "1_DCE"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER",
            "destination": "05_SUIVI_CHANTIER/2_AO",
            "dossier": "05_SUIVI_CHANTIER/2_AO",
            "action": "ensure",
            "resultat": "planifié",
            "detail": "2_AO"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER",
            "destination": "05_SUIVI_CHANTIER/3_DOSSIER_MARCHE",
            "dossier": "05_SUIVI_CHANTIER/3_DOSSIER_MARCHE",
            "action": "ensure",
            "resultat": "planifié",
            "detail": "3_DOSSIER_MARCHE"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER",
            "destination": "05_SUIVI_CHANTIER/4_PRESTATAIRES",
            "dossier": "05_SUIVI_CHANTIER/4_PRESTATAIRES",
            "action": "ensure",
            "resultat": "planifié",
            "detail": "4_PRESTATAIRES"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER/1_PRESTATAIRES",
            "destination": "05_SUIVI_CHANTIER/_old_1_PRESTATAIRES",
            "dossier": "05_SUIVI_CHANTIER/1_PRESTATAIRES",
            "action": "rename",
            "resultat": "planifié",
            "detail": "_old_1_PRESTATAIRES"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER/2_ENTREPRISES",
            "destination": "05_SUIVI_CHANTIER/_old_2_ENTREPRISES",
            "dossier": "05_SUIVI_CHANTIER/2_ENTREPRISES",
            "action": "rename",
            "resultat": "planifié",
            "detail": "_old_2_ENTREPRISES"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER/_old_1_PRESTATAIRES",
            "destination": "(suppression si vide)",
            "dossier": "05_SUIVI_CHANTIER/_old_1_PRESTATAIRES",
            "action": "delete_only_if_empty",
            "resultat": "planifié",
            "detail": null
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER/_old_2_ENTREPRISES",
            "destination": "(suppression si vide)",
            "dossier": "05_SUIVI_CHANTIER/_old_2_ENTREPRISES",
            "action": "delete_only_if_empty",
            "resultat": "planifié",
            "detail": null
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER/3_CONCESSIONNAIRES",
            "destination": "(suppression si vide)",
            "dossier": "05_SUIVI_CHANTIER/3_CONCESSIONNAIRES",
            "action": "delete_only_if_empty",
            "resultat": "planifié",
            "detail": null
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER/4_TAXES",
            "destination": "(suppression si vide / sinon _old_)",
            "dossier": "05_SUIVI_CHANTIER/4_TAXES",
            "action": "delete_if_empty",
            "resultat": "planifié",
            "detail": "_old_4_TAXES"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER/PRESTATAIRES",
            "destination": "(suppression si vide / sinon _old_)",
            "dossier": "05_SUIVI_CHANTIER/PRESTATAIRES",
            "action": "delete_if_empty",
            "resultat": "planifié",
            "detail": "_old_PRESTATAIRES"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER/DOSSIER_MARCHE",
            "destination": "(suppression si vide / sinon _old_)",
            "dossier": "05_SUIVI_CHANTIER/DOSSIER_MARCHE",
            "action": "delete_if_empty",
            "resultat": "planifié",
            "detail": "_old_DOSSIER_MARCHE"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER/DCE",
            "destination": "(suppression si vide / sinon _old_)",
            "dossier": "05_SUIVI_CHANTIER/DCE",
            "action": "delete_if_empty",
            "resultat": "planifié",
            "detail": "_old_DCE"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER/AO",
            "destination": "(suppression si vide / sinon _old_)",
            "dossier": "05_SUIVI_CHANTIER/AO",
            "action": "delete_if_empty",
            "resultat": "planifié",
            "detail": "_old_AO"
        },
        {
            "programme": 12,
            "source": "00_COMITES_ENGAGEMENT",
            "destination": "(suppression si vide)",
            "dossier": "00_COMITES_ENGAGEMENT",
            "action": "delete_tree_if_empty",
            "resultat": "planifié",
            "detail": "_old_00_COMITES_ENGAGEMENT"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER",
            "destination": "05_SUIVI_CHANTIER/1_DCE",
            "dossier": "05_SUIVI_CHANTIER/1_DCE",
            "action": "ensure",
            "resultat": "créé",
            "detail": "01T6OSQJKWVFV7J7IWBBCLB2UGI6G4VWLT",
            "at": "2026-08-07T14:07:09+00:00"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER",
            "destination": "05_SUIVI_CHANTIER/2_AO",
            "dossier": "05_SUIVI_CHANTIER/2_AO",
            "action": "ensure",
            "resultat": "créé",
            "detail": "01T6OSQJJI6FLATI6SDJB3EPFDTWOFRGUQ",
            "at": "2026-08-07T14:07:09+00:00"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER",
            "destination": "05_SUIVI_CHANTIER/3_DOSSIER_MARCHE",
            "dossier": "05_SUIVI_CHANTIER/3_DOSSIER_MARCHE",
            "action": "ensure",
            "resultat": "créé",
            "detail": "01T6OSQJMYKZBLYVERFRELAJ6MGEWPGTEH",
            "at": "2026-08-07T14:07:10+00:00"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER",
            "destination": "05_SUIVI_CHANTIER/4_PRESTATAIRES",
            "dossier": "05_SUIVI_CHANTIER/4_PRESTATAIRES",
            "action": "ensure",
            "resultat": "créé",
            "detail": "01T6OSQJILQXICQO47TRB2A77YD6SXQAWQ",
            "at": "2026-08-07T14:07:11+00:00"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER/1_PRESTATAIRES",
            "destination": "05_SUIVI_CHANTIER/_old_1_PRESTATAIRES",
            "dossier": "05_SUIVI_CHANTIER/1_PRESTATAIRES",
            "action": "rename",
            "resultat": "renommé",
            "detail": {
                "id": "01T6OSQJJBHM3X4H3NX5EKXKUHHWHC2RXX",
                "webUrl": "https://hectaresa.sharepoint.com/sites/envol2026/PROGRAMMES/34/VENDARGUES/ENV34-008--TEST_MARQUES/05_SUIVI_CHANTIER/_old_1_PRESTATAIRES",
                "name": "_old_1_PRESTATAIRES"
            },
            "at": "2026-08-07T14:07:11+00:00"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER/2_ENTREPRISES",
            "destination": "05_SUIVI_CHANTIER/_old_2_ENTREPRISES",
            "dossier": "05_SUIVI_CHANTIER/2_ENTREPRISES",
            "action": "rename",
            "resultat": "renommé",
            "detail": {
                "id": "01T6OSQJIHGEYNE3PMUZEKNBZS2KRZDD2D",
                "webUrl": "https://hectaresa.sharepoint.com/sites/envol2026/PROGRAMMES/34/VENDARGUES/ENV34-008--TEST_MARQUES/05_SUIVI_CHANTIER/_old_2_ENTREPRISES",
                "name": "_old_2_ENTREPRISES"
            },
            "at": "2026-08-07T14:07:12+00:00"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER/_old_1_PRESTATAIRES",
            "destination": "(suppression si vide)",
            "dossier": "05_SUIVI_CHANTIER/_old_1_PRESTATAIRES",
            "action": "delete_only_if_empty",
            "resultat": "supprimé (vide vérifié)",
            "detail": null,
            "at": "2026-08-07T14:07:12+00:00"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER/_old_2_ENTREPRISES",
            "destination": "(suppression si vide)",
            "dossier": "05_SUIVI_CHANTIER/_old_2_ENTREPRISES",
            "action": "delete_only_if_empty",
            "resultat": "supprimé (vide vérifié)",
            "detail": null,
            "at": "2026-08-07T14:07:12+00:00"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER/3_CONCESSIONNAIRES",
            "destination": "(suppression si vide)",
            "dossier": "05_SUIVI_CHANTIER/3_CONCESSIONNAIRES",
            "action": "delete_only_if_empty",
            "resultat": "supprimé (vide vérifié)",
            "detail": null,
            "at": "2026-08-07T14:07:13+00:00"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER/4_TAXES",
            "destination": "(suppression si vide / sinon _old_)",
            "dossier": "05_SUIVI_CHANTIER/4_TAXES",
            "action": "delete_if_empty",
            "resultat": "supprimé (vide vérifié)",
            "detail": null,
            "at": "2026-08-07T14:07:14+00:00"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER/PRESTATAIRES",
            "destination": "(suppression si vide / sinon _old_)",
            "dossier": "05_SUIVI_CHANTIER/PRESTATAIRES",
            "action": "delete_if_empty",
            "resultat": "supprimé (vide vérifié)",
            "detail": null,
            "at": "2026-08-07T14:07:14+00:00"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER/DOSSIER_MARCHE",
            "destination": "(suppression si vide / sinon _old_)",
            "dossier": "05_SUIVI_CHANTIER/DOSSIER_MARCHE",
            "action": "delete_if_empty",
            "resultat": "supprimé (vide vérifié)",
            "detail": null,
            "at": "2026-08-07T14:07:15+00:00"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER/DCE",
            "destination": "(suppression si vide / sinon _old_)",
            "dossier": "05_SUIVI_CHANTIER/DCE",
            "action": "delete_if_empty",
            "resultat": "supprimé (vide vérifié)",
            "detail": null,
            "at": "2026-08-07T14:07:16+00:00"
        },
        {
            "programme": 12,
            "source": "05_SUIVI_CHANTIER/AO",
            "destination": "(suppression si vide / sinon _old_)",
            "dossier": "05_SUIVI_CHANTIER/AO",
            "action": "delete_if_empty",
            "resultat": "supprimé (vide vérifié)",
            "detail": null,
            "at": "2026-08-07T14:07:16+00:00"
        },
        {
            "programme": 12,
            "source": "00_COMITES_ENGAGEMENT",
            "destination": "(suppression si vide)",
            "dossier": "00_COMITES_ENGAGEMENT",
            "action": "delete_tree_if_empty",
            "resultat": "arbre comités supprimé (vide vérifié)",
            "detail": null,
            "at": "2026-08-07T14:07:19+00:00"
        }
    ],
    "errors": [],
    "notes": [
        "#1243 : marchés déplacés automatiquement _old_/3_CONCESSIONNAIRES → 4_PRESTATAIRES (item_id).",
        "#1241 n'avait PAS renommé les sous-dossiers marché (00_PIECES…) — normalisés ici.",
        "moveDriveItem = PATCH parentReference (métadonnée, item_id conservé). Ne pas réécrire sharepoint_url.",
        "Réversibilité : move inverse 4_PRESTATAIRES/{marché} → _old_1_PRESTATAIRES (recréer le parent si besoin)."
    ],
    "collisions": [],
    "message": "Migration terminée (idempotente). Relancer → 0 opération si déjà conforme.",
    "error": null,
    "batch_done": 15,
    "updated_at": "2026-08-07T14:07:19+00:00"
}