faq.php zeigte bislang fuer jeden Mandanten denselben, komplett AOK-spezifischen Inhalt (Kaffeemaschinen-Bedienung, interner Ansprechpartner) - fuer andere Kunden unbrauchbar und inhaltlich falsch. - Neue Tabelle faq_entries (tenant-scoped, Soft-Delete, sort_order). - Migration uebernimmt die bisherigen AOK-Inhalte einmalig als FAQ des migrierten Default-Mandanten; andere Mandanten sehen sie nicht. - Neue Mandanten bekommen bei der Registrierung automatisch eine kurze generische Starter-FAQ (faq_seed_default_entries), frei editierbar. - faq.php: lesbar fuer alle angemeldeten Mitglieder eines Mandanten, Anlegen/Bearbeiten/Entfernen auf owner/admin beschraenkt. - Landingpage verweist nicht mehr auf faq.php (jetzt interner, mandantengebundener Inhalt statt oeffentlicher Marketing-Seite). Live getestet: AOK-Carry-over fuer Default-Mandant, frisch registrierter Test-Mandant bekam isolierte generische Starter-FAQ, Anlegen mit HTML-Payload (korrekt escaped), Bearbeiten und Soft-Delete geprueft. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
42 lines
3.0 KiB
SQL
42 lines
3.0 KiB
SQL
CREATE TABLE IF NOT EXISTS faq_entries (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
tenant_id INT NOT NULL,
|
|
question VARCHAR(500) NOT NULL,
|
|
answer TEXT NOT NULL,
|
|
sort_order INT NOT NULL DEFAULT 0,
|
|
deleted_at DATETIME NULL,
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
KEY idx_faq_entries_tenant_sort (tenant_id, sort_order),
|
|
CONSTRAINT fk_faq_entries_tenant
|
|
FOREIGN KEY (tenant_id) REFERENCES tenants(id)
|
|
ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
-- Die bisherige faq.php war komplett AOK-spezifisch (Kaffeemaschine,
|
|
-- interner Ansprechpartner). Dieser Inhalt gehoert nur zum migrierten
|
|
-- Default-Mandanten und wird als dessen erste FAQ-Eintraege uebernommen,
|
|
-- statt fuer alle Mandanten sichtbar zu bleiben.
|
|
INSERT INTO faq_entries (tenant_id, question, answer, sort_order)
|
|
SELECT t.id, x.question, x.answer, x.sort_order
|
|
FROM tenants t
|
|
CROSS JOIN (
|
|
SELECT 1 AS sort_order, 'Wie werde ich Mitglied der Kaffeeliste?' AS question,
|
|
'Neumitglieder können sich einfach in diese Liste eintragen und zahlen aktuell keine Aufnahmegebühr. Es ist keine weitere Rücksprache nötig. Schon mal ausgetretene Mitglieder können erst nach einem Jahr wiederaufgenommen werden.' AS answer
|
|
UNION ALL SELECT 2, 'Wo finde ich Milch, Zucker und Kaffee?',
|
|
'Milch findet ihr im Kühlschrank, Zucker und Süßstoff steht neben der Kaffeemaschine. Nachschub findet ihr im Schrank über der Maschine. Sollte dort nichts mehr vorhanden sein, informiert bitte den Ansprechpartner der Kaffeeliste.'
|
|
UNION ALL SELECT 3, 'Welche Arten von Kaffee bekomme ich an der Kaffeemaschine?',
|
|
'Es gibt vier Tasten: Espresso (ca. 100ml), Coffee (ca. 150ml), Hot Water (ca. 200ml warmes Wasser) und Americano (ca. 300ml). Eine persönliche Einstellung der Kaffeemenge ist nicht möglich.'
|
|
UNION ALL SELECT 4, 'Wie viel kostet ein Kaffee?',
|
|
'Den aktuellen Preis pro Strich findest du oben in der Kaffeeliste. Ein einfacher Kaffee kann ein oder auch zwei Striche kosten.'
|
|
UNION ALL SELECT 5, 'Wie erfolgt die Abrechnung?',
|
|
'Je nachdem, was du an der Maschine bezogen hast, machst du die entsprechenden Striche auf der Liste. Etwa einmal im Monat wird die Liste aktualisiert; du bekommst eine E-Mail, wenn du bezahlen musst.'
|
|
UNION ALL SELECT 6, 'Wie kann ich bezahlen?',
|
|
'Aktuell kann per PayPal bezahlt werden. Du erhältst einen entsprechenden Link per Mail. Bitte immer über die Freunde-Funktion von PayPal bezahlen, sonst wird eine Gebühr fällig.'
|
|
UNION ALL SELECT 7, 'Ich habe eine rote Markierung in der Liste. Was bedeutet das?',
|
|
'Du hast einen höheren offenen Betrag. Bitte gleiche deinen ausstehenden Betrag zeitnah aus.'
|
|
UNION ALL SELECT 8, 'Ich habe das Gefühl, mein Betrag/Guthaben passt nicht. Was soll ich machen?',
|
|
'Fehler können leider auch in der Kaffeeliste passieren. Melde dich bei deinem Ansprechpartner, dann wird die Abrechnung gemeinsam geprüft.'
|
|
) x
|
|
WHERE t.slug = 'default';
|