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.json

Werke

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.pdf

Daten-Export

npm run export:werke -- --format csv --output ./werke.csv