Updated README.md
This commit is contained in:
@@ -17,16 +17,23 @@ ingest-service/
|
|||||||
├── app/
|
├── app/
|
||||||
│ ├── __init__.py
|
│ ├── __init__.py
|
||||||
│ ├── main.py # Главный файл приложения
|
│ ├── main.py # Главный файл приложения
|
||||||
│ ├── database.py # Конфигурация БД
|
|
||||||
│ ├── models.py # SQLAlchemy модели
|
|
||||||
│ ├── crud.py # CRUD операции
|
│ ├── crud.py # CRUD операции
|
||||||
│ └── api/
|
│ ├── api/
|
||||||
|
│ │ ├── __init__.py
|
||||||
|
│ │ └── 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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user