Files
deep-dive-ming/docs/deep-dive-in-code.md

216 lines
9.6 KiB
Markdown

# 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