можно хоть 3 таблицы с юзерами, просто можно наследоватся от абстрактного класса с ролями И так далее, и сделать 1 аунтефикацию но с разными провайдервами
ты можешь накинуть вообще интерфейс на клиента и тренера с полями например статус, емайл, и что-то еще что тебе нужно и принимать в своем чекере интерфейс и валидировать его
так суть, получается, как я понял, что мы идем на роут, говорим case user: payload = {id: user.id, type:'user'}; jwt.sign(payload); case trener: payloadl ={id:trener.id, type:'trener'}