Powiązanie między obiektem Usera, a agregatem Profilu

0

Hej, zastanawiam się od jakiegoś czasu nad tym jak powinien wyglądać obiekt Usera. Generalnie nie tylko teoretycznie, bo klepię apkę, ale do rzeczy:

Wydaje mi się, że agregat Profilu, który zawiera w sobie dane na potrzeby logiki apki: nazwę profilu, jakieś zdjęcia i inne dane dotyczące samej domeny apki powinien nic nie wiedzieć o czymś takim jak hasło i jest typowo agregatem domenowym. Jego identyfikatorem jest po prostu jakieś id, którym może być np. email użytkownika (jeśli założymy, że każdy user pod jednym mailem może posiadać 1 profil).

Po drugiej stronie mamy w części infrastruktury obiekt w stylu UserAuthData, które zawiera w sobie już zahashowane hasło i jego id jest czymś po czym rejestrujemy użytowników - w moim przypadku jest to email.

I wtedy działałoby to tak, że user rejestruje się - zapisujemy UserAuthData i potem przy 1 wejściu do klienta apki dostaje info, że nie ma jeszcze utworzonego profilu, uzupełnia wszystkie dane i wtedy tworzymy agregat Profilu z id takim jak email.

Email wydaje się unikalnym identyfikatorem.

Dobrze kombinuję ?

1

Obawiam się, iż pomyliłeś niebo z gwiazdami odbitymi na powierzchni stawu. To wszystko zależy od bounded contekstu, czyli jakich reguł ma chronić ten agregat. Często taki User w kontekście security jest po prostu kontenerem na dane, w innym będzie miał mega złożona logikę. Nie ma jednoznacznej odpowiedzi :) tak jakbyś zapytał, jak powinna wyglądać apka webowa w Springu

1 użytkowników online, w tym zalogowanych: 0, gości: 1