Spaces:
Sleeping
Sleeping
| -- ============================================ | |
| -- Invoice Ingest Pipeline - Complete Schema | |
| -- Version: 2.0 | |
| -- ============================================ | |
| -- Table 1: ingest_jobs | |
| CREATE TABLE IF NOT EXISTS ingest_jobs ( | |
| job_id TEXT PRIMARY KEY, | |
| doc_id TEXT, | |
| filename TEXT NOT NULL, | |
| status TEXT NOT NULL DEFAULT 'queued', | |
| error_text TEXT, | |
| created_at TEXT DEFAULT CURRENT_TIMESTAMP, | |
| updated_at TEXT DEFAULT CURRENT_TIMESTAMP | |
| ); | |
| DROP INDEX IF EXISTS idx_ingest_jobs_status; | |
| DROP INDEX IF EXISTS idx_ingest_jobs_created; | |
| CREATE INDEX idx_ingest_jobs_status ON ingest_jobs(status); | |
| CREATE INDEX idx_ingest_jobs_created ON ingest_jobs(created_at DESC); | |
| -- Table 2: documents | |
| CREATE TABLE IF NOT EXISTS documents ( | |
| doc_id TEXT PRIMARY KEY, | |
| job_id TEXT NOT NULL, | |
| path TEXT NOT NULL, | |
| filename TEXT NOT NULL, | |
| content_type TEXT NOT NULL, | |
| uploaded_at TEXT DEFAULT CURRENT_TIMESTAMP, | |
| FOREIGN KEY (job_id) REFERENCES ingest_jobs(job_id) | |
| ); | |
| DROP INDEX IF EXISTS idx_documents_job_id; | |
| CREATE INDEX idx_documents_job_id ON documents(job_id); | |
| -- Table 3: extractions | |
| CREATE TABLE IF NOT EXISTS extractions ( | |
| doc_id TEXT PRIMARY KEY, | |
| raw_text TEXT, | |
| tables_json TEXT, | |
| entities_json TEXT, | |
| classification_json TEXT, | |
| summary_text TEXT, | |
| extracted_at TEXT DEFAULT CURRENT_TIMESTAMP, | |
| FOREIGN KEY (doc_id) REFERENCES documents(doc_id) | |
| ); | |
| -- Table 4: invoice_fields | |
| CREATE TABLE IF NOT EXISTS invoice_fields ( | |
| invoice_id INTEGER PRIMARY KEY AUTOINCREMENT, | |
| doc_id TEXT NOT NULL, | |
| cust_number TEXT, | |
| posting_date TEXT, | |
| total_open_amount REAL, | |
| business_code TEXT, | |
| cust_payment_terms TEXT, | |
| confidence_map TEXT, | |
| created_at TEXT DEFAULT CURRENT_TIMESTAMP, | |
| FOREIGN KEY (doc_id) REFERENCES documents(doc_id) | |
| ); | |
| DROP INDEX IF EXISTS idx_invoice_fields_doc_id; | |
| CREATE INDEX idx_invoice_fields_doc_id ON invoice_fields(doc_id); | |