From f6819b6a2b35a4494454d4c19b37c5e6f037921f Mon Sep 17 00:00:00 2001 From: Pepe Ziberi Date: Wed, 20 May 2026 21:44:07 +0200 Subject: [PATCH] Release 1.4.0: Phase 1 Symbol-Architektur Redesign --- CHANGELOG.md | 39 +++++++++++++++++++++++++++ package.json | 2 +- src/app/api/icons/[id]/image/route.ts | 4 +-- 3 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..f0b5da3 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,39 @@ +# Changelog + +Alle nennenswerten Änderungen an diesem Projekt werden in dieser Datei dokumentiert. +Das Format basiert auf [Keep a Changelog](https://keepachangelog.com/de/1.0.0/). + +## [1.4.0] – 2026-05-20 — Phase 1: Symbol-Architektur Redesign + +### Neu +- **SymbolTemplate** — globale, read-only Vorlagen-Pakete aus `public/signaturen/*.svg` +- **TenantCategory** — mandantenspezifische, frei anlegbare Kategorien für Symbole +- **TenantSymbol Refactor** — Symbole sind jetzt vollständig mandantenspezifisch (`name`, `svgPath`, `categoryId`, `isUploaded`) +- Upload-Dialog für eigene SVG/PNG/JPEG-Symbole mit Drag & Drop +- Import-Dialog für Vorlagen-Pakete (z.B. "Feuerwehr Schweiz") + +### APIs +- `GET /api/templates` — listet verfügbare Template-Pakete mit Vorschau +- `POST /api/templates/import` — importiert ein Paket als TenantSymbols +- `GET/POST/PATCH/DELETE /api/tenant/categories` — CRUD für Tenant-Kategorien +- `GET/POST/PATCH/DELETE /api/tenant/symbols` — erweitert: Gruppierung, Upload, JSON-Import +- `GET /api/tenant/symbols/[id]/image` — liefert TenantSymbol-Bilder aus MinIO oder `public/` +- `GET /api/icons/[id]/image` — TenantSymbol-First Lookup, dann Legacy-Fallback +- `GET /api/icons` — liefert jetzt auch `tenantSymbols` und `tenantSymbolGroups` + +### UI +- **Admin → Symbol-Manager**: komplett neues Layout mit 3 Tabs (Symbole, Kategorien, Import) +- **Sidebar (RightSidebar)**: zeigt Tenant-Symbole jetzt nach Kategorie gruppiert an + +### Migration & Seed +- `prisma/migrations/20260520_symbol_architecture/migration.sql` +- `prisma/seed-symbol-templates.ts` +- `prisma/migrate-tenant-symbols.ts` +- Alle Seeds idempotent (`upsert` statt `deleteMany`) + +--- + +## [1.3.5] – vor 2026-05-20 + +### Bestehende Features +- Karten-Zeichenwerkzeuge, Journal, Einsatzrapport, Projekte, Benutzerverwaltung, Mandantenverwaltung diff --git a/package.json b/package.json index c03f376..eca2a5c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "lageplan", - "version": "1.3.5", + "version": "1.4.0", "description": "Feuerwehr Lageplan - Krokier-App für Einsatzdokumentation", "private": true, "scripts": { diff --git a/src/app/api/icons/[id]/image/route.ts b/src/app/api/icons/[id]/image/route.ts index 737e0c6..b1efbdc 100644 --- a/src/app/api/icons/[id]/image/route.ts +++ b/src/app/api/icons/[id]/image/route.ts @@ -6,10 +6,10 @@ import { join } from 'path' export async function GET( request: NextRequest, - { params }: { params: { id: string } } + { params }: { params: Promise<{ id: string }> } ) { try { - const id = params.id + const { id } = await params // ─── 1. Try TenantSymbol first (Phase 1 architecture) ─── const tenantSymbol = await (prisma as any).tenantSymbol.findUnique({