# Новая Планета - Backend API Backend API для мобильного приложения **Новая Планета** - визуальное расписание для детей с РАС. ## 🛠️ Tech Stack - **Python** 3.11+ - **FastAPI** 0.109+ - **PostgreSQL** 15+ + **Redis** 7+ - **SQLAlchemy** 2.0+ (async) - **GigaChat API** для ИИ-агента - **MinIO/S3** для хранения изображений ## 🚀 Быстрый старт ### Требования - Python 3.11+ - PostgreSQL 15+ - Redis 7+ - Docker (опционально) ### Установка 1. Клонируйте репозиторий 2. Установите зависимости: ```bash pip install -r requirements.txt ``` 3. Настройте `.env`: ```bash cp .env.example .env # Отредактируйте .env с вашими настройками ``` 4. Запустите инфраструктуру (Docker): ```bash docker-compose -f docker/docker-compose.yml up -d ``` 5. Примените миграции: ```bash alembic upgrade head ``` 6. Запустите сервер: ```bash uvicorn app.main:app --reload ``` API доступен на `http://localhost:8000` Swagger UI: `http://localhost:8000/docs` ## 📡 API Endpoints ### Authentication - `POST /api/v1/auth/register` - Регистрация - `POST /api/v1/auth/login` - Вход - `POST /api/v1/auth/refresh` - Обновление токена - `GET /api/v1/auth/me` - Текущий пользователь ### Schedules - `GET /api/v1/schedules` - Список расписаний - `POST /api/v1/schedules` - Создать расписание - `POST /api/v1/schedules/generate` - Сгенерировать через ИИ - `GET /api/v1/schedules/{id}` - Получить расписание - `PUT /api/v1/schedules/{id}` - Обновить - `DELETE /api/v1/schedules/{id}` - Удалить ### Tasks - `GET /api/v1/tasks/schedule/{schedule_id}` - Задачи расписания - `POST /api/v1/tasks` - Создать задачу - `PATCH /api/v1/tasks/{id}/complete` - Отметить выполненной ### AI - `POST /api/v1/ai/chat` - Чат с ИИ-агентом - `POST /api/v1/ai/schedule/generate` - Генерация расписания ### Images - `POST /api/v1/images/upload` - Загрузить изображение - `DELETE /api/v1/images/{key}` - Удалить изображение ### WebSocket - `WS /api/v1/ws/chat` - WebSocket чат с ИИ ## 🗄️ База данных Используется PostgreSQL с async SQLAlchemy. Миграции через Alembic. ## 🤖 GigaChat Integration Интеграция с GigaChat API для: - Чат с ИИ-агентом "Планета Земля" - Генерация расписаний ## 📚 Документация - Swagger UI: `/docs` - ReDoc: `/redoc` ## 🔗 Связанные репозитории - **Frontend (Android)** — [new-planet-android](https://github.com/your-org/new-planet-android) - **AI Agents** — [new-planet-ai-agents](https://github.com/your-org/new-planet-ai-agents)