- Добавляем новую модель в имеющийся(или новый) пакет
- Добавляем созданную модель в init файл пакета tables
- В корневой директории приложения (src) выполнить команду
- python3 -m migrations.runner revision --autogenerate - для генерации миграций после генерации миграций желательно удостоверится, что они сгенерированы верно (migrations/versions)
- python3 -m migrations.runner upgrade head - для применения миграций к БД
interfaces.py:
- Создаем интерфейс(I) для доступа сервиса к репозиториям в файле interfaces.py, Здесь должны быть сами интерфейсы и класс (UoW), в котором определено, какие репозитории с какими методами принимает сервис.
- Создаем репозиторий в имеющимся (или новом) пакете, для этого: Создаем репозиторий - он наследуется от базового репозитория и интерфейса(I) из пункта выше Не забыть переопределить в новом репозитории метод is_exists
- Добавляем новое наследование (UoW - созданный выше) в имеющийся в файле класс.
- Определяем в имеющемся классе новое свойство, в котором инициализируется репозиторий и в него прокидывается сессия
- добавляем в функцию
get_uow
инициализации uow класса новый репозиторий
- Создаем сервис, функция init которого принимает класс (UoW)
- Определяем необходимые ошибки бизнес логики в файле errors.py в пакете нашего сервиса
- добавить функцию
get_service_name
возвращающую инициализированный сервис для последующего внедрения зависимости в app
- регистрируем зависимость в приложении в функции app_setup
app.dependencies_overrides[ServiceName] = get_service_name
- Добавляем новую pydantic модель, (в новый или имеющийся пакет) которая будет служить swagger схемой и сериализовывать модели алхимии при выдаче
- Добавляем новый эндпоинт
- Регистрируем endpoint в init