Columns
| Column | Type | Size | Nulls | Auto | Default | Children | Parents | Comments | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ai_run_id | uuid | 2147483647 | null |
|
|
||||||||||||||||||||||||
| company_id | uuid | 2147483647 | null |
|
|
||||||||||||||||||||||||
| requested_by | uuid | 2147483647 | null |
|
|
||||||||||||||||||||||||
| request_id | uuid | 2147483647 | null |
|
|
||||||||||||||||||||||||
| instruction | text | 2147483647 | null |
|
|
||||||||||||||||||||||||
| instruction_hash | varchar | 64 | null |
|
|
||||||||||||||||||||||||
| idempotency_key_hash | varchar | 64 | null |
|
|
||||||||||||||||||||||||
| status | varchar | 20 | null |
|
|
||||||||||||||||||||||||
| analysis_outcome | varchar | 30 | √ | null |
|
|
|||||||||||||||||||||||
| detected_intent | varchar | 80 | √ | null |
|
|
|||||||||||||||||||||||
| last_error_code | varchar | 80 | √ | null |
|
|
|||||||||||||||||||||||
| attempt_count | int4 | 10 | 0 |
|
|
||||||||||||||||||||||||
| created_at | timestamptz | 35,6 | null |
|
|
||||||||||||||||||||||||
| updated_at | timestamptz | 35,6 | null |
|
|
||||||||||||||||||||||||
| version | int8 | 19 | 0 |
|
|
||||||||||||||||||||||||
| evidence | text | 2147483647 | √ | null |
|
|
Indexes
| Constraint Name | Type | Sort | Column(s) |
|---|---|---|---|
| pk_ai_run | Primary key | Asc | ai_run_id |
| idx_ai_run_company_created | Performance | Asc/Asc | company_id + created_at |
| idx_ai_run_company_status | Performance | Asc/Asc/Asc | company_id + status + updated_at |
| uq_ai_run_company_idempotency | Must be unique | Asc/Asc | company_id + idempotency_key_hash |
| uq_ai_run_id_company | Must be unique | Asc/Asc | ai_run_id + company_id |
| uq_ai_run_request | Must be unique | Asc | request_id |
Check Constraints
| Constraint Name | Constraint |
|---|---|
| ck_ai_run_version | ((version >= 0)) |
| ck_ai_run_status | (((status)::text = ANY ((ARRAY['QUEUED'::character varying, 'RUNNING'::character varying, 'SUCCEEDED'::character varying, 'FAILED'::character varying])::text[]))) |
| ck_ai_run_instruction_hash_length | ((char_length((instruction_hash)::text) = 64)) |
| ck_ai_run_instruction_not_blank | ((char_length(TRIM(BOTH FROM instruction)) > 0)) |
| ck_ai_run_attempt_count | ((attempt_count >= 0)) |
| ck_ai_run_idempotency_hash_length | ((char_length((idempotency_key_hash)::text) = 64)) |
| ck_ai_run_updated_at | ((updated_at >= created_at)) |
| ck_ai_run_outcome | (((analysis_outcome IS NULL) OR ((analysis_outcome)::text = ANY ((ARRAY['OUT_OF_SCOPE'::character varying, 'CONTEXT_REQUIRED'::character varying, 'NEEDS_INFO'::character varying, 'REVIEW_REQUIRED'::character varying])::text[])))) |



