28 lines
1.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""Запрос распознавания файла (arm-core → tabular-parser / scan-gateway): `recognition-request.schema.json` v1.0.
Формируется из `recognition_job ⋈ stored_file ⋈ s3_object` (spec recognition-job-exchange); один файл — один job.
Subject — по `pipeline` (`request_subject`); заголовок `Nats-Msg-Id = <job_id>:<attempt>`
(`request_msg_id`) — не поле тела.
"""
from typing import Annotated, Literal
from pydantic import Field
from src.contract.common import ContractModel, ContractUUID, IntLike, NonEmptyStr, S3Ref, SchemaVersion, UtcDatetime
from src.contract.subjects import Pipeline
FileType = Literal["XLS", "XLSX", "XLSB", "PDF", "PNG", "JPG"]
class RecognitionRequest(ContractModel):
schema_version: SchemaVersion
job_id: ContractUUID # recognition_job.id
file_id: ContractUUID # stored_file.id
pipeline: Pipeline
file_type: FileType
original_name: NonEmptyStr # имя файла, как загрузил пользователь
s3: S3Ref # исходный файл в роли uploads
reply_deadline: UtcDatetime # срок ответа, UTC
attempt: Annotated[IntLike, Field(ge=1)] # номер попытки, с 1