refactor(project-management) : introduce Project/Task/TaskTag/Client contracts
Tranche 1 of LST-65 (ProjectManagement module migration). Decouples the TimeTracking module from the core-business entities before they move, with no entity relocation yet — keeps the diff minimal and the risk isolated. - New read contracts in Shared/Domain/Contract (minimal surface, aligned on the entities' real nullable signatures): ProjectInterface (id/code/name), TaskInterface (id/number/title), TaskTagInterface (id/label/color), ClientInterface (id/name). - Project/Task/TaskTag/Client implement their contract (entities stay in src/Entity for now). Project.client typed as ClientInterface. - TimeEntry (TimeTracking) now references ProjectInterface/TaskInterface/ TaskTagInterface instead of the concrete entities; repository + DQL untouched in behaviour. - resolve_target_entities maps the 4 contracts to the legacy entities (will be repointed to the module in tranche 2). - Adds the migration plan doc. 159 tests green, mapping valid, cs-fixer clean.
This commit is contained in:
@@ -22,6 +22,10 @@ doctrine:
|
||||
auto_mapping: true
|
||||
resolve_target_entities:
|
||||
App\Shared\Domain\Contract\UserInterface: App\Module\Core\Domain\Entity\User
|
||||
App\Shared\Domain\Contract\ProjectInterface: App\Entity\Project
|
||||
App\Shared\Domain\Contract\TaskInterface: App\Entity\Task
|
||||
App\Shared\Domain\Contract\TaskTagInterface: App\Entity\TaskTag
|
||||
App\Shared\Domain\Contract\ClientInterface: App\Entity\Client
|
||||
mappings:
|
||||
App:
|
||||
type: attribute
|
||||
|
||||
Reference in New Issue
Block a user