{{--
    Auftragsverarbeitungsvertrag (Art. 28 DSGVO).

    Rendered to PDF by App\Services\Legal\DpaRenderer through TCPDF, so the
    markup is deliberately plain: headings, paragraphs, lists and simple tables.
    TCPDF's HTML support is not a browser's — no flexbox, no grid, no custom
    properties — and anything fancier silently renders as something else.

    The company's own details come from CompanyProfile, so this document and the
    invoices cannot name the same company differently.

    ## What this text is and is not

    It is a working agreement built from what this installation actually does:
    the sub-processors are the ones the software really talks to, the measures
    referenced are the ones in the annex, and the deletion deadlines are the ones
    the code enforces. It is NOT a lawyer's opinion, and it should be read by one
    before it is relied on in a dispute — particularly the liability clause and
    anything a customer negotiates.
--}}
@php
    $c = App\Support\CompanyProfile::all();
    $seat = trim(($c['postcode'] ?? '').' '.($c['city'] ?? ''));

    // A register number of "FN 000000a" is a placeholder somebody has not
    // replaced yet, and printing it on a contract is worse than leaving the line
    // out: it looks like a real number and is not one. Anything whose digits are
    // all zeros is treated as unfilled.
    $real = fn (?string $value) => $value !== null && $value !== '' && preg_match('/[1-9]/', $value) === 1;
@endphp

<h1>Vertrag über die Auftragsverarbeitung</h1>
<p><i>gemäß Art. 28 der Verordnung (EU) 2016/679 (DSGVO)</i></p>

<p><b>Fassung {{ $version }}</b> · Stand {{ $issuedOn }}</p>

<h2>Die Vertragsparteien</h2>

