{
    "info": {
        "_postman_id": "d057ba96-01fa-4904-8aa5-53107b5e793b",
        "name": "Gestion Établissements & Utilisateurs v2 CORRIGÉ",
        "description": "Collection avec variables de collection corrigées et tests améliorés",
        "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
        "_exporter_id": "39901298",
        "_collection_link": "https://www.postman.com/supply-astronomer-57355752/workspace/cmz/collection/39901298-d057ba96-01fa-4904-8aa5-53107b5e793b?action=share&source=collection_link&creator=39901298"
    },
    "item": [
        {
            "name": "0. AUTH",
            "item": [
                {
                    "name": "Login Responsable",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Status 200', () => pm.response.to.have.status(200));",
                                    "pm.test('Token saved', () => { const r = pm.response.json(); pm.collectionVariables.set('token', r.data.tokens.accessToken); console.log('✅ Token:', pm.collectionVariables); });"
                                ],
                                "type": "text/javascript",
                                "packages": {},
                                "requests": {}
                            }
                        },
                        {
                            "listen": "prerequest",
                            "script": {
                                "exec": [
                                    ""
                                ],
                                "type": "text/javascript",
                                "packages": {},
                                "requests": {}
                            }
                        }
                    ],
                    "request": {
                        "method": "POST",
                        "header": [],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"telephone\":\"0340000000\",\"mot_de_passe\":\"Admin@2025\"}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/auth/login",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "auth",
                                "login"
                            ]
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "1. ÉTABLISSEMENTS",
            "item": [
                {
                    "name": "Créer Bureau",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Bureau créé', () => { const r = pm.response.json(); pm.collectionVariables.set('bureau_id', r.data.id); console.log('✅ Bureau ID:', r.data.id); });"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"type\":\"BUREAU_PRINCIPAL\",\"nom\":\"Bureau Central\",\"adresse\":\"Tana\"}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/etablissements",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "etablissements"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "Créer Zone",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Zone créée', () => { const r = pm.response.json(); pm.collectionVariables.set('zone_id', r.data.id); console.log('✅ Zone ID:', r.data.id); });"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"type\":\"ZONE\",\"nom\":\"Zone Analamanga\",\"zone_parent_id\":{{bureau_id}}}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/etablissements",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "etablissements"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "Créer Sous-Zone",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Sous-zone créée', () => { const r = pm.response.json(); pm.collectionVariables.set('sous_zone_id', r.data.id); console.log('✅ Sous-zone ID:', r.data.id); });"
                                ],
                                "type": "text/javascript",
                                "packages": {},
                                "requests": {}
                            }
                        }
                    ],
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"type\":\"SOUS_ZONE\",\"nom\":\"Analakely\",\"zone_parent_id\":{{zone_id}}}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/etablissements",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "etablissements"
                            ]
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "2. UTILISATEURS",
            "item": [
                {
                    "name": "Agent AVEC etab",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Agent créé', () => { const r = pm.response.json(); pm.collectionVariables.set('agent_id', r.data.id); console.log('✅ Agent ID:', r.data.id); });"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"nom\":\"Rakoto\",\"prenom\":\"Jean\",\"telephone\":\"0321112233\",\"etablissement_id\":{{zone_id}}}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/agent",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "agent"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "Agent SANS etab",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Agent créé', () => { const r = pm.response.json(); pm.collectionVariables.set('agent_sans_id', r.data.id); console.log('✅ Agent sans etab ID:', r.data.id); });"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"nom\":\"Marie\",\"prenom\":\"Rasoa\",\"telephone\":\"0322223344\"}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/agent",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "agent"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "Freelance AVEC zones",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Freelance créé', () => { const r = pm.response.json(); pm.collectionVariables.set('freelance_id', r.data.id); console.log('✅ Freelance ID:', r.data.id); });"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"nom\":\"Randria\",\"prenom\":\"Fidy\",\"telephone\":\"0325556677\",\"zone_id\":{{zone_id}},\"sous_zone_id\":{{sous_zone_id}}}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/freelance",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "freelance"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "Freelance SANS zones",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Freelance créé', () => { const r = pm.response.json(); pm.collectionVariables.set('freelance_sans_id', r.data.id); console.log('✅ Freelance sans zones ID:', r.data.id); });"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"nom\":\"Rajaona\",\"prenom\":\"Toky\",\"telephone\":\"0326667788\"}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/freelance",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "freelance"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "Coursier AVEC zone",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Coursier créé', () => { const r = pm.response.json(); pm.collectionVariables.set('coursier_id', r.data.id); console.log('✅ Coursier ID:', r.data.id); });"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"nom\":\"Hery\",\"prenom\":\"Rabe\",\"telephone\":\"0327778899\",\"zone_couverture_id\":{{zone_id}}}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/coursier",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "coursier"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "Coursier SANS zone",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Coursier créé', () => { const r = pm.response.json(); pm.collectionVariables.set('coursier_sans_id', r.data.id); console.log('✅ Coursier sans zone ID:', r.data.id); });"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"nom\":\"Aina\",\"prenom\":\"Ratsi\",\"telephone\":\"0328889900\"}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/coursier",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "coursier"
                            ]
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "3. ASSIGNATION",
            "item": [
                {
                    "name": "Assigner etab Agent",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Assignation OK', () => pm.response.to.have.status(200));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"etablissement_id\":{{zone_id}}}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/{{agent_sans_id}}/assign-etablissement",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "{{agent_sans_id}}",
                                "assign-etablissement"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "Assigner zones Freelance",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Assignation OK', () => pm.response.to.have.status(200));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"zone_id\":{{zone_id}},\"sous_zone_id\":{{sous_zone_id}}}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/freelance/{{freelance_sans_id}}/assign-zones",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "freelance",
                                "{{freelance_sans_id}}",
                                "assign-zones"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "Assigner zone Coursier",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Assignation OK', () => pm.response.to.have.status(200));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"etablissement_id\":{{zone_id}}}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/{{coursier_sans_id}}/assign-etablissement",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "{{coursier_sans_id}}",
                                "assign-etablissement"
                            ]
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "4. CHANGEMENT",
            "item": [
                {
                    "name": "Changer etab Agent",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Changement OK', () => pm.response.to.have.status(200));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"etablissement_id\":{{bureau_id}}}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/{{agent_id}}/change-etablissement",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "{{agent_id}}",
                                "change-etablissement"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "Retirer etab (null)",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Retrait OK', () => pm.response.to.have.status(200));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"etablissement_id\":null}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/{{agent_id}}/change-etablissement",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "{{agent_id}}",
                                "change-etablissement"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "Changer zones Freelance",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Changement OK', () => pm.response.to.have.status(200));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"zone_id\":{{zone_id}},\"sous_zone_id\":null}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/freelance/{{freelance_id}}/change-zones",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "freelance",
                                "{{freelance_id}}",
                                "change-zones"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "Retirer zones Freelance",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Retrait OK', () => pm.response.to.have.status(200));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"zone_id\":null,\"sous_zone_id\":null}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/freelance/{{freelance_id}}/change-zones",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "freelance",
                                "{{freelance_id}}",
                                "change-zones"
                            ]
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "5. GESTION SOLDES",
            "item": [
                {
                    "name": "Modifier solde Etablissement",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Solde modifié', () => pm.response.to.have.status(200));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"montant\":500000}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/etablissements/{{bureau_id}}/solde",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "etablissements",
                                "{{bureau_id}}",
                                "solde"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "Modifier solde Freelance",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Solde modifié', () => pm.response.to.have.status(200));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"montant\":150000}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/freelance/{{freelance_id}}/solde",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "freelance",
                                "{{freelance_id}}",
                                "solde"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "ERREUR Solde négatif",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Rejeté', () => pm.response.to.have.status(400));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"montant\":-1000}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/freelance/{{freelance_id}}/solde",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "freelance",
                                "{{freelance_id}}",
                                "solde"
                            ]
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "6. VALIDATION TYPES ZONES",
            "item": [
                {
                    "name": "OK Freelance ZONE",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('ZONE OK', () => pm.response.to.have.status(200));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"zone_id\":{{zone_id}},\"sous_zone_id\":null}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/freelance/{{freelance_sans_id}}/assign-zones",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "freelance",
                                "{{freelance_sans_id}}",
                                "assign-zones"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "OK Freelance SOUS_ZONE",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('SOUS_ZONE OK', () => pm.response.to.have.status(200));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"zone_id\":null,\"sous_zone_id\":{{sous_zone_id}}}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/freelance/{{freelance_id}}/change-zones",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "freelance",
                                "{{freelance_id}}",
                                "change-zones"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "ERREUR Freelance BUREAU",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Rejeté', () => pm.response.to.have.status(400));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"zone_id\":{{bureau_id}},\"sous_zone_id\":null}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/freelance/{{freelance_sans_id}}/assign-zones",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "freelance",
                                "{{freelance_sans_id}}",
                                "assign-zones"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "ERREUR Freelance mauvais type sous-zone",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Rejeté', () => pm.response.to.have.status(400));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"zone_id\":null,\"sous_zone_id\":{{zone_id}}}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/freelance/{{freelance_sans_id}}/assign-zones",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "freelance",
                                "{{freelance_sans_id}}",
                                "assign-zones"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "OK Coursier ZONE",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('ZONE OK', () => pm.response.to.have.status(200));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"etablissement_id\":{{zone_id}}}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/{{coursier_sans_id}}/assign-etablissement",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "{{coursier_sans_id}}",
                                "assign-etablissement"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "ERREUR Coursier SOUS_ZONE",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Rejeté', () => pm.response.to.have.status(400));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"etablissement_id\":{{sous_zone_id}}}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/{{coursier_sans_id}}/assign-etablissement",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "{{coursier_sans_id}}",
                                "assign-etablissement"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "ERREUR Coursier BUREAU",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Rejeté', () => pm.response.to.have.status(400));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"etablissement_id\":{{bureau_id}}}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/{{coursier_sans_id}}/change-etablissement",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "{{coursier_sans_id}}",
                                "change-etablissement"
                            ]
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "7. CONSULTATION",
            "item": [
                {
                    "name": "Lister users",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/users",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "Filtrer Freelance",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/users?role=FREELANCE",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users"
                            ],
                            "query": [
                                {
                                    "key": "role",
                                    "value": "FREELANCE"
                                }
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "User par ID",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/users/{{freelance_id}}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "{{freelance_id}}"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "Lister etablissements",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/etablissements",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "etablissements"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "Hiérarchie",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/etablissements?hierarchy=true",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "etablissements"
                            ],
                            "query": [
                                {
                                    "key": "hierarchy",
                                    "value": "true"
                                }
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "Zones Bureau",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/etablissements/{{bureau_id}}/zones",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "etablissements",
                                "{{bureau_id}}",
                                "zones"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "Sous-zones Zone",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/etablissements/{{zone_id}}/sous-zones",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "etablissements",
                                "{{zone_id}}",
                                "sous-zones"
                            ]
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "8. CAS ERREUR",
            "item": [
                {
                    "name": "ERREUR Double assignation",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Rejeté', () => pm.response.to.have.status(400));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"etablissement_id\":{{zone_id}}}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/{{agent_id}}/assign-etablissement",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "{{agent_id}}",
                                "assign-etablissement"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "ERREUR Etab inexistant",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Rejeté', () => pm.response.to.have.status(404));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"etablissement_id\":9999}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/{{agent_sans_id}}/change-etablissement",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "{{agent_sans_id}}",
                                "change-etablissement"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "ERREUR Zone sans parent",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Rejeté', () => pm.response.to.have.status(400));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"type\":\"ZONE\",\"nom\":\"Zone orpheline\"}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/etablissements",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "etablissements"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "ERREUR Tel double",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Rejeté', () => pm.response.to.have.status(409));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"nom\":\"Test\",\"prenom\":\"Dupont\",\"telephone\":\"0321112233\"}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/agent",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "agent"
                            ]
                        }
                    },
                    "response": []
                },
                {
                    "name": "ERREUR Freelance zones vides",
                    "event": [
                        {
                            "listen": "test",
                            "script": {
                                "exec": [
                                    "pm.test('Rejeté', () => pm.response.to.have.status(400));"
                                ],
                                "type": "text/javascript"
                            }
                        }
                    ],
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{token}}"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"zone_id\":null,\"sous_zone_id\":null}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        },
                        "url": {
                            "raw": "{{base_url}}/users/freelance/{{freelance_sans_id}}/assign-zones",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "users",
                                "freelance",
                                "{{freelance_sans_id}}",
                                "assign-zones"
                            ]
                        }
                    },
                    "response": []
                }
            ]
        }
    ],
    "event": [
        {
            "listen": "prerequest",
            "script": {
                "type": "text/javascript",
                "packages": {},
                "requests": {},
                "exec": [
                    ""
                ]
            }
        },
        {
            "listen": "test",
            "script": {
                "type": "text/javascript",
                "packages": {},
                "requests": {},
                "exec": [
                    ""
                ]
            }
        }
    ],
    "variable": [
        {
            "key": "base_url",
            "value": "http://localhost:3001/api"
        },
        {
            "key": "token",
            "value": ""
        },
        {
            "key": "bureau_id",
            "value": ""
        },
        {
            "key": "zone_id",
            "value": ""
        },
        {
            "key": "sous_zone_id",
            "value": ""
        },
        {
            "key": "agent_id",
            "value": ""
        },
        {
            "key": "agent_sans_id",
            "value": ""
        },
        {
            "key": "freelance_id",
            "value": ""
        },
        {
            "key": "freelance_sans_id",
            "value": ""
        },
        {
            "key": "coursier_id",
            "value": ""
        },
        {
            "key": "coursier_sans_id",
            "value": ""
        },
        {
            "key": "test_collection",
            "value": ""
        }
    ]
}