Werke – Werkverzeichnis
Das Werke-Modul ist dein Inventarsystem für fertige Kunstwerke. Hier verwaltest du nicht nur die Artworks selbst, sondern auch alle Relationen zu Künstlern, Ausstellungen und Verkäufen.
Konzept
Das Werkverzeichnis trennt zwischen:
| Konzept | Beschreibung |
|---|---|
| Werk | Das eigentliche Kunstwerk (Code, Print, Installation) |
| Artist | Künstler/Urheber |
| Exhibition | Ausstellung, Messe, Event |
| Sale | Verkauf, Auflage, Edition |
Datenstruktur
workspace/werke/
├── werke.json # Haupt-Katalog
├── index.json # Such-Index
├── artists/ # Künstler-Sidecars
│ └── artist-001.json
├── exhibitions/ # Ausstellungs-Sidecars
│ └── exhibition-001.json
├── sales/ # Verkaufs-Sidecars
│ └── sale-001.json
└── werke/ # Werk-Sidecars
└── werk-001.jsonWerke
Ein Werk verbindet Code (aus Catalog) mit Metadaten:
{
"id": "werk-001",
"title": "Entities #1",
"catalogItemId": "item-001",
"artist": "artist-001",
"year": 2024,
"medium": "Generative Animation",
"dimensions": "1920x1080px",
"edition": {
"total": 10,
"available": 7
},
"exhibitions": ["exhibition-001"],
"sales": ["sale-001", "sale-002"]
}Artists
{
"id": "artist-001",
"name": "Carsten Nichte",
"bio": "Generative Artist aus Hamburg",
"website": "https://carsten-nichte.de",
"social": {
"instagram": "@carstennichte",
"twitter": "@cnichte"
},
"werke": ["werk-001", "werk-002"]
}Exhibitions
{
"id": "exhibition-001",
"name": "Mosaik 2027",
"venue": "Kunsthalle Hamburg",
"startDate": "2027-03-01",
"endDate": "2027-05-31",
"type": "group",
"werke": ["werk-001", "werk-003"],
"notes": "Eröffnung 1. März 19:00"
}Sales
{
"id": "sale-001",
"werkId": "werk-001",
"editionNumber": 1,
"buyer": "Sammler XY",
"price": 500,
"currency": "EUR",
"date": "2024-06-15",
"certificate": true,
"delivery": "digital"
}Relationen
Das System verwaltet bidirektionale Relationen:
Artist ──────┬──────► Werk ◄──────┬────── Exhibition
│ │ │
│ ▼ │
└──────► Sale ◄──────┘Relations-Manager
// Alle Werke eines Künstlers
const werke = relationsManager.getWerkeByArtist('artist-001');
// Alle Ausstellungen eines Werks
const exhibitions = relationsManager.getExhibitionsByWerk('werk-001');
// Verkaufshistorie
const sales = relationsManager.getSalesByWerk('werk-001');Suche & Filter
| Filter | Beispiel |
|---|---|
| Nach Jahr | year:2024 |
| Nach Medium | medium:animation |
| Nach Status | status:available |
| Nach Ausstellung | exhibition:mosaik-2027 |
Export
Katalog-Export
npm run export:catalog -- --format pdf --output ./catalog.pdfDaten-Export
npm run export:werke -- --format csv --output ./werke.csv