Fristen, Laufzeiten & Kündigungen werden je Vertrag in contract_obligations geführt; jede Verlängerung erzeugt ein revisionssicheres contract_event mit eingefrorener Tarifversion.
);
}
/* ---- Automatisierung (Mock) ---- */
const AUTO_RULES_INIT = [
{ id: 'gen', icon: 'spark', name: 'Auto-Vertragserzeugung bei Registrierung', desc: 'Erzeugt automatisch die passende Vertragsstrecke je Modell (§ 42a / § 42b), sobald sich ein Bewohner registriert.', on: true },
{ id: 'renew', icon: 'refresh', name: 'Automatische Verlängerung', desc: 'Verträge ohne fristgerechte Kündigung 3 Monate vor Ablauf um die Laufzeit verlängern — mit eingefrorener Tarifversion.', on: true },
{ id: 'remind', icon: 'calendar', name: 'Fristen-Erinnerung', desc: 'Hausverwaltung 90 / 60 / 30 Tage vor Vertragsende benachrichtigen.', on: true },
{ id: 'final', icon: 'receipt', name: 'Auto-Schlussabrechnung bei Auszug', desc: 'Bei gemeldetem Auszug Verbrauch ablesen und Schlussrechnung automatisch erzeugen.', on: false },
{ id: 'tariff', icon: 'bolt', name: 'Tarifwechsel zum Jahreswechsel', desc: 'Neue Tarifversion automatisch zum 01.01. anwenden und Bewohner informieren.', on: false },
];
const AUTO_LOG = [
{ t: 'Vertrag W12 automatisch erzeugt (Mieterstrom v2.1)', when: 'Heute · 08:14', icon: 'spark', good: true },
{ t: 'Erinnerung an HV: 3 Verträge laufen in < 60 Tagen aus', when: 'Gestern · 06:00', icon: 'calendar' },
{ t: 'Vertrag W01 automatisch um 24 Monate verlängert', when: '21.06. · 00:01', icon: 'refresh', good: true },
{ t: 'Schlussabrechnung W05 — manuell ausgelöst (Regel inaktiv)', when: '18.06. · 14:32', icon: 'receipt', warn: true },
];
function AutomationView() {
const [rules, setRules] = useLcS(AUTO_RULES_INIT);
const toggle = id => setRules(rs => rs.map(r => r.id === id ? { ...r, on: !r.on } : r));
const onCount = rules.filter(r => r.on).length;
return (
Automatisierung aktiv
{onCount} von {rules.length} Regeln laufen. Powermieter erzeugt, verlängert und überwacht Verträge je Tarifmodell — die Hausverwaltung greift nur bei Ausnahmen ein.
{onCount}/{rules.length}
Regeln aktiv
{/* Regeln */}
Automatisierungs-Regeln
{rules.map(r => (
{(I[r.icon] || I.dot)({ size: 18 })}
{r.name}
{r.desc}
))}
{/* Aktivitäts-Log */}
Automatisierungs-Log
{AUTO_LOG.map((e, i) => (
{(I[e.icon] || I.dot)({ size: 13 })}
{e.t}
{e.when}
))}
Jede automatische Aktion ist im Audit-Log nachvollziehbar — wer/was/wann, inkl. genutzter Vertrags- und Tarifversion.