Уточните пожалуйста вот такой момент. В api_notifications/api/v1 вы все это разрешаете всем подряд? авторизации я там не нашел. Даже если планируете закрыть от внешнего мира, то между манагерами, доступы нужно также регулировать.
В папке worker я бы рекомендовал сделать единый файл с настройками приложения (settings.py, config.py - наследники BaseSettings), а не использовать os.environ.get в коде. Настройки приложения всегда нужно держать в одном месте. Сейчас они все в start.py, но со временем при вашем текущем подходе однозначно расползутся по приложению.
Обратите внимание на подобные мелочи. Скобки лишние
В моделях БД в api_notifications/models/models.py не забывайте про ondelete='CASCADE'. Нам же не нужны сиротливые записи без привязки к чему-либо.
Тоже самое и в sheduler/sheduler/models/models.py
Весь сервис нотификации у вас жестко завязан с email сообщениями. Необходимо предусмотреть и другие способы связи с пользователями. Реализация не нужна, но подготовка в виде абстрактных классов и полей в моделях должна быть.
В sheduler/requirements.txt версии зависимостей лучше все-таки фиксировать, чтобы при добавлении новой, случайно не апнуть что-нибудь, как это недавно случилось у многих при выходе aioredis==2.0.0, где сильно поменялись интерфейсы
Вот это и это точно не будет работать. Вы же не awaite-тите этот асинхронный метод.
Работа масштабная. В этой связи и ряд недочетов довольно серьезные:
api_notifications/api/v1
api_notifications/api/v1
не валидируете параметры пагинацииПро валидацию посмотрите тут https://fastapi.tiangolo.com/tutorial/path-params-numeric-validations/#number-validations-greater-than-or-equal это применимо и к Query
api_notifications/api/v1
вы все это разрешаете всем подряд? авторизации я там не нашел. Даже если планируете закрыть от внешнего мира, то между манагерами, доступы нужно также регулировать.api_notifications/schemas
почти все файлы именованы с заглавной буквы. Это не python-style. При импорте можно перепутать с именем класса. https://peps.python.org/pep-0008/#package-and-module-namesworker
я бы рекомендовал сделать единый файл с настройками приложения (settings.py, config.py - наследники BaseSettings), а не использовать os.environ.get в коде. Настройки приложения всегда нужно держать в одном месте. Сейчас они все в start.py, но со временем при вашем текущем подходе однозначно расползутся по приложению.api_notifications/models/models.py
не забывайте проondelete='CASCADE'
. Нам же не нужны сиротливые записи без привязки к чему-либо.sheduler/sheduler/models/models.py
sheduler/requirements.txt
версии зависимостей лучше все-таки фиксировать, чтобы при добавлении новой, случайно не апнуть что-нибудь, как это недавно случилось у многих при выходе aioredis==2.0.0, где сильно поменялись интерфейсы