Structure
La structure est un établissement scolaire ou administratif.
Une classe appartient à une structure (relation BELONGS)
Une structure peut être parente d'une autre structure. Cette hiérarchie permet de créer des groupes d'établissements scolaires par académie.
Recherche d'une structure
MATCH (u:Structure { id: $structureId }) RETURN u
Groupes dans une structure
Une structure contient une série de groupes
// Création de la relation DEPENDS entre Structure et ProfileGroup
MATCH (s:Structure { id: $structureId }) // Trouve la structure par son ID
MATCH (pg:ProfileGroup { name: $profileGroupName }) // Trouve le groupe de profil par son nom ou un autre identifiant
MERGE (pg)-[:DEPENDS]->(s); // Crée la relation DEPENDS entre ProfileGroup et Structure si elle n'existe pas
// sans commentaire pour le copier/coller
:params {
structureId: 'b3380c81-e5c7-49fa-9058-a5afce4cd1ea',
profileName: 'Teacher',
profileGroupName: 'Teacher Group'
}
MATCH (s:Structure { id: $structureId })
MATCH (pg:ProfileGroup { name: $profileGroupName })
MERGE (pg)-[:DEPENDS]->(s);
MERGE (p:Profile { name: $profileName })
MERGE (pg)-[:HAS_PROFILE]->(p);
Structure avec une relation de parent
MATCH (u:Structure { id: '48cc0875-717d-49c4-bb90-a0a8fac0e98a' }) RETURN u
{
"id": "518ffe62-a2fb-4142-8aca-f71a3faa2ea7",
"UAI": "0016268W",
"name": "CLG-ALAIN-CROZON",
"externalId": "565256",
"timetable": null,
"punctualTimetable": null,
"hasApp": null,
"ignoreMFA": null,
"levelsOfEducation": [
1,
2
],
"distributions": [],
"manualName": null,
"feederName": "CLG-ALAIN-CROZON",
"source": "AAF",
"exports": null,
"parents": [
{
"name": "COLLEGE",
"id": "48cc0875-717d-49c4-bb90-a0a8fac0e98a"
}
]
}