-- Entwicklungs-Seed (Akzeptanzkriterium 3): legt einen Beispielordner, ein -- Beispieldokument mit einer Revision, ein Tag und ein Metadatenfeld an. -- Setzt voraus, dass mindestens ein Benutzer existiert (Core IAM-01 legt -- users an, DMS tut das nicht selbst - siehe "Nicht Bestandteil" in -- FDN-02) - schlaegt sonst absichtlich mit einer sprechenden Fehlermeldung -- fehl statt einen Platzhalter-Benutzer anzulegen, den DMS gar nicht -- verwalten darf. DO $$ DECLARE seed_user_id UUID; seed_folder_id UUID; seed_document_id UUID; BEGIN SELECT id INTO seed_user_id FROM users ORDER BY created_at LIMIT 1; IF seed_user_id IS NULL THEN RAISE EXCEPTION 'dev_seed.sql: keine Zeile in users gefunden - zuerst Core-Seed (IAM-01) ausfuehren'; END IF; INSERT INTO folders (name, created_by) VALUES ('Beispielordner', seed_user_id) RETURNING id INTO seed_folder_id; INSERT INTO documents (folder_id, title, created_by) VALUES (seed_folder_id, 'Beispieldokument', seed_user_id) RETURNING id INTO seed_document_id; INSERT INTO file_revisions (document_id, revision_number, storage_key, checksum_sha256, size_bytes, mime_type, created_by) VALUES (seed_document_id, 1, 'dev-seed/beispiel.pdf', repeat('0', 64), 12345, 'application/pdf', seed_user_id); UPDATE documents SET current_revision_id = ( SELECT id FROM file_revisions WHERE document_id = seed_document_id AND revision_number = 1 ) WHERE id = seed_document_id; INSERT INTO tags (name) VALUES ('Beispiel-Tag') ON CONFLICT (name) DO NOTHING; INSERT INTO document_tags (document_id, tag_id) SELECT seed_document_id, id FROM tags WHERE name = 'Beispiel-Tag'; INSERT INTO metadata_fields (field_key, label, field_type) VALUES ('rechnungsnummer', 'Rechnungsnummer', 'text') ON CONFLICT (field_key) DO NOTHING; INSERT INTO document_metadata_values (document_id, field_id, value) SELECT seed_document_id, id, 'RE-2026-0001' FROM metadata_fields WHERE field_key = 'rechnungsnummer'; END $$;