Columns
| Column | Type | Size | Nulls | Auto | Default | Children | Parents | Comments |
|---|---|---|---|---|---|---|---|---|
| id | serial | 10 | √ | nextval('news_packs_id_seq'::regclass) |
|
|
{“what”:“Unique integer identifier for each news pack.”,“why”:“Uniquely identifies a pack for updates, deletion, and references from other tables.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:09:58.962707292+00:00”} |
|
| topic | text | 2147483647 | null |
|
|
{“what”:“The subject or keyword the news pack is about, e.g. ‘AI’.”,“why”:“Determines which news pack to retrieve for a given topic; without it packs are indistinguishable.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:09:58.976083419+00:00”} |
||
| news_data | jsonb | 2147483647 | null |
|
|
{“what”:“JSON payload containing the news articles and their metadata.”,“why”:“Holds the actual news content; without it the pack has no data to serve.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:09:58.990120078+00:00”} |
||
| source_mode | text | 2147483647 | 'manual'::text |
|
|
{“what”:“Source selection mode: ‘manual’ or other allowed values.”,“why”:“Indicates whether sources were manually curated or automatically chosen; affects trust and refresh logic.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:09:59.003924346+00:00”} |
||
| sources_verified | bool | 1 | √ | false |
|
|
{“what”:“Flag indicating whether the news sources have been verified as reliable.”,“why”:“Distinguishes verified packs from unverified ones; unverified packs may be excluded from production use.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:09:59.018169704+00:00”} |
|
| entity_count | int4 | 10 | √ | null |
|
|
{“what”:“Number of distinct entities (e.g., people, orgs) extracted from the news.”,“why”:“Provides a quick metric for pack size without parsing JSON; used for filtering or display.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:09:59.036565927+00:00”} |
|
| stat_count | int4 | 10 | √ | null |
|
|
{“what”:“Number of statistics or data points referenced in the news.”,“why”:“Summarizes the pack’s statistical content; helps compare packs or decide if more data is needed.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:09:59.049228589+00:00”} |
|
| case_ref_count | int4 | 10 | √ | null |
|
|
{“what”:“Number of case references (e.g., legal cases) mentioned in the news.”,“why”:“Indicates legal relevance; used to prioritize packs for legal research.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:09:59.063277678+00:00”} |
|
| created_at | timestamptz | 35,6 | √ | now() |
|
|
{“what”:“Timestamp when the pack was created, in UTC.”,“why”:“Tracks pack age; used for sorting and auditing.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:09:59.077110700+00:00”} |
|
| expires_at | timestamptz | 35,6 | √ | (now() + '90 days'::interval) |
|
|
{“what”:“Timestamp when the pack becomes stale and should be refreshed, in UTC.”,“why”:“Defines cache lifetime; without it packs would be served indefinitely with outdated news.”,“by”:“fleet-annotator-worker”,“at”:“2026-09-23T00:09:59.100701119+00:00”} |
Indexes
| Constraint Name | Type | Sort | Column(s) |
|---|---|---|---|
| news_packs_pkey | Primary key | Asc | id |
| idx_news_topic | Performance | Asc | topic |
Check Constraints
| Constraint Name | Constraint |
|---|---|
| news_packs_source_mode_check | (source_mode = ANY (ARRAY['serp'::text, 'internal'::text, 'manual'::text])) |