# MAX Support Bot v1 Единый сервис на `FastAPI + Jinja2 + SQLite`, который включает: - MAX-бота на `maxapi` для приёма и обработки заявок. - Веб-панель оператора (`/applications`, `/applications/{id}`, `/chats`). - Интеграцию с внешней системой заявок через REST API. ## Возможности - Переключаемый режим бота: `Polling` или `Webhook`. - Каналы создания заявок: - локальный (SQLite), - внешний REST. - Каналы включаются/выключаются независимо через ENV. - Если внешний REST падает: локальная заявка сохраняется, sync-статус ставится в `failed` (без ретраев). - Операторские действия доступны: - в MAX через callback-кнопки, - в веб-панели в карточке заявки. ## Быстрый старт ```bash python -m venv .venv . .venv/Scripts/activate pip install -r requirements.txt uvicorn app.main:app --reload ``` По умолчанию веб будет на `http://127.0.0.1:8000`. ## Основные ENV - `MAX_BOT_TOKEN` - `MAX_USE_WEBHOOK=true|false` - `MAX_WEBHOOK_URL` - `MAX_WEBHOOK_SECRET` - `DB_PATH=data/app.db` - `CONTEXT_BACKEND=memory|redis` - `REDIS_URL` - `CHANNEL_LOCAL_ENABLED=true|false` - `CHANNEL_EXTERNAL_ENABLED=true|false` - `EXTERNAL_API_CREATE_URL_WITH_KEY` - `WEB_ADMIN_LOGIN` - `WEB_ADMIN_PASSWORD` - `SESSION_SECRET` - `OPERATOR_CHAT_IDS=123,456` ## Основные URL - `GET /health` - `GET/POST /login` - `POST /logout` - `GET /applications` - `GET /applications/{id}` - `POST /applications/{id}/status` - `GET /chats` - `POST /chats/sync` - `POST /max/webhook`