{
    "status": "done",
    "apply": true,
    "plan_version": 1243,
    "programme_id": 7,
    "libelle": "DOCKSIDE",
    "drive_id": "b!Lb5Nj_7no0-TvERMwiGROelZ0oYm3lRPoBPnvB8oMpw8fXTxRouYSq6MDPP7Jwz3",
    "root_id": "01T6OSQJI3OZACH6ZJGNBKUFEHKEIA552H",
    "queue": [],
    "journal": [
        {
            "programme": 7,
            "source": "05_SUIVI_CHANTIER",
            "destination": "05_SUIVI_CHANTIER/1_DCE",
            "dossier": "05_SUIVI_CHANTIER/1_DCE",
            "action": "ensure",
            "resultat": "planifié",
            "detail": "1_DCE"
        },
        {
            "programme": 7,
            "source": "05_SUIVI_CHANTIER",
            "destination": "05_SUIVI_CHANTIER/2_AO",
            "dossier": "05_SUIVI_CHANTIER/2_AO",
            "action": "ensure",
            "resultat": "planifié",
            "detail": "2_AO"
        },
        {
            "programme": 7,
            "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": 7,
            "source": "05_SUIVI_CHANTIER",
            "destination": "05_SUIVI_CHANTIER/4_PRESTATAIRES",
            "dossier": "05_SUIVI_CHANTIER/4_PRESTATAIRES",
            "action": "ensure",
            "resultat": "planifié",
            "detail": "4_PRESTATAIRES"
        },
        {
            "programme": 7,
            "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": 7,
            "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": 7,
            "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": 7,
            "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": 7,
            "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": 7,
            "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": 7,
            "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": 7,
            "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": 7,
            "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": 7,
            "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": 7,
            "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": 7,
            "source": "05_SUIVI_CHANTIER",
            "destination": "05_SUIVI_CHANTIER/1_DCE",
            "dossier": "05_SUIVI_CHANTIER/1_DCE",
            "action": "ensure",
            "resultat": "créé",
            "detail": "01T6OSQJKSTISHLLEKEFH2JKLAMD3KLDDK",
            "at": "2026-08-07T14:09:45+00:00"
        },
        {
            "programme": 7,
            "source": "05_SUIVI_CHANTIER",
            "destination": "05_SUIVI_CHANTIER/2_AO",
            "dossier": "05_SUIVI_CHANTIER/2_AO",
            "action": "ensure",
            "resultat": "créé",
            "detail": "01T6OSQJNTP2PCQW3ZFREZ3KNU425UOKNQ",
            "at": "2026-08-07T14:09:46+00:00"
        },
        {
            "programme": 7,
            "source": "05_SUIVI_CHANTIER",
            "destination": "05_SUIVI_CHANTIER/3_DOSSIER_MARCHE",
            "dossier": "05_SUIVI_CHANTIER/3_DOSSIER_MARCHE",
            "action": "ensure",
            "resultat": "créé",
            "detail": "01T6OSQJM2ZXW26LATUNCYMRLMN5BWBL24",
            "at": "2026-08-07T14:09:46+00:00"
        },
        {
            "programme": 7,
            "source": "05_SUIVI_CHANTIER",
            "destination": "05_SUIVI_CHANTIER/4_PRESTATAIRES",
            "dossier": "05_SUIVI_CHANTIER/4_PRESTATAIRES",
            "action": "ensure",
            "resultat": "créé",
            "detail": "01T6OSQJIKJJ5LHYPU2NF2EKJBYOIUI7AR",
            "at": "2026-08-07T14:09:47+00:00"
        },
        {
            "programme": 7,
            "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": "01T6OSQJM7P3B5CHXOXNFK2T5Q3MPRDJDC",
                "webUrl": "https://hectaresa.sharepoint.com/sites/envol2026/PROGRAMMES/13/PORT_SAINT_LOUIS_DU_RHONE/ENV13-002--DOCKSIDE/05_SUIVI_CHANTIER/_old_1_PRESTATAIRES",
                "name": "_old_1_PRESTATAIRES"
            },
            "at": "2026-08-07T14:09:47+00:00"
        },
        {
            "programme": 7,
            "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": "01T6OSQJIYPCGLCMUVAVF2JMLD6SOTPDAZ",
                "webUrl": "https://hectaresa.sharepoint.com/sites/envol2026/PROGRAMMES/13/PORT_SAINT_LOUIS_DU_RHONE/ENV13-002--DOCKSIDE/05_SUIVI_CHANTIER/_old_2_ENTREPRISES",
                "name": "_old_2_ENTREPRISES"
            },
            "at": "2026-08-07T14:09:48+00:00"
        },
        {
            "programme": 7,
            "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:09:48+00:00"
        },
        {
            "programme": 7,
            "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:09:49+00:00"
        },
        {
            "programme": 7,
            "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:09:49+00:00"
        },
        {
            "programme": 7,
            "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:09:50+00:00"
        },
        {
            "programme": 7,
            "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:09:50+00:00"
        },
        {
            "programme": 7,
            "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:09:51+00:00"
        },
        {
            "programme": 7,
            "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:09:51+00:00"
        },
        {
            "programme": 7,
            "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:09:51+00:00"
        },
        {
            "programme": 7,
            "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:09:54+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:09:54+00:00"
}