├── .gitattributes ├── .gitignore ├── LICENSE ├── Makefile ├── app ├── __init__.py ├── api │ ├── Dockerfile │ ├── __init__.py │ ├── handlers │ │ ├── __init__.py │ │ ├── access_levels.py │ │ ├── requests │ │ │ ├── __init__.py │ │ │ └── user.py │ │ ├── responses │ │ │ ├── __init__.py │ │ │ ├── access_levels.py │ │ │ ├── base.py │ │ │ ├── errors.py │ │ │ └── user.py │ │ └── user.py │ ├── main.py │ ├── middlewares │ │ ├── __init__.py │ │ └── db_session.py │ ├── providers │ │ ├── __init__.py │ │ └── uow.py │ └── pyproject.toml ├── config.py ├── domain │ ├── __init__.py │ ├── access_levels │ │ ├── __init__.py │ │ ├── access_policy.py │ │ ├── dto │ │ │ ├── __init__.py │ │ │ └── access_level.py │ │ ├── exceptions │ │ │ ├── __init__.py │ │ │ └── access_levels.py │ │ ├── interfaces │ │ │ ├── __init__.py │ │ │ ├── persistence.py │ │ │ └── uow.py │ │ ├── models │ │ │ ├── __init__.py │ │ │ ├── access_level.py │ │ │ └── helper.py │ │ └── usecases │ │ │ ├── __init__.py │ │ │ └── access_levels.py │ ├── common │ │ ├── __init__.py │ │ ├── dto │ │ │ ├── __init__.py │ │ │ └── base.py │ │ ├── events │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── dispatcher.py │ │ │ ├── event.py │ │ │ ├── middleware.py │ │ │ └── observer.py │ │ ├── exceptions │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ └── repo.py │ │ ├── interfaces │ │ │ ├── __init__.py │ │ │ └── uow.py │ │ ├── models │ │ │ ├── __init__.py │ │ │ ├── aggregate.py │ │ │ ├── entity.py │ │ │ └── value_object.py │ │ └── usecases │ │ │ └── __init__.py │ ├── department │ │ └── __init__.py │ ├── order │ │ ├── __init__.py │ │ ├── exceptions │ │ │ ├── __init__.py │ │ │ └── order.py │ │ ├── interfaces │ │ │ └── __init__.py │ │ ├── models │ │ │ ├── __init__.py │ │ │ └── order.py │ │ └── usecases │ │ │ └── __init__.py │ ├── policy │ │ └── __init__.py │ └── user │ │ ├── __init__.py │ │ ├── access_policy.py │ │ ├── dto │ │ ├── __init__.py │ │ └── user.py │ │ ├── exceptions │ │ ├── __init__.py │ │ └── user.py │ │ ├── interfaces │ │ ├── __init__.py │ │ ├── persistence.py │ │ └── uow.py │ │ ├── models │ │ ├── __init__.py │ │ └── user.py │ │ └── usecases │ │ ├── __init__.py │ │ └── user.py ├── infrastructure │ ├── __init__.py │ ├── database │ │ ├── __init__.py │ │ ├── alembic │ │ │ ├── README │ │ │ ├── __init__.py │ │ │ ├── env.py │ │ │ ├── script.py.mako │ │ │ └── versions │ │ │ │ ├── 0d18dd8b3ec9_init.py │ │ │ │ └── __init__.py │ │ ├── db.py │ │ ├── exception_mapper.py │ │ ├── models │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── confirmation_path.py │ │ │ ├── order.py │ │ │ └── user.py │ │ ├── repositories │ │ │ ├── __init__.py │ │ │ ├── access_level.py │ │ │ ├── repo.py │ │ │ └── user.py │ │ └── uow.py │ └── event_dispatcher.py └── tgbot │ ├── Dockerfile │ ├── __init__.py │ ├── __main__.py │ ├── constants.py │ ├── filters │ ├── __init__.py │ └── access_level.py │ ├── handlers │ ├── __init__.py │ ├── admin │ │ ├── __init__.py │ │ ├── department │ │ │ ├── __init__.py │ │ │ ├── add.py │ │ │ ├── delete.py │ │ │ ├── edit.py │ │ │ ├── menu.py │ │ │ └── setup.py │ │ ├── menu.py │ │ ├── setup.py │ │ └── user │ │ │ ├── __init__.py │ │ │ ├── add.py │ │ │ ├── common.py │ │ │ ├── delete.py │ │ │ ├── edit.py │ │ │ ├── menu.py │ │ │ └── setup.py │ ├── chief │ │ ├── __init__.py │ │ └── setup.py │ ├── dialogs │ │ ├── __init__.py │ │ └── common.py │ ├── setup.py │ └── user │ │ ├── __init__.py │ │ ├── setup.py │ │ └── start.py │ ├── keyboards │ └── __init__.py │ ├── middlewares │ ├── __init__.py │ ├── database.py │ ├── setup.py │ └── user.py │ ├── pyproject.toml │ ├── services │ ├── __init__.py │ └── set_commands.py │ └── states │ ├── __init__.py │ ├── admin_menu.py │ ├── department.py │ └── user_db.py ├── deployment ├── .env.example ├── alembic.ini ├── docker-compose-dev.yml ├── docker-compose.yml ├── redis.conf └── tgbot.bat ├── pyproject.toml └── tests ├── __init__.py ├── conftest.py ├── test_api └── __init__.py ├── test_domain ├── __init__.py ├── order │ ├── __init__.py │ └── models │ │ ├── __init__.py │ │ └── order.py └── user │ ├── __init__.py │ └── models │ ├── __init__.py │ └── user │ ├── __init__.py │ └── test_user.py ├── test_infrastructure └── __init__.py └── test_tgbot └── __init__.py /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/.gitattributes -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/Makefile -------------------------------------------------------------------------------- /app/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/api/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/api/Dockerfile -------------------------------------------------------------------------------- /app/api/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/api/handlers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/api/handlers/access_levels.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/api/handlers/access_levels.py -------------------------------------------------------------------------------- /app/api/handlers/requests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/api/handlers/requests/user.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/api/handlers/requests/user.py -------------------------------------------------------------------------------- /app/api/handlers/responses/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/api/handlers/responses/access_levels.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/api/handlers/responses/access_levels.py -------------------------------------------------------------------------------- /app/api/handlers/responses/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/api/handlers/responses/base.py -------------------------------------------------------------------------------- /app/api/handlers/responses/errors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/api/handlers/responses/errors.py -------------------------------------------------------------------------------- /app/api/handlers/responses/user.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/api/handlers/responses/user.py -------------------------------------------------------------------------------- /app/api/handlers/user.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/api/handlers/user.py -------------------------------------------------------------------------------- /app/api/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/api/main.py -------------------------------------------------------------------------------- /app/api/middlewares/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/api/middlewares/db_session.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/api/middlewares/db_session.py -------------------------------------------------------------------------------- /app/api/providers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/api/providers/__init__.py -------------------------------------------------------------------------------- /app/api/providers/uow.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/api/providers/uow.py -------------------------------------------------------------------------------- /app/api/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/api/pyproject.toml -------------------------------------------------------------------------------- /app/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/config.py -------------------------------------------------------------------------------- /app/domain/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/access_levels/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/access_levels/access_policy.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/access_levels/access_policy.py -------------------------------------------------------------------------------- /app/domain/access_levels/dto/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/access_levels/dto/__init__.py -------------------------------------------------------------------------------- /app/domain/access_levels/dto/access_level.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/access_levels/dto/access_level.py -------------------------------------------------------------------------------- /app/domain/access_levels/exceptions/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/access_levels/exceptions/access_levels.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/access_levels/exceptions/access_levels.py -------------------------------------------------------------------------------- /app/domain/access_levels/interfaces/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/access_levels/interfaces/persistence.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/access_levels/interfaces/persistence.py -------------------------------------------------------------------------------- /app/domain/access_levels/interfaces/uow.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/access_levels/interfaces/uow.py -------------------------------------------------------------------------------- /app/domain/access_levels/models/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/access_levels/models/access_level.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/access_levels/models/access_level.py -------------------------------------------------------------------------------- /app/domain/access_levels/models/helper.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/access_levels/models/helper.py -------------------------------------------------------------------------------- /app/domain/access_levels/usecases/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/access_levels/usecases/access_levels.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/access_levels/usecases/access_levels.py -------------------------------------------------------------------------------- /app/domain/common/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/common/dto/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/common/dto/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/common/dto/base.py -------------------------------------------------------------------------------- /app/domain/common/events/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/common/events/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/common/events/base.py -------------------------------------------------------------------------------- /app/domain/common/events/dispatcher.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/common/events/dispatcher.py -------------------------------------------------------------------------------- /app/domain/common/events/event.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/common/events/event.py -------------------------------------------------------------------------------- /app/domain/common/events/middleware.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/common/events/middleware.py -------------------------------------------------------------------------------- /app/domain/common/events/observer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/common/events/observer.py -------------------------------------------------------------------------------- /app/domain/common/exceptions/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/common/exceptions/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/common/exceptions/base.py -------------------------------------------------------------------------------- /app/domain/common/exceptions/repo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/common/exceptions/repo.py -------------------------------------------------------------------------------- /app/domain/common/interfaces/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/common/interfaces/uow.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/common/interfaces/uow.py -------------------------------------------------------------------------------- /app/domain/common/models/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/common/models/aggregate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/common/models/aggregate.py -------------------------------------------------------------------------------- /app/domain/common/models/entity.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/common/models/entity.py -------------------------------------------------------------------------------- /app/domain/common/models/value_object.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/common/models/value_object.py -------------------------------------------------------------------------------- /app/domain/common/usecases/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/department/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/order/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/order/exceptions/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/order/exceptions/order.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/order/exceptions/order.py -------------------------------------------------------------------------------- /app/domain/order/interfaces/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/order/models/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/order/models/order.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/order/models/order.py -------------------------------------------------------------------------------- /app/domain/order/usecases/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/policy/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/user/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/user/access_policy.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/user/access_policy.py -------------------------------------------------------------------------------- /app/domain/user/dto/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/user/dto/__init__.py -------------------------------------------------------------------------------- /app/domain/user/dto/user.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/user/dto/user.py -------------------------------------------------------------------------------- /app/domain/user/exceptions/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/user/exceptions/user.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/user/exceptions/user.py -------------------------------------------------------------------------------- /app/domain/user/interfaces/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/user/interfaces/persistence.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/user/interfaces/persistence.py -------------------------------------------------------------------------------- /app/domain/user/interfaces/uow.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/user/interfaces/uow.py -------------------------------------------------------------------------------- /app/domain/user/models/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/user/models/user.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/user/models/user.py -------------------------------------------------------------------------------- /app/domain/user/usecases/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/domain/user/usecases/user.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/domain/user/usecases/user.py -------------------------------------------------------------------------------- /app/infrastructure/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/infrastructure/database/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/infrastructure/database/alembic/README: -------------------------------------------------------------------------------- 1 | Generic single-database configuration. -------------------------------------------------------------------------------- /app/infrastructure/database/alembic/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/infrastructure/database/alembic/env.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/infrastructure/database/alembic/env.py -------------------------------------------------------------------------------- /app/infrastructure/database/alembic/script.py.mako: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/infrastructure/database/alembic/script.py.mako -------------------------------------------------------------------------------- /app/infrastructure/database/alembic/versions/0d18dd8b3ec9_init.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/infrastructure/database/alembic/versions/0d18dd8b3ec9_init.py -------------------------------------------------------------------------------- /app/infrastructure/database/alembic/versions/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/infrastructure/database/db.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/infrastructure/database/db.py -------------------------------------------------------------------------------- /app/infrastructure/database/exception_mapper.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/infrastructure/database/exception_mapper.py -------------------------------------------------------------------------------- /app/infrastructure/database/models/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/infrastructure/database/models/__init__.py -------------------------------------------------------------------------------- /app/infrastructure/database/models/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/infrastructure/database/models/base.py -------------------------------------------------------------------------------- /app/infrastructure/database/models/confirmation_path.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/infrastructure/database/models/confirmation_path.py -------------------------------------------------------------------------------- /app/infrastructure/database/models/order.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/infrastructure/database/models/order.py -------------------------------------------------------------------------------- /app/infrastructure/database/models/user.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/infrastructure/database/models/user.py -------------------------------------------------------------------------------- /app/infrastructure/database/repositories/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/infrastructure/database/repositories/__init__.py -------------------------------------------------------------------------------- /app/infrastructure/database/repositories/access_level.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/infrastructure/database/repositories/access_level.py -------------------------------------------------------------------------------- /app/infrastructure/database/repositories/repo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/infrastructure/database/repositories/repo.py -------------------------------------------------------------------------------- /app/infrastructure/database/repositories/user.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/infrastructure/database/repositories/user.py -------------------------------------------------------------------------------- /app/infrastructure/database/uow.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/infrastructure/database/uow.py -------------------------------------------------------------------------------- /app/infrastructure/event_dispatcher.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/infrastructure/event_dispatcher.py -------------------------------------------------------------------------------- /app/tgbot/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/Dockerfile -------------------------------------------------------------------------------- /app/tgbot/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/tgbot/__main__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/__main__.py -------------------------------------------------------------------------------- /app/tgbot/constants.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/constants.py -------------------------------------------------------------------------------- /app/tgbot/filters/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/filters/__init__.py -------------------------------------------------------------------------------- /app/tgbot/filters/access_level.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/filters/access_level.py -------------------------------------------------------------------------------- /app/tgbot/handlers/__init__.py: -------------------------------------------------------------------------------- 1 | from .setup import register_handlers 2 | -------------------------------------------------------------------------------- /app/tgbot/handlers/admin/__init__.py: -------------------------------------------------------------------------------- 1 | from .setup import register_admin_handlers 2 | -------------------------------------------------------------------------------- /app/tgbot/handlers/admin/department/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/tgbot/handlers/admin/department/add.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/handlers/admin/department/add.py -------------------------------------------------------------------------------- /app/tgbot/handlers/admin/department/delete.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/handlers/admin/department/delete.py -------------------------------------------------------------------------------- /app/tgbot/handlers/admin/department/edit.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/handlers/admin/department/edit.py -------------------------------------------------------------------------------- /app/tgbot/handlers/admin/department/menu.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/handlers/admin/department/menu.py -------------------------------------------------------------------------------- /app/tgbot/handlers/admin/department/setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/handlers/admin/department/setup.py -------------------------------------------------------------------------------- /app/tgbot/handlers/admin/menu.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/handlers/admin/menu.py -------------------------------------------------------------------------------- /app/tgbot/handlers/admin/setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/handlers/admin/setup.py -------------------------------------------------------------------------------- /app/tgbot/handlers/admin/user/__init__.py: -------------------------------------------------------------------------------- 1 | from .setup import register_user_db_handlers 2 | -------------------------------------------------------------------------------- /app/tgbot/handlers/admin/user/add.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/handlers/admin/user/add.py -------------------------------------------------------------------------------- /app/tgbot/handlers/admin/user/common.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/handlers/admin/user/common.py -------------------------------------------------------------------------------- /app/tgbot/handlers/admin/user/delete.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/handlers/admin/user/delete.py -------------------------------------------------------------------------------- /app/tgbot/handlers/admin/user/edit.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/handlers/admin/user/edit.py -------------------------------------------------------------------------------- /app/tgbot/handlers/admin/user/menu.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/handlers/admin/user/menu.py -------------------------------------------------------------------------------- /app/tgbot/handlers/admin/user/setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/handlers/admin/user/setup.py -------------------------------------------------------------------------------- /app/tgbot/handlers/chief/__init__.py: -------------------------------------------------------------------------------- 1 | from .setup import register_chief_handlers 2 | -------------------------------------------------------------------------------- /app/tgbot/handlers/chief/setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/handlers/chief/setup.py -------------------------------------------------------------------------------- /app/tgbot/handlers/dialogs/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/tgbot/handlers/dialogs/common.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/handlers/dialogs/common.py -------------------------------------------------------------------------------- /app/tgbot/handlers/setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/handlers/setup.py -------------------------------------------------------------------------------- /app/tgbot/handlers/user/__init__.py: -------------------------------------------------------------------------------- 1 | from .setup import register_user_handlers 2 | -------------------------------------------------------------------------------- /app/tgbot/handlers/user/setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/handlers/user/setup.py -------------------------------------------------------------------------------- /app/tgbot/handlers/user/start.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/handlers/user/start.py -------------------------------------------------------------------------------- /app/tgbot/keyboards/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/tgbot/middlewares/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/middlewares/__init__.py -------------------------------------------------------------------------------- /app/tgbot/middlewares/database.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/middlewares/database.py -------------------------------------------------------------------------------- /app/tgbot/middlewares/setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/middlewares/setup.py -------------------------------------------------------------------------------- /app/tgbot/middlewares/user.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/middlewares/user.py -------------------------------------------------------------------------------- /app/tgbot/pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/pyproject.toml -------------------------------------------------------------------------------- /app/tgbot/services/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/tgbot/services/set_commands.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/services/set_commands.py -------------------------------------------------------------------------------- /app/tgbot/states/__init__.py: -------------------------------------------------------------------------------- 1 | from . import admin_menu, department, user_db 2 | -------------------------------------------------------------------------------- /app/tgbot/states/admin_menu.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/states/admin_menu.py -------------------------------------------------------------------------------- /app/tgbot/states/department.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/states/department.py -------------------------------------------------------------------------------- /app/tgbot/states/user_db.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/app/tgbot/states/user_db.py -------------------------------------------------------------------------------- /deployment/.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/deployment/.env.example -------------------------------------------------------------------------------- /deployment/alembic.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/deployment/alembic.ini -------------------------------------------------------------------------------- /deployment/docker-compose-dev.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/deployment/docker-compose-dev.yml -------------------------------------------------------------------------------- /deployment/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/deployment/docker-compose.yml -------------------------------------------------------------------------------- /deployment/redis.conf: -------------------------------------------------------------------------------- 1 | port 6379 2 | save 600 1 3 | dbfilename redis_dump.rdb -------------------------------------------------------------------------------- /deployment/tgbot.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/deployment/tgbot.bat -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/pyproject.toml -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/conftest.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/test_api/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/test_domain/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/test_domain/order/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/test_domain/order/models/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/test_domain/order/models/order.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/tests/test_domain/order/models/order.py -------------------------------------------------------------------------------- /tests/test_domain/user/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/test_domain/user/models/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/test_domain/user/models/user/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/test_domain/user/models/user/test_user.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/darksidecat/cost_confirmation_bot/HEAD/tests/test_domain/user/models/user/test_user.py -------------------------------------------------------------------------------- /tests/test_infrastructure/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/test_tgbot/__init__.py: -------------------------------------------------------------------------------- 1 | --------------------------------------------------------------------------------