Files
aiform_dev/backend/app/api/policy.py
AI Assistant 4c844d00a5 feat: Обновлена форма проверки полиса + автозамена кириллицы
Изменения в форме (Шаг 1):
- Полис в одну строку: E1000-302538524 (было: отдельно серия и номер)
- Email теперь обязателен (было: опционально)
- Убран ИНН (было: опционально)
- Автозамена кириллицы на латиницу (Е→E, О→O и т.д.)
- Валидация формата: буква + 4 цифры + тире + 9 цифр

Изменения в Backend API:
- PolicyCheckRequest: voucher + email (убран inn)
- policy_service: упрощен запрос к MySQL
- Добавлено подключение MySQL в lifespan

Изменения в ClaimForm:
- FormData обновлен: voucher вместо policyNumber/policySeries
- Убрано поле inn из всей логики

Статус: Frontend работает, MySQL требует настройки доступа
2025-10-24 20:54:57 +03:00

46 lines
1.3 KiB
Python

"""
Policy API Routes - Проверка полисов
"""
from fastapi import APIRouter, HTTPException
from pydantic import BaseModel
from ..services.policy_service import policy_service
router = APIRouter(prefix="/api/v1/policy", tags=["Policy"])
class PolicyCheckRequest(BaseModel):
"""Запрос на проверку полиса"""
voucher: str # Полный номер полиса вида E1000-302538524
email: str # Email обязателен
@router.post("/check")
async def check_policy(request: PolicyCheckRequest):
"""
Проверить полис в БД
- **voucher**: Номер полиса вида E1000-302538524
- **email**: Email заявителя (обязательно)
Returns:
- found: true/false
- policy_data: данные полиса если найден
"""
policy = await policy_service.check_policy(request.voucher)
if policy:
return {
"success": True,
"found": True,
"message": "Полис найден в базе",
"policy_data": policy
}
else:
return {
"success": True,
"found": False,
"message": "Полис не найден. Загрузите скан полиса.",
"policy_data": None
}