Updated README.md

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

View File

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