В каком слое DTO объект преобразовывать в словарь перед сохранением в БД?
Приветствую.
Имеем слои: роут, сервис, репо.
В роут приходят данные формы.
В роуте создается DTO-pydantic объект с данными формы.
Из роута DTO передается в сервис.
Из сервиса данные отправляются в репо.
В репо данные должны быть запиханы в модель для БД.
Вопрос: на каком этапе преобразовывать DTO в словарь для маппинга в модель? Какова, она, эта лучшая практика? И что важно — почему так, а не иначе?
DTO можно передать и в репо и обработать в нем. Так до «последнего» сохраняется конкретность/понятность в передаваемых данных. С другой стороны, нужно ли репо знать о DTO вообще? Можно, вообще, в сервисе запилить маппинг в модель, а модель передать в репо, но зачем сервису знать о моделях для сохранения в БД... в общем, недопонимание. Полезным практикам и опыту буду рад.
Я бы отдавал в репозиторий DTOшки. Что там в словаре должно быть и как преобразовывать - это имхо как раз его вопрос, вышележащему коду это знать незачем.