# Stammdaten / Company Profile Das Unternehmensprofil (Stammdaten) bildet die Grundlage fuer die automatische Dokumentengenerierung. Es wird in einem mehrstufigen Wizard erfasst. ## Wizard-Schritte | Schritt | Name | Felder | |---------|------|--------| | 1 | Basisinfos | Firmenname, Rechtsform, Branche, Gruendungsjahr | | 2 | Geschaeftsmodell | B2B/B2C/B2B2C, Angebote | | 3 | Firmengroesse | Unternehmengroesse, Mitarbeiterzahl, Umsatz | | 4 | Standorte | Hauptsitz, Zielmaerkte | | 5 | Datenschutz | Datenschutz-Rolle, KI-Nutzung, DSB | | 6 | Systeme & KI | IT-Systeme (pbD), KI-System-Katalog | | 7 | Rechtlicher Rahmen | NIS2/AI Act/ISO 27001, Aufsichtsbehoerde, Pruefzyklus, Ansprechpartner | | 8 | Produkt & Maschine | Nur fuer Maschinenbauer: CE, Safety, Software | | 99 | **Summary** | Zusammenfassung aller erfassten Daten, Vollstaendigkeits-Pruefung, Weiter-zu-Scope-Button | ### Summary-Seite (Step 99) Nach Abschluss des Profils wird eine Zusammenfassung angezeigt: - **Gruenes Banner** bei vollstaendigem Profil: "Profil erfolgreich abgeschlossen" - **Gelbes Banner** bei unvollstaendigem Profil: "Profil unvollstaendig" mit Button "Fehlende Angaben ergaenzen" - **Summary-Grid** mit allen erfassten Feldern auf einen Blick - **Button "Weiter zu Scope"** (nur bei vollstaendigem Profil sichtbar) - **Button "Profil bearbeiten"** um zurueck in den Wizard zu gelangen Die "Dokumente generieren"-Funktion wurde aus dem Profil entfernt — Dokumente werden im separaten Dokumentenmodul generiert. ## API-Endpoints | Methode | Pfad | Beschreibung | |---------|------|--------------| | `GET` | `/company-profile` | Profil laden | | `POST` | `/company-profile` | Profil erstellen/aktualisieren (Upsert) | | `DELETE` | `/company-profile` | Profil loeschen (DSGVO Art. 17) | | `GET` | `/company-profile/template-context` | Flacher Dict fuer Template-Substitution | ## Erweiterte Felder (Phase 2) ### Migration 036 | Spalte | Typ | Beschreibung | |--------|-----|--------------| | `repos` | JSONB | Git-Repos im Scope | | `document_sources` | JSONB | Bestehende Compliance-Dokumente | | `processing_systems` | JSONB | IT-Systeme mit personenbezogenen Daten | | `ai_systems` | JSONB | Strukturierter KI-System-Katalog | | `technical_contacts` | JSONB | CISO, IT-Manager etc. | | `subject_to_nis2` | BOOLEAN | NIS2-Pflicht | | `subject_to_ai_act` | BOOLEAN | AI Act relevant | | `subject_to_iso27001` | BOOLEAN | ISO 27001 Zertifizierung | | `supervisory_authority` | VARCHAR(255) | Zustaendige Aufsichtsbehoerde | | `review_cycle_months` | INTEGER | Pruefzyklus in Monaten | ### Processing Systems Format ```json [ { "name": "SAP HR", "vendor": "SAP", "hosting": "cloud", "personal_data_categories": ["Mitarbeiter", "Bankdaten"] } ] ``` ### AI Systems Format ```json [ { "name": "Chatbot", "purpose": "Kundensupport", "risk_category": "limited", "vendor": "OpenAI", "has_human_oversight": true } ] ``` ## Template-Kontext Der Endpoint `GET /company-profile/template-context` liefert einen flachen Dict, der direkt in die Template-Generierung einfliessen kann: ```json { "company_name": "Acme GmbH", "processing_systems": [...], "ai_systems": [...], "subject_to_nis2": false, "subject_to_ai_act": true, "has_ai_systems": true, "is_complete": true } ``` ## Tests - 10 Tests in `test_company_profile_extend.py` - Pydantic-Schema-Validierung, Row-to-Response-Mapping, Template-Kontext