In a ManyToMany relationship, doctrine does take care only of the owning
side of a relationship to inspect changes.
([see
documentation](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/unitofwork-associations.html#important-concepts))
This commit mark as "internal" the methods add/removeSocialAction on the
inversed side (`Evaluation`) and let the methods add/removeEvaluation
on the owning side (`SocialAction`) update the inversed side.
The usage is also adapted into SocialWorkMetadata's importer.
In a ManyToMany relationship, doctrine does take care only of the owning
side of a relationship to inspect changes.
([see
documentation](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/unitofwork-associations.html#important-concepts))
This commit mark as "internal" the methods add/removeSocialAction on the
inversed side (`Evaluation`) and let the methods add/removeEvaluation
on the owning side (`SocialAction`) update the inversed side.
The usage is also adapted into SocialWorkMetadata's importer.
The association between Person and Center is now stored in a dedicated
Entity: `PersonCenterHistory`, which have a date interval (start date
and endDate). The SQL counterpart is a table, with a constraint which
ensure that no person might be associated with two center at the same time.
For ease, a view is created to get the current center associated with
the person.
The dedicated migration creates also:
* indexes for a rapid search for person at current date;
* and populate the table from current data, setting the startdate to the
person's creation date and time if any, `NOW()` unless.
The `Person` entity is also updated to use the information from the
PersonCenterHistory classes, but this commit does not yet delete the
`Center` column.