Columns
| Column | Type | Size | Nulls | Auto | Default | Children | Parents | Comments | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ocr_run_id | uuid | 2147483647 | null |
|
|
||||||||||||
| company_id | uuid | 2147483647 | null |
|
|
||||||||||||
| worker_document_id | uuid | 2147483647 | null |
|
|
||||||||||||
| stored_file_id | uuid | 2147483647 | null |
|
|
||||||||||||
| requested_by | uuid | 2147483647 | null |
|
|
||||||||||||
| runtime_request_id | uuid | 2147483647 | null |
|
|
||||||||||||
| idempotency_key_hash | varchar | 64 | null |
|
|
||||||||||||
| request_hash | varchar | 64 | null |
|
|
||||||||||||
| document_type | varchar | 40 | null |
|
|
||||||||||||
| country_code | varchar | 3 | √ | null |
|
|
|||||||||||
| status | varchar | 30 | null |
|
|
||||||||||||
| result_ciphertext | text | 2147483647 | √ | null |
|
|
|||||||||||
| result_key_version | varchar | 60 | √ | null |
|
|
|||||||||||
| corrected_fields_ciphertext | text | 2147483647 | √ | null |
|
|
|||||||||||
| corrected_fields_key_version | varchar | 60 | √ | null |
|
|
|||||||||||
| last_error_code | varchar | 80 | √ | null |
|
|
|||||||||||
| reviewed_by | uuid | 2147483647 | √ | null |
|
|
|||||||||||
| review_reason | varchar | 300 | √ | null |
|
|
|||||||||||
| created_at | timestamptz | 35,6 | null |
|
|
||||||||||||
| started_at | timestamptz | 35,6 | √ | null |
|
|
|||||||||||
| completed_at | timestamptz | 35,6 | √ | null |
|
|
|||||||||||
| reviewed_at | timestamptz | 35,6 | √ | null |
|
|
|||||||||||
| updated_at | timestamptz | 35,6 | null |
|
|
||||||||||||
| version | int8 | 19 | 0 |
|
|
Indexes
| Constraint Name | Type | Sort | Column(s) |
|---|---|---|---|
| pk_document_ocr_run | Primary key | Asc | ocr_run_id |
| idx_document_ocr_run_company_status | Performance | Asc/Asc/Desc | company_id + status + updated_at |
| idx_document_ocr_run_document_created | Performance | Asc/Asc/Desc/Asc | company_id + worker_document_id + created_at + ocr_run_id |
| uq_document_ocr_run_id_company | Must be unique | Asc/Asc | ocr_run_id + company_id |
| uq_document_ocr_run_idempotency | Must be unique | Asc/Asc | company_id + idempotency_key_hash |
| uq_document_ocr_run_runtime_request | Must be unique | Asc | runtime_request_id |
Check Constraints
| Constraint Name | Constraint |
|---|---|
| ck_document_ocr_run_version | ((version >= 0)) |
| ck_document_ocr_run_result_pair | ((((result_ciphertext IS NULL) AND (result_key_version IS NULL)) OR ((result_ciphertext IS NOT NULL) AND (result_key_version IS NOT NULL)))) |
| ck_document_ocr_run_review_pair | ((((reviewed_by IS NULL) AND (reviewed_at IS NULL)) OR ((reviewed_by IS NOT NULL) AND (reviewed_at IS NOT NULL)))) |
| ck_document_ocr_run_review_reason | (((review_reason IS NULL) OR ((char_length(TRIM(BOTH FROM review_reason)) >= 1) AND (char_length(TRIM(BOTH FROM review_reason)) <= 300)))) |
| ck_document_ocr_run_correction_pair | ((((corrected_fields_ciphertext IS NULL) AND (corrected_fields_key_version IS NULL)) OR ((corrected_fields_ciphertext IS NOT NULL) AND (corrected_fields_key_version IS NOT NULL)))) |
| ck_document_ocr_run_request_hash | ((char_length((request_hash)::text) = 64)) |
| ck_document_ocr_run_status | (((status)::text = ANY ((ARRAY['QUEUED'::character varying, 'RUNNING'::character varying, 'READY_FOR_REVIEW'::character varying, 'REVIEW_REQUIRED'::character varying, 'APPROVED'::character varying, 'REJECTED'::character varying, 'FAILED'::character varying])::text[]))) |
| ck_document_ocr_run_idempotency_hash | ((char_length((idempotency_key_hash)::text) = 64)) |
| ck_document_ocr_run_time_order | (((updated_at >= created_at) AND ((started_at IS NULL) OR (started_at >= created_at)) AND ((completed_at IS NULL) OR (completed_at >= created_at)) AND ((reviewed_at IS NULL) OR (reviewed_at >= created_at)))) |
| ck_document_ocr_run_document_type | (((document_type)::text = ANY ((ARRAY['PASSPORT_COPY'::character varying, 'ARC'::character varying])::text[]))) |
| ck_document_ocr_run_country_code | (((((document_type)::text = 'PASSPORT_COPY'::text) AND (country_code IS NOT NULL) AND (char_length((country_code)::text) = 3)) OR (((document_type)::text = 'ARC'::text) AND (country_code IS NULL)))) |



