# Deep Dive ## The big picture ### Core Domain - `src/Uriae/EmployeeBundle` : core employee lifecycle - `src/Uriae/SuiviBundle`: follow-up domain - `src/Uriae/AspBundle`: ASP integration boundary - `src/Uriae/StructureBundle`: tenant/organization scope - `src/Uriae/UnionBundle`: shared referentials ### Metrics Domain - `src/Uriae/BilanBundle`: cross-context reporting/metrics aggregation ### Pipeline Domain - `src/Uriae/ImportBundle`: batch ingestion pipelines - `src/Uriae/ExportBundle`: batch extraction pipelines ## InDepth maps ### EmployeeBundle - **Core entities** - `src/Uriae/EmployeeBundle/Entity/Employee.php` - `src/Uriae/EmployeeBundle/Entity/Contrat.php` - `src/Uriae/EmployeeBundle/Entity/ParcoursInsertion.php` - `src/Uriae/EmployeeBundle/Entity/FirstHome.php` - `src/Uriae/EmployeeBundle/Entity/AdministrativeInformation.php` - **Repositories** - `src/Uriae/EmployeeBundle/Repository/EmployeeRepository.php` - `src/Uriae/EmployeeBundle/Repository/ContratRepository.php` - **Forms** - `src/Uriae/EmployeeBundle/Form/Type/AddEmployeeFormType.php` - `src/Uriae/EmployeeBundle/Form/Type/ContratType.php` - **Controllers** - `src/Uriae/EmployeeBundle/Controller/EmployeeController.php` - `src/Uriae/EmployeeBundle/Controller/ContratsController.php` - **Services/Models** - `src/Uriae/EmployeeBundle/Model/SituationSortieUpdater.php` - `src/Uriae/EmployeeBundle/Model/EmployeeStateUpdater.php` - **Fixtures** - `src/Uriae/EmployeeBundle/DataFixtures/ORM/shared/LoadTypeEmployee.php` - `src/Uriae/EmployeeBundle/DataFixtures/ORM/shared/LoadFormesContrat.php` - **Commands** - `src/Uriae/EmployeeBundle/Command/UpdateSituationSortieCommand.php` - `src/Uriae/EmployeeBundle/Command/UpdateContratDatesEmployeCommand.php` - `src/Uriae/EmployeeBundle/Command/AnonymisationProcessCommand.php` ### SuiviBundle - **Core entities** - `src/Uriae/SuiviBundle/Entity/Action.php` (abstract parent). - `src/Uriae/SuiviBundle/Entity/Accompagnement.php`. - `src/Uriae/SuiviBundle/Entity/Evaluation.php`. - `src/Uriae/SuiviBundle/Entity/Event.php`. - `src/Uriae/SuiviBundle/Entity/Rdv.php`. - `src/Uriae/SuiviBundle/Entity/Problematique.php`. - `src/Uriae/SuiviBundle/Entity/FormationInterne.php`. - `src/Uriae/SuiviBundle/Entity/ParticipationFormation.php`. - **Repositories** - `src/Uriae/SuiviBundle/Repository/AccompagnementRepository.php`. - `src/Uriae/SuiviBundle/Repository/EvaluationRepository.php`. - **Forms** - `src/Uriae/SuiviBundle/Form/Type/AccompagnementType.php`. - `src/Uriae/SuiviBundle/Form/Type/EvaluationType.php`. - `src/Uriae/SuiviBundle/Form/Type/RdvType.php`. - `src/Uriae/SuiviBundle/Form/Type/ProblematiqueType.php`. - **Controllers** - `src/Uriae/SuiviBundle/Controller/SuiviController.php`. - `src/Uriae/SuiviBundle/Controller/AccompagnementController.php`. - `src/Uriae/SuiviBundle/Controller/BilanIndividuelController.php`. - **Services/Models** - `src/Uriae/SuiviBundle/Model/FormatterBilanIndividuel.php`. - **Fixtures** - `src/Uriae/SuiviBundle/DataFixtures/ORM/shared/LoadTypeAction.php`. - `src/Uriae/SuiviBundle/DataFixtures/ORM/shared/LoadReferentielEvaluation.php`. - **Commands** - `src/Uriae/SuiviBundle/Command/MigrateActionCommand.php`. - `src/Uriae/SuiviBundle/Command/DesactivateHabilitationsCommand.php`. ### AspBundle - **Core entities** - `src/Uriae/AspBundle/Entity/FicheContratAsp.php`. - `src/Uriae/AspBundle/Entity/ModificationAsp.php`. - `src/Uriae/AspBundle/Entity/Suivi.php`. - `src/Uriae/AspBundle/Entity/FichierEnvoiAsp.php`. - `src/Uriae/AspBundle/Entity/FichierRetourAsp.php`. - **Repositories** - `src/Uriae/AspBundle/Repository/FicheContratAspRepository.php`. - **Forms** - `src/Uriae/AspBundle/Form/Type/FicheContratAspType.php`. - `src/Uriae/AspBundle/Form/Type/FichierRetourAspType.php`. - **Controllers** - `src/Uriae/AspBundle/Controller/InscriptionController.php`. - `src/Uriae/AspBundle/Controller/ModificationController.php`. - `src/Uriae/AspBundle/Controller/SuiviMensuelEtSortieController.php`. - **Managers** - `src/Uriae/AspBundle/Manager/AspFicheContratManager.php`. - `src/Uriae/AspBundle/Manager/InscriptionManager.php`. - `src/Uriae/AspBundle/Manager/ModificationManager.php`. - `src/Uriae/AspBundle/Manager/RenouvellementManager.php`. - **Fixtures** - `src/Uriae/AspBundle/DataFixtures/ORM/shared/LoadTypeContratAsp.php`. - `src/Uriae/AspBundle/DataFixtures/ORM/shared/LoadNatureEmploi.php`. - **Commands** - `src/Uriae/AspBundle/Command/UpdateAspFileCommand.php`. - `src/Uriae/AspBundle/Command/MigrateRenouvellementCommand.php`. ### StructureBundle - **Core entities** - `src/Uriae/StructureBundle/Entity/Structure.php`. - `src/Uriae/StructureBundle/Entity/SiteTravail.php`. - `src/Uriae/StructureBundle/Entity/Alerte.php`. - `src/Uriae/StructureBundle/Entity/Competence.php`. - `src/Uriae/StructureBundle/Entity/HeadOffice.php`. - **Repositories** - `src/Uriae/StructureBundle/Repository/StructureRepository.php`. - `src/Uriae/StructureBundle/Repository/CompetenceRepository.php`. - **Forms** - `src/Uriae/StructureBundle/Form/Type/AddStructureFormType.php`. - `src/Uriae/StructureBundle/Form/Type/InformationStructureType.php`. - `src/Uriae/StructureBundle/Form/Type/AlerteType.php`. - **Controllers** - `src/Uriae/StructureBundle/Controller/StructureController.php`. - **Services/Models** - `src/Uriae/StructureBundle/Model/EvaluationUpdater.php`. - `src/Uriae/StructureBundle/Model/DiaryHandler.php`. - **Fixtures** - `src/Uriae/StructureBundle/DataFixtures/ORM/shared/LoadTownDepartementRegion.php`. - `src/Uriae/StructureBundle/DataFixtures/ORM/shared/LoadTypeSiae.php`. - `src/Uriae/StructureBundle/DataFixtures/ORM/shared/LoadFormeJuridique.php`. - **Commands** - `src/Uriae/StructureBundle/Command/UpdateStructureEvaluationsCommand.php`. - `src/Uriae/StructureBundle/Command/AddAlerteCommand.php`. - `src/Uriae/StructureBundle/Command/SendDiaryMailerCommand.php`. ### UnionBundle - **Core entities** - `src/Uriae/UnionBundle/Entity/Partenaire.php`. - `src/Uriae/UnionBundle/Entity/SituationSortie.php`. - `src/Uriae/UnionBundle/Entity/TypeSituationSortie.php`. - `src/Uriae/UnionBundle/Entity/Conventionnement.php`. - `src/Uriae/UnionBundle/Entity/Union.php`. - **Repositories** - `src/Uriae/UnionBundle/Repository/PartenaireRepository.php`. - `src/Uriae/UnionBundle/Repository/SituationSortieRepository.php`. - **Forms** - `src/Uriae/UnionBundle/Form/Type/PartenaireType.php`. - `src/Uriae/UnionBundle/Form/Type/SituationSortieType.php`. - `src/Uriae/UnionBundle/Form/Type/ConventionnementType.php`. - **Controllers** - `src/Uriae/UnionBundle/Controller/ReferentielInsertionController.php`. - `src/Uriae/UnionBundle/Controller/SituationsSalariesController.php`. - **Fixtures** - `src/Uriae/UnionBundle/DataFixtures/ORM/shared/LoadTypeSituationsSortie.php`. - `src/Uriae/UnionBundle/DataFixtures/ORM/shared/LoadTypePartenaire.php`. - `src/Uriae/UnionBundle/DataFixtures/ORM/shared/LoadConventionnement.php`. ### Others Bundles - **Bilan** - `src/Uriae/BilanBundle/Controller/BilanController.php`. - `src/Uriae/BilanBundle/Model/Formatter.php`. - `src/Uriae/BilanBundle/Form/Model/Filter.php`. - `src/Uriae/BilanBundle/Form/Model/FilterUnion.php`. - `src/Uriae/BilanBundle/Form/Model/FilterFactory.php`. - **Import** - `src/Uriae/ImportBundle/Controller/ImportController.php`. - `src/Uriae/ImportBundle/Model/Import/ImportFactory.php`. - `src/Uriae/ImportBundle/Model/Import/AbstractImport.php`. - `src/Uriae/ImportBundle/Model/Import/ImportSalarie.php`. - `src/Uriae/ImportBundle/Model/Import/ImportContrat.php`. - `src/Uriae/ImportBundle/Model/Import/ImportParcours.php`. - `src/Uriae/ImportBundle/Model/Import/ImportExportAsp.php`. - **Export** - `src/Uriae/ExportBundle/Controller/ExportController.php`. - `src/Uriae/ExportBundle/Model/Export/AbstractExport.php`. - `src/Uriae/ExportBundle/Model/Export/ExportFactory.php`. - `src/Uriae/ExportBundle/Model/Export/ExportSalarie.php`. - `src/Uriae/ExportBundle/Model/Export/ExportContrat.php`. - `src/Uriae/ExportBundle/Model/Export/ExportParcours.php`. - `src/Uriae/ExportBundle/Model/Export/ExportSuivi.php`. ## Cross-context Dependencies - **Employee <-> Suivi** - `src/Uriae/EmployeeBundle/Entity/Employee.php` references many Suivi entities. - `src/Uriae/SuiviBundle/Controller/*` pivot around `Employee`. - `src/Uriae/SuiviBundle/Form/Type/AccompagnementType.php` mixes Employee + Partenaire + Structure data. - **Employee <-> ASP** - `src/Uriae/EmployeeBundle/Entity/Contrat.php` owns ASP link. - `src/Uriae/EmployeeBundle/Controller/ContratsController.php` includes ASP behavior. - `src/Uriae/AspBundle/Repository/FicheContratAspRepository.php` joins Contract/Employee/Structure. - **Employee <-> Union** - `src/Uriae/EmployeeBundle/Entity/Contrat.php` links sortie taxonomy. - `src/Uriae/EmployeeBundle/Model/SituationSortieUpdater.php` manipulates Union sortie references. - `src/Uriae/EmployeeBundle/Repository/EmployeeRepository.php` uses sortie semantics for metrics. - **Structure as tenancy seam** - `src/Uriae/StructureBundle/Entity/Structure.php` is shared by User/Employee/Asp/Suivi. - `src/Uriae/AspBundle/Manager/AspFicheContratManager.php` requires structure-level configuration. - `src/Uriae/ImportBundle/Controller/ImportController.php` and `src/Uriae/ExportBundle/Controller/ExportController.php` are structure-scoped. - **Bilan as aggregate seam** - `src/Uriae/BilanBundle/Model/Formatter.php` crosses Employee + Suivi + Union + Asp + Structure. - `src/Uriae/BilanBundle/Controller/BilanController.php` orchestrates cross-context queries. ## Reading Order