====== EmployeeFunction ====== EmployeeFunction ist die Mitarbeiter Funktion, z.B. "Consultant" oder "Chief", die in der Mitarbeiter Rolle((Employee)) zu einer Person verwendet werden kann. Man braucht eigentlich kein Aggregate hierfür, könnte EmployeeFunction auch als Value Object umsetzen. Das PRO•M 1.0 aber eine Referenzielle Integrität von der Person zur Mitarbeiter Funktion über die ID benötigt, wird sie in PRO•M auch als als vollwertiges Aggregate implementiert. ==== Identität ==== Die Bezeichung ist die (sichtbare) Identität, es gibt aber eine (surrogate) Id, wodurch im Grunde die Kontinuität der Funktion die Identität herstellt((Das wird aber abgestellt werden, wozu den Namen ändern können?)). ==== Regeln ==== Da die Identität aktuell noch die Id ist, gibt es einen Index auf den Namen, um den Namen pro Mandant eindeutig zu halten. Dieser ist explizit modelliert. Sollte der Name die Funktion in Zukunft identifizieren, ist automatisch ein Index auf dem Namen und der Index kann entfernt werden. ==== Befehle ==== * AddEmployeeFunction: Neue Mitarbeiter Funktion hinzufügen * DeactivateEmployeeFunction: Deaktivieren, damit sie in zukünftigen Auswahllisten nicht angeboten wird * ActivateEmployeeFunction: wieder für Auswahllisten aktivieren * RenameEmployeeFunction: wird wahrscheinlich abgestellt, da das ja die Identität ist... ==== Ereignisse ==== * EmployeeFunctionAdded * EmployeeFunctionDeactivated * EmployeeFunctionActivated * EmployeeFunctionRenamed