AI Assistant d6b17baa7d feat: Add PostgreSQL fields and workflow for form without files
Database changes:
- Add unified_id, contact_id, phone columns to clpr_claims table
- Create indexes for fast lookup by these fields
- Migrate existing data from payload to new columns
- SQL migration: docs/SQL_ALTER_CLPR_CLAIMS_ADD_FIELDS.sql

SQL improvements:
- Simplify claimsave query: remove complex claim_lookup logic
- Use UPSERT (INSERT ON CONFLICT) with known claim_id
- Always return claim (fix NULL issue)
- Store unified_id, contact_id, phone directly in table columns
- SQL: docs/SQL_CLAIMSAVE_UPSERT_SIMPLE.sql

Workflow enhancements:
- Add branch for form submissions WITHOUT files
- Create 6 new nodes: extract, prepare, save, redis, respond
- Separate flow for has_files=false in IF node
- Instructions: docs/N8N_FORM_GET_NO_FILES_INSTRUCTIONS.md
- Node config: docs/N8N_FORM_GET_NO_FILES_BRANCH.json

Migration stats:
- Total claims: 81
- With unified_id: 77
- Migrated from payload: 2

Next steps:
1. Add 6 nodes to n8n workflow form_get (ID: 8ZVMTsuH7Cmw7snw)
2. Connect TRUE branch of IF node to extract_webhook_data_no_files
3. Test form submission without files
4. Verify PostgreSQL save and Redis event
2025-11-21 15:57:18 +03:00

🚀 Ticket Form Intake Platform

Платформа цифровой приёмки обращений для other.clientright.ru

  • Backend: Python FastAPI (async)
  • Frontend: React 18 + TypeScript
  • Database: PostgreSQL + MySQL + Redis
  • Queue: RabbitMQ
  • Storage: S3 Timeweb Cloud

🎯 Быстрый старт

📍 Визуальный доступ:

После запуска доступны по адресам:

Frontend (форма):
http://147.45.146.17:5175/

Backend API:
http://147.45.146.17:8200/

API Документация (Swagger UI):
http://147.45.146.17:8200/docs  ← Интерактивная!

Gitea (Git репозиторий):
http://147.45.146.17:3002/

🔧 Установка и запуск

Backend (FastAPI):

cd backend

# Создаём виртуальное окружение
python3 -m venv venv
source venv/bin/activate

# Устанавливаем зависимости
pip install -r requirements.txt

# Запускаем сервер
uvicorn app.main:app --reload --host 0.0.0.0 --port 8200

Frontend (React):

cd frontend

# Устанавливаем зависимости
npm install

# Запускаем dev сервер
npm run dev -- --host 0.0.0.0 --port 5175

📊 Архитектура

Поток данных:

React (5175) → FastAPI (8200) → [Redis, RabbitMQ, PostgreSQL]
                              ↓
                        OCR Service (8001)
                        OpenRouter AI
                        FlightAware API
                              ↓
                        PHP Bridge → Vtiger CRM

Что НЕ трогаем:

CRM Vtiger (работает как работала)
MySQL полисы (только READ)
Существующий PHP код


🗄️ Базы данных

База Назначение Хост
PostgreSQL Логи, метрики, новые данные 147.45.189.234:5432
MySQL Проверка полисов (READ) localhost:3306
Redis Кеш, Rate Limiting localhost:6379

📁 Структура проекта

ticket_form/
├─ backend/        ← Python FastAPI
│   ├─ app/
│   │   ├─ main.py
│   │   ├─ api/
│   │   ├─ services/
│   │   └─ models/
│   └─ requirements.txt
│
├─ frontend/       ← React TypeScript
│   ├─ src/
│   │   ├─ components/
│   │   ├─ pages/
│   │   └─ api/
│   └─ package.json
│
└─ .env           ← Конфигурация

🔌 API Endpoints

Документы:

  • POST /api/v1/documents/upload - Загрузка в S3
  • POST /api/v1/documents/scan - OCR + Vision

Рейсы:

  • GET /api/v1/flights/check - Проверка статуса

Обращения:

  • POST /api/v1/claims/submit - Создание обращения

Полисы:

  • GET /api/v1/policies/verify - Проверка полиса

🐛 Отладка

Логи:

# FastAPI
tail -f backend/logs/app.log

# PostgreSQL логи
SELECT * FROM logs ORDER BY created_at DESC LIMIT 50;

📝 Git

# Репозиторий
http://147.45.146.17:3002/negodiy/erv-platform

# Клонирование
git clone http://147.45.146.17:3002/negodiy/erv-platform.git

# Push изменений
git add .
git commit -m "Your message"
git push origin main

Автор: AI Assistant + Фёдор
Дата: 24.10.2025

Description
AI Form - Production версия формы заявки с автоматическим мониторингом n8n workflow
Readme 2 MiB
Languages
TypeScript 57.4%
Python 37%
Shell 1.9%
CSS 1.6%
PLpgSQL 1%
Other 0.9%