Updated README.md

This commit is contained in:
2025-11-20 23:27:52 +07:00
parent 5b3298858c
commit 6691a1a98e

View File

@@ -17,16 +17,23 @@ ingest-service/
├── app/
│ ├── __init__.py
│ ├── main.py # Главный файл приложения
│ ├── database.py # Конфигурация БД
│ ├── models.py # SQLAlchemy модели
│ ├── crud.py # CRUD операции
── api/
── api/
│ │ ├── __init__.py
│ │ └── uis.py # API endpoints для UIS
│ ├── infrastructure/
│ │ ├── __init__.py
│ │ └── database.py # Конфигурация БД
│ └── models/
│ ├── __init__.py
│ └── uis.py # API endpoints для UIS
├── docker-compose.yaml
│ └── call_event.py # SQLAlchemy модели
├── alembic/ # Миграции БД
│ ├── env.py
│ └── versions/
├── alembic.ini
├── Dockerfile
├── requirements.txt
└── .env.example
└── .env
```
## Быстрый старт
@@ -63,8 +70,7 @@ pip install -r requirements.txt
# Запустить только PostgreSQL через Docker
docker-compose up -d postgres
# Создать файл .env
cp .env.example .env
# Убедиться, что файл .env настроен правильно
# Запустить приложение
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
@@ -79,7 +85,7 @@ Webhook для приема событий звонков от UIS
```json
{
"eventType": "call_completed",
"call_session_id": "12345-abcde",
"call_session_id": 12345,
"direction": "in",
"employee_id": 100,
"employee_full_name": "Иванов Иван Иванович",
@@ -94,45 +100,49 @@ Webhook для приема событий звонков от UIS
}
```
### GET /v1/uis/events
### GET /v1/uis/events (TODO)
Получить список всех событий звонков
**Query параметры:**
- `skip` - количество пропускаемых записей (пагинация)
- `limit` - максимальное количество записей (по умолчанию 100)
### GET /v1/uis/events/{call_session_id}
римечание: Endpoint запланирован к реализации_
### GET /v1/uis/events/{call_session_id} (TODO)
Получить конкретное событие звонка по session_id
### GET /v1/uis/events/employee/{employee_id}
римечание: Endpoint запланирован к реализации_
### GET /v1/uis/events/employee/{employee_id} (TODO)
Получить все звонки конкретного сотрудника
**Query параметры:**
- `skip` - количество пропускаемых записей
- `limit` - максимальное количество записей
римечание: Endpoint запланирован к реализации_
## База данных
### Модель данных CallEvent
Таблица `call_events` содержит следующие поля:
- `id` - уникальный идентификатор (автоинкремент)
- `event_type` - тип события
- `call_session_id` - уникальный ID сессии звонка
- `id` - уникальный идентификатор (UUID)
- `call_session_id` - уникальный ID сессии звонка (BigInteger, индексируется)
- `direction` - направление звонка (in/out)
- `notification_mnemonic` - мнемоника уведомления (тип события)
- `last_answered_employee_full_name` - ФИО сотрудника, ответившего на звонок
- `employee_id` - ID сотрудника
- `employee_full_name` - ФИО сотрудника
- `contact_phone_number` - телефон контакта
- `called_phone_number` - набранный телефон
- `communication_group_name` - название группы коммуникации
- `start_time` - время начала звонка
- `finish_time` - время окончания звонка
- `finish_time` - время окончания звонка (Unix timestamp)
- `total_time_duration` - общая длительность звонка (в секундах)
- `wait_time_duration` - длительность ожидания (в секундах)
- `total_wait_time_duration` - общая длительность ожидания (в секундах)
- `talk_time_duration` - длительность разговора (в секундах)
- `clean_talk_time_duration` - чистая длительность разговора (в секундах)
- `full_record_file_link` - ссылка на запись звонка
- `campaign_name` - название кампании
- `created_at` - дата создания записи
- `updated_at` - дата последнего обновления
- `tcm_topcrm_notification_name` - название уведомления TCM/TopCRM (название кампании)
### Подключение к PostgreSQL