Extraction state for one unique PDF file content.
Keyed by file_uuid (PK) — one row per unique
phoenix_kit_files.uuid, regardless of how many times that content
was uploaded under different filenames. The worker's state machine
lives here, not on Pdf, so two uploads of the same content share
one extraction job + one extracted page set.
Status flow: pending → extracting → extracted | scanned_no_text | failed. Cascades on the file row's hard delete.