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 требует настройки доступа
This commit is contained in:
AI Assistant
2025-10-24 20:54:57 +03:00
parent 30bbf2cf2c
commit 4c844d00a5
5 changed files with 73 additions and 57 deletions

View File

@@ -10,8 +10,8 @@ router = APIRouter(prefix="/api/v1/policy", tags=["Policy"])
class PolicyCheckRequest(BaseModel):
"""Запрос на проверку полиса"""
voucher: str
inn: str | None = None
voucher: str # Полный номер полиса вида E1000-302538524
email: str # Email обязателен
@router.post("/check")
@@ -19,14 +19,14 @@ async def check_policy(request: PolicyCheckRequest):
"""
Проверить полис в БД
- **voucher**: Номер полиса
- **inn**: ИНН (опционально)
- **voucher**: Номер полиса вида E1000-302538524
- **email**: Email заявителя (обязательно)
Returns:
- found: true/false
- policy_data: данные полиса если найден
"""
policy = await policy_service.check_policy(request.voucher, request.inn)
policy = await policy_service.check_policy(request.voucher)
if policy:
return {