<p><b>Auftragsverarbeiter</b> (im Folgenden „CluPilot"):<br />
{{ $c['name'] ?? 'CluPilot Cloud e.U.' }}<br />
{{ $c['address'] ?? '' }}<br />
{{ $seat }}, {{ $c['country'] ?? 'Österreich' }}<br />
@if ($real($c['register_number'] ?? null)){{ $c['register_number'] }}, {{ $c['register_court'] ?? '' }}<br />@endif
@if ($real($c['vat_id'] ?? null)){{ $c['vat_id'] }}<br />@endif
{{ $c['email'] ?? '' }}</p>

<p><b>Verantwortlicher</b> (im Folgenden „Kunde"):<br />
die im Kundenkonto hinterlegten Stammdaten. Der Kunde hält diese Angaben aktuell; sie
sind Bestandteil dieses Vertrags.</p>

<p>Dieser Vertrag wird elektronisch geschlossen. Art. 28 Abs. 9 DSGVO lässt das
ausdrücklich zu; eine Unterschrift auf Papier ist nicht erforderlich. CluPilot hält
Fassung, Zeitpunkt und IP-Adresse des Abschlusses fest und stellt dem Kunden den
Vertrag im Kundenbereich dauerhaft zum Abruf bereit.</p>

<h2>1. Gegenstand und Dauer</h2>

<p>1.1 CluPilot betreibt für den Kunden eine eigene Nextcloud-Instanz und verarbeitet
dabei personenbezogene Daten ausschließlich im Auftrag und nach Weisung des Kunden.
Der Kunde bleibt Verantwortlicher im Sinne von Art. 4 Z 7 DSGVO.</p>

<p>1.2 Dieser Vertrag gilt für die Dauer des Hauptvertrags (Nutzung eines CluPilot-Pakets)
und endet mit ihm. Regelungen, die ihrer Natur nach fortwirken — insbesondere
Verschwiegenheit und Löschung —, gelten darüber hinaus.</p>

<h2>2. Art, Zweck und Umfang der Verarbeitung</h2>

<p>2.1 <b>Zweck:</b> Bereitstellung, Betrieb, Wartung und Sicherung einer
Nextcloud-Installation samt zugehöriger Dienste (Speicherung und Freigabe von Dateien,
Kalender, Kontakte, sowie die vom Kunden gebuchten Zusatzmodule).</p>

<p>2.2 <b>Art der Verarbeitung:</b> Speichern, Aufbewahren, Sichern, Übermitteln im
Rahmen des Dienstes, Löschen. Eine inhaltliche Auswertung der Kundendaten findet nicht
statt.</p>

<p>2.3 <b>Kategorien betroffener Personen:</b> Beschäftigte, Kundinnen und Kunden,
Mandantinnen und Mandanten, Patientinnen und Patienten, Lieferanten und sonstige
Kontakte des Kunden — je nachdem, wessen Daten der Kunde in seiner Instanz speichert.</p>

<p>2.4 <b>Kategorien personenbezogener Daten:</b> Stamm- und Kontaktdaten,
Kommunikationsdaten, Inhalts- und Dokumentendaten, Nutzungs- und Protokolldaten der
Instanz. Der Kunde entscheidet allein, welche Daten er speichert; besondere Kategorien
nach Art. 9 DSGVO sind möglich, wenn der Kunde solche Daten einbringt.</p>

<h2>3. Weisungen</h2>

<p>3.1 CluPilot verarbeitet die Daten nur auf dokumentierte Weisung des Kunden. Der
Hauptvertrag samt Leistungsbeschreibung ist die vollständige Weisung für den
Regelbetrieb; weitere Weisungen erteilt der Kunde in Textform an
{{ $c['email'] ?? '' }} oder über den Kundenbereich.</p>

<p>3.2 Hält CluPilot eine Weisung für rechtswidrig, teilt sie dies dem Kunden unverzüglich
mit und darf die Ausführung bis zur Bestätigung aussetzen (Art. 28 Abs. 3 letzter Satz
DSGVO).</p>

<p>3.3 Eine Verarbeitung zu eigenen Zwecken findet nicht statt. Davon unberührt bleiben
Daten, die CluPilot als eigener Verantwortlicher verarbeitet — insbesondere die
Vertrags- und Rechnungsdaten des Kunden selbst.</p>

<h2>4. Vertraulichkeit</h2>

<p>CluPilot setzt zur Verarbeitung nur Personen ein, die zur Vertraulichkeit verpflichtet
und über die einschlägigen Bestimmungen des Datenschutzes unterwiesen sind (Art. 28
Abs. 3 lit. b DSGVO). Die Verpflichtung wirkt über das Ende der Tätigkeit hinaus.</p>

<h2>5. Technische und organisatorische Maßnahmen</h2>

<p>5.1 CluPilot trifft die Maßnahmen nach Art. 32 DSGVO. Sie sind in der <b>Anlage 1
(TOM)</b> beschrieben, die Bestandteil dieses Vertrags ist.</p>

<p>5.2 Die Maßnahmen unterliegen dem technischen Fortschritt. CluPilot darf sie
weiterentwickeln, solange das Schutzniveau nicht unterschritten wird; wesentliche
Änderungen werden dem Kunden mit einer neuen Fassung dieses Vertrags mitgeteilt.</p>

<h2>6. Unterauftragsverarbeiter</h2>

<p>6.1 Der Kunde erteilt die allgemeine Genehmigung zur Beauftragung der nachstehenden
Unterauftragsverarbeiter (Art. 28 Abs. 4 DSGVO):</p>

<table border="1" cellpadding="4">
    <tr>
        <td width="30%"><b>Unternehmen</b></td>
        <td width="30%"><b>Leistung</b></td>
        <td width="40%"><b>Ort der Verarbeitung</b></td>
    </tr>
    @foreach ($subprocessors as $sub)
        <tr>
            <td>{{ $sub['name'] }}</td>
            <td>{{ $sub['service'] }}</td>
            <td>{{ $sub['location'] }}</td>
        </tr>
    @endforeach
</table>

<p>6.2 CluPilot informiert den Kunden über die Hinzuziehung oder den Austausch eines
Unterauftragsverarbeiters mindestens vier Wochen vorher in Textform. Der Kunde kann
binnen zwei Wochen ab Zugang aus wichtigem, datenschutzbezogenem Grund widersprechen;
in diesem Fall kann jede Seite den Vertrag zum Wirksamwerden der Änderung kündigen.</p>

<p>6.3 CluPilot verpflichtet jeden Unterauftragsverarbeiter auf Pflichten, die diesem
Vertrag entsprechen, und haftet für dessen Verhalten wie für eigenes.</p>

<h2>7. Ort der Verarbeitung, Drittländer</h2>

<p>Die Verarbeitung findet ausschließlich in Mitgliedstaaten der Europäischen Union
statt. Eine Übermittlung in ein Drittland erfolgt nicht; sollte sie künftig
erforderlich werden, geschieht dies nur unter den Voraussetzungen der Art. 44 ff.
DSGVO und nach vorheriger Information des Kunden.</p>

<h2>8. Unterstützung des Kunden</h2>

<p>8.1 CluPilot unterstützt den Kunden mit geeigneten Maßnahmen bei der Erfüllung von
Betroffenenrechten (Art. 12 bis 23 DSGVO). Wendet sich eine betroffene Person direkt an
CluPilot, wird sie an den Kunden verwiesen und der Kunde unverzüglich verständigt.</p>

<p>8.2 CluPilot unterstützt den Kunden bei den Pflichten nach Art. 32 bis 36 DSGVO,
insbesondere bei Datenschutz-Folgenabschätzungen und bei Meldungen an die Aufsichtsbehörde.</p>

<p>8.3 <b>Verletzungen des Schutzes personenbezogener Daten</b> meldet CluPilot dem Kunden
unverzüglich, spätestens innerhalb von 24 Stunden ab Kenntnis, mit den nach Art. 33
Abs. 3 DSGVO erforderlichen Angaben, soweit sie vorliegen. Die Meldung an die
Aufsichtsbehörde obliegt dem Kunden.</p>

<h2>9. Nachweise und Kontrollen</h2>

<p>9.1 CluPilot stellt dem Kunden auf Anfrage die zum Nachweis der Einhaltung dieses
Vertrags erforderlichen Informationen zur Verfügung, insbesondere die jeweils geltende
Fassung der Anlage 1.</p>

<p>9.2 Der Kunde ist berechtigt, sich von der Einhaltung zu überzeugen. Kontrollen finden
nach Anmeldung mit angemessener Frist, während der üblichen Geschäftszeiten und ohne
Störung des Betriebsablaufs statt. CluPilot kann eine Kontrolle durch Vorlage geeigneter
Nachweise ersetzen, soweit dies zur Überprüfung ausreicht. Der Zutritt zu Räumen Dritter
richtet sich nach den Regeln des jeweiligen Unterauftragsverarbeiters.</p>

<h2>10. Löschung und Rückgabe</h2>

<p>10.1 Nach Beendigung des Hauptvertrags stellt CluPilot dem Kunden dessen Daten in
einem gängigen Format zum Abruf bereit. Die Bereitstellung erfolgt zum Ende der bezahlten
Periode; der Kunde hat ab Bereitstellung <b>30 Tage</b> Zeit, sie abzuholen.</p>

<p>10.2 Nach Ablauf dieser Frist löscht CluPilot die Instanz samt aller darin enthaltenen
personenbezogenen Daten sowie die zugehörigen Sicherungen. Die Löschung wird dem Kunden
auf Anfrage bestätigt.</p>

<p>10.3 Von der Löschung ausgenommen sind Daten, für die eine gesetzliche
Aufbewahrungspflicht besteht — insbesondere Rechnungen und Buchhaltungsunterlagen
(sieben Jahre, § 132 BAO). Diese Daten verarbeitet CluPilot als eigener Verantwortlicher.</p>

<h2>11. Haftung</h2>

<p>Es gilt Art. 82 DSGVO. Im Übrigen richtet sich die Haftung nach dem Hauptvertrag.</p>

<h2>12. Schlussbestimmungen</h2>

<p>12.1 Änderungen bedürfen der Textform. Widerspricht dieser Vertrag dem Hauptvertrag in
Fragen des Datenschutzes, geht dieser Vertrag vor.</p>

<p>12.2 Ist eine Bestimmung unwirksam, bleibt der übrige Vertrag gültig.</p>

<p>12.3 Es gilt österreichisches Recht. Gerichtsstand ist, soweit gesetzlich zulässig,
{{ $c['city'] ?? 'Wien' }}.</p>

<p><b>Anlage 1:</b> Technische und organisatorische Maßnahmen (TOM), Fassung {{ $version }}.</p>
