Cześć.
Mam zaimplementowaną rejestracje w której dostaje obiekt RegisterAccountDTO który waliduje i jak wszystko gra to konwertuję go do klasy Account (taki mój model domenowy) którą po wykonaniu pewnych operacji chcę zapisać do bazy. Jako że na początku nie mam ID to moja klasa w uproszczeniu wygląda tak że wszystkie pola oprócz ID są immutable (a do ID mam setter). Po zapisaniu takiego obiektu chcę go jeszcze zwrócić (wydaje mi się że jest to po prostu poprawne) wraz z ID dla dalszych operacji więc przez konstruktor wypełniam wszystkie parametry tym co mi baza zwróciła a ID przez setter. Metoda do zapisu zwraca taki obiekt który potem jest zamieniany na DTO i ten obiekt wraca jako body response.
Mam jednak wrażenie że to wszystko się jakoś kupy nie trzyma stąd też moje wątpliwości i pytania.
- Klasa Account jest immutable natomiast ID przez to że nie zawsze występuje jest var'em co jest moim zdaniem bezsensu. Można to jakoś lepiej zaimplementować?
- Czy metoda w której jest wykonany zapis użytkownika do bazy powinna zwrócić Account czy jakiś AccountDTO? Pomyślałem sobie że móglbym dodać coś w stylu RegisteredAccountDTO i wszystkie pola zrobić immutable natomiast wydaje mi sie że to też może być średnie rozwiązanie bo jeśli po zarejestrowaniu użytkownika muszę wykonać dodatkowe operacje (np. utworzyć token do weryfikacji wysyłany mailem) to jest to dalsza część logiki i moim zdaniem powinienem działać tu na tym obiekcie domenowym a dopiero po wykonaniu wszystkich operacji zwrócić jakieś DTO.