1-е создай класс абстракный с емейлом, плаин паролем (в базе не храним), паролем, статусом, ролями, кастомным токеном, время жизни кастомного токена.
2-е заекстенди клиентом и тренером этот абстрактный класс (не прийдется в 2 ентити писать те же самые поля)
3-е делаешь интерфейс UserInterface пишешь там поля ид, емаил, статус
4-е создаешь класс который валидирует интерфейс UserInterface если проверку прошло пропускаешь дальше на авторизацию если нет кидаешь ошибку 401. Все