feat(ausruestungsanfrage): add personal item tracking, catalog enforcement, and detail pages

This commit is contained in:
Matthias Hochmeister
2026-04-14 16:49:20 +02:00
parent e6b6639fe9
commit 633a75cb0b
15 changed files with 1031 additions and 26 deletions

View File

@@ -0,0 +1,26 @@
-- Migration: 085_personal_equipment_eigenschaften
-- Adds eigenschaften (characteristics) storage for persoenliche_ausruestung
-- and extends ausruestung_anfrage_positionen for status change requests.
-- 1. Characteristics table for personal equipment items
CREATE TABLE IF NOT EXISTS persoenliche_ausruestung_eigenschaften (
id SERIAL PRIMARY KEY,
persoenlich_id UUID NOT NULL REFERENCES persoenliche_ausruestung(id) ON DELETE CASCADE,
eigenschaft_id INT REFERENCES ausruestung_artikel_eigenschaften(id) ON DELETE SET NULL,
name TEXT NOT NULL,
wert TEXT NOT NULL,
UNIQUE(persoenlich_id, eigenschaft_id)
);
CREATE INDEX IF NOT EXISTS idx_persoenliche_ausruestung_eigenschaften_persoenlich
ON persoenliche_ausruestung_eigenschaften(persoenlich_id);
-- 2. Add status-change request columns to anfrage positions
ALTER TABLE ausruestung_anfrage_positionen
ADD COLUMN IF NOT EXISTS persoenlich_id UUID REFERENCES persoenliche_ausruestung(id) ON DELETE SET NULL;
ALTER TABLE ausruestung_anfrage_positionen
ADD COLUMN IF NOT EXISTS aktueller_zustand TEXT;
ALTER TABLE ausruestung_anfrage_positionen
ADD COLUMN IF NOT EXISTS neuer_zustand TEXT CHECK (neuer_zustand IN ('gut','beschaedigt','abgaengig','verloren'));