Cześć.
Pracuje nad jednym projektem w którym mam klasę Account opisującą konto użytkownika w aplikacji. W systemie natomiast mam kilka odrębnych typów użytkowników, np. osoba prywatna, użytkownik firmowy, użytkownik jakiś tam itp a każdy z nich część pól ma specyficznych tylko dla siebie (np. nazwa firmy itp) a reszta jest spójna dla wszystkich (np. dane logowania, imie, nazwisko itp).

W rezultacie wygląda to tak że mam kilka endpointów do rejestracji każdego z nich i otrzymuje json z danymi tylko dla tego typu użytkownika (co wydaje mi się że jest okej). Jeśli ktoś założy konto jako osoba prywatna, później w systemie może sobie dodać także kolejny typ i mieć dostęp do dodatkowych funkcjonalności. Natomiast w systemie operuję na klasie Account która posiada wszystkie pola wszystkich typu + pole TypeAccount które jednoznacznie wskazuje na to jakiego typu jest dane konto (lista bo jedno konto może mieć zdefiniowane kilka typów). Myślę jednak że jest to mega głupie ponieważ wiele pól w tym obiekcie user jest nullami (przez co w bazie jest też pełno null). Nie mogę utworzyć kilku klas dla każdego typu ponieważ tak jak pisałem, jeden użytkownik logujący się tymi samymi danymi może mieć konto 2 lub kilku typów.

Pytanie więc jak to sensownie zamodelować?

Pozdrawiam.