Add influence rework, image checkup, debug mode, and fetched paintings.
Support artist and movement influence links with web discovery, a developer checkup table with gallery/detail thumbnails, and debug image search with fix-it workflow. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
co-authored by
Cursor
parent
0ece1195fa
commit
bf7db9b25e
@@ -24,6 +24,9 @@ erDiagram
|
||||
artist_periods ||--o{ paintings : groups
|
||||
paintings ||--o{ painting_influences : influenced_by
|
||||
paintings ||--o{ painting_influences : influences
|
||||
paintings ||--o{ painting_influence_sources : influenced_by
|
||||
artists ||--o{ painting_influence_sources : artist_source
|
||||
art_movements ||--o{ painting_influence_sources : movement_source
|
||||
```
|
||||
|
||||
## Tables
|
||||
@@ -114,7 +117,35 @@ Directed edges: *this painting* was influenced by *that painting*.
|
||||
|
||||
Unique constraint on `(painting_id, influenced_by_painting_id)`.
|
||||
|
||||
Used by the 3D gallery exit panel: predecessors are artists of `influenced_by_painting_id` works; successors are artists of paintings influenced by this artist’s works (see [API.md](API.md#get-apiartistsidnavigation)).
|
||||
Used by the 3D gallery exit panel: predecessors are artists of `influenced_by_painting_id` works; successors are artists of paintings influenced by this artist’s works (see [API.md](API.md#get-apiartistsidnavigation)). Legacy table; new polymorphic links live in `painting_influence_sources`.
|
||||
|
||||
### `painting_influence_sources`
|
||||
|
||||
Polymorphic influence links: *this painting* was influenced by a **painting**, **artist**, or **movement**.
|
||||
|
||||
| Column | Type | Notes |
|
||||
|--------|------|-------|
|
||||
| `id` | SERIAL PK | |
|
||||
| `painting_id` | FK → `paintings` | The work being explained |
|
||||
| `source_type` | VARCHAR(20) | `painting`, `artist`, or `movement` |
|
||||
| `source_painting_id` | FK → `paintings` | When `source_type = painting` |
|
||||
| `source_artist_id` | FK → `artists` | When `source_type = artist` |
|
||||
| `source_movement_id` | FK → `art_movements` | When `source_type = movement` |
|
||||
| `period_note` | VARCHAR(240) | Human-readable period label |
|
||||
| `period_start_year` | INTEGER | Optional span start |
|
||||
| `period_end_year` | INTEGER | Optional span end |
|
||||
| `notes` | TEXT | Curator summary |
|
||||
| `source` | VARCHAR(500) | General attribution |
|
||||
| `aspects` | TEXT | What was borrowed |
|
||||
| `quote` | TEXT | Short citation |
|
||||
| `source_author` | VARCHAR(200) | e.g. Gombrich, Janson |
|
||||
| `source_url` | VARCHAR(500) | Reference link |
|
||||
| `discovered_via` | VARCHAR(120) | e.g. `wikipedia`, `wikidata`, `web:metmuseum.org` |
|
||||
| `confidence` | VARCHAR(20) | `curated` (default) or `discovered` |
|
||||
|
||||
Unique index on `(painting_id, source_type, source_painting_id, source_artist_id, source_movement_id)` with COALESCE for null FKs.
|
||||
|
||||
Used by painting detail API (`influencedBy`). Painting-type rows also feed `has_influence_links` and hall navigation (with legacy `painting_influences`).
|
||||
|
||||
## Indexes
|
||||
|
||||
@@ -122,6 +153,7 @@ Used by the 3D gallery exit panel: predecessors are artists of `influenced_by_pa
|
||||
- `paintings(artist_id)`, `paintings(period_id)`
|
||||
- `art_movements(era_id)`, `art_movements(start_year, end_year)`
|
||||
- `painting_influences(painting_id)`, `painting_influences(influenced_by_painting_id)`
|
||||
- `painting_influence_sources(painting_id)`, `painting_influence_sources(source_artist_id)`, `painting_influence_sources(source_movement_id)`
|
||||
|
||||
## First-time setup
|
||||
|
||||
|
||||
Reference in New Issue
Block a user