generated from john/python-template
v5.0 Introduce centralized homepage & portrait photo management
Quality Gate / gate (push) Failing after 11s
Quality Gate / gate (push) Failing after 11s
This commit is contained in:
+17
-5
@@ -7,10 +7,10 @@ This document is the field-accurate Version 4 schema contract aligned to `src/tr
|
||||
- `src/transcription/db/models.py:60-78` (status and purpose enums)
|
||||
- `src/transcription/db/models.py:80-120` (`DocumentType`, `PersonRole`)
|
||||
- `src/transcription/db/models.py:122-172` (`Tag`, `Document`)
|
||||
- `src/transcription/db/models.py:175-258` (`Person`, `DocumentPerson`, `DocumentTag`)
|
||||
- `src/transcription/db/models.py:260-322` (`Job`)
|
||||
- `src/transcription/db/models.py:325-437` (`Source`, `JobSource`)
|
||||
- `src/transcription/db/models.py:440-497` (`ExecutionAttempt`)
|
||||
- `src/transcription/db/models.py:175-281` (`Person`, `Photo`, `DocumentPerson`, `DocumentTag`)
|
||||
- `src/transcription/db/models.py:285-347` (`Job`)
|
||||
- `src/transcription/db/models.py:350-462` (`Source`, `JobSource`)
|
||||
- `src/transcription/db/models.py:465-522` (`ExecutionAttempt`)
|
||||
|
||||
## Entity Relationship Overview
|
||||
|
||||
@@ -22,6 +22,7 @@ erDiagram
|
||||
Document ||--o{ DocumentPerson : links
|
||||
Document ||--o{ DocumentTag : tagged
|
||||
Person ||--o{ DocumentPerson : links
|
||||
Person ||--o{ Photo : owns
|
||||
PersonRole ||--o{ DocumentPerson : labels
|
||||
Tag ||--o{ DocumentTag : labels
|
||||
Job ||--o{ JobSource : includes
|
||||
@@ -119,12 +120,23 @@ erDiagram
|
||||
| `death_date_raw` | `str \| None` | optional |
|
||||
| `death_place` | `str \| None` | optional |
|
||||
| `biography` | `str \| None` | optional |
|
||||
| `portrait_path` | `str \| None` | optional upload-root-relative POSIX path (`persons/...`) |
|
||||
| `family_search_id` | `str \| None` | nullable unique |
|
||||
| `metadata_` | `dict[str, JsonValue] \| None` | stored as DB column `metadata` (`JSONBCompat`) |
|
||||
| `created_at` | `datetime` | default now |
|
||||
| `updated_at` | `datetime` | default now, onupdate |
|
||||
|
||||
### `Photo`
|
||||
|
||||
| Field | Type | Notes |
|
||||
| :--- | :--- | :--- |
|
||||
| `id` | `UUID` | PK |
|
||||
| `person_id` | `UUID \| None` | nullable FK -> `person.id`, indexed (`NULL` = homepage photo) |
|
||||
| `path` | `str` | required upload-root-relative POSIX path (`photos/...`) |
|
||||
| `description` | `str \| None` | optional |
|
||||
| `is_primary` | `bool` | default `False`; owner-level "featured/primary" marker |
|
||||
| `created_at` | `datetime` | default now |
|
||||
| `updated_at` | `datetime` | default now, onupdate |
|
||||
|
||||
### `DocumentPerson`
|
||||
|
||||
| Field | Type | Notes |
|
||||
|
||||
Reference in New Issue
Block a user