kundencenter/migrations
Kundencenter fe18bf0bce feat: IMAP-Posteingang fürs Ticketsystem (Mail-Antworten -> Tickets)
Neues Postfach lässt sich unter Einstellungen > E-Mail > IMAP-Posteingang
einrichten (Host/Port/Verschlüsselung/Zugangsdaten/Ordner, An/Aus,
Verbindungstest). Der Worker ruft es alle 2 Minuten ab (mailbox.ts) und
ordnet eingehende Mails zu:

1. Betreff enthält eine Ticketnummer (T-123) UND Absender gehört
   nachweislich zum Kunden dieses Tickets -> wird als Kundennachricht
   angehängt (Status pending_staff, Discord-Benachrichtigung).
2. Sonst, wenn der Absender ein bekannter aktiver Kunde ist -> neues
   Ticket wird automatisch unter seinem Kundenkonto angelegt.
3. Sonst (unbekannter/nicht verifizierbarer Absender) -> landet im
   neuen Posteingang (/admin/inbox, UI unter /admin/posteingang) zur
   manuellen Zuordnung: Personal wählt einen Kunden (legt Ticket an),
   hängt die Mail an ein bestehendes Ticket, oder ignoriert sie.

Beim ersten Aktivieren wird kein Mailbox-Bestand verarbeitet, nur ab
dann neu Eingehendes (last_uid wird auf den aktuellen Stand gesetzt).

Migration 024: imap_settings (Verbindung, verschlüsseltes Passwort,
last_uid/last_error), inbox_messages (Warteschlange). Rechte:
email.read/write für die IMAP-Verbindung (wie SMTP), tickets.read/write
für den Posteingang (Zuordnung ist eine Ticket-Aktion, daher im
Tickets-Modul statt eines eigenen Moduls, um keine Modulgrenzen zu
verletzen).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28 17:35:58 +02:00
..
001_core.sql Stand vor Einführung des Nacht-Agenten 2026-09-27 00:51:32 +02:00
002_connectors_resources.sql Stand vor Einführung des Nacht-Agenten 2026-09-27 00:51:32 +02:00
003_customer_type.sql Stand vor Einführung des Nacht-Agenten 2026-09-27 00:51:32 +02:00
004_catalog_orders_contracts.sql Stand vor Einführung des Nacht-Agenten 2026-09-27 00:51:32 +02:00
005_product_external_ref.sql Stand vor Einführung des Nacht-Agenten 2026-09-27 00:51:32 +02:00
006_price_basis.sql Stand vor Einführung des Nacht-Agenten 2026-09-27 00:51:32 +02:00
007_backup_settings_targets.sql Stand vor Einführung des Nacht-Agenten 2026-09-27 00:51:32 +02:00
008_org_legacy_ref.sql Stand vor Einführung des Nacht-Agenten 2026-09-27 00:51:32 +02:00
009_connector_error_time.sql Stand vor Einführung des Nacht-Agenten 2026-09-27 00:51:32 +02:00
010_domains.sql Stand vor Einführung des Nacht-Agenten 2026-09-27 00:51:32 +02:00
011_domain_rounding.sql Stand vor Einführung des Nacht-Agenten 2026-09-27 00:51:32 +02:00
012_domain_records.sql Stand vor Einführung des Nacht-Agenten 2026-09-27 00:51:32 +02:00
013_domain_cost_basis.sql Stand vor Einführung des Nacht-Agenten 2026-09-27 00:51:32 +02:00
014_tickets.sql Support-Tickets: Modul, Oberfläche, Discord-Benachrichtigung 2026-09-27 08:36:18 +02:00
015_ticket_attachments.sql Ticket-Anhänge: Bilder/PDF hochladen und anzeigen (geprüft anhand der Dateikennung) 2026-09-27 08:53:27 +02:00
016_invoices.sql Rechnungsmodul: Entwurf/Ausstellen/Bezahlt/Storno, PDF, Firmenstammdaten 2026-09-27 09:05:13 +02:00
017_ticket_domain_link.sql Tickets: Bezug zu Ressource oder Domain wählen, Verknüpfung direkt aus der Domain-Aufstellung 2026-09-27 16:40:14 +02:00
018_product_term_prices.sql Hosting-Produkte: Staffelpreise nach Laufzeit (1/3/6/12/24 Monate) 2026-09-27 18:35:34 +02:00
019_panel_credentials.sql KeyHelp: Panel-Passwort neu vergeben und verschlüsselt hinterlegen (verblurrt wie Lizenzschlüssel) 2026-09-27 21:35:15 +02:00
020_invoice_party_snapshots.sql Rechnungen: Absender-/Empfängerdaten beim Ausstellen einfrieren, Statuswechsel atomar (behebt Codex-Fund #95) 2026-09-28 10:29:00 +02:00
021_invoice_item_discount.sql Rechnungen: Rabatt je Position 2026-09-28 11:01:19 +02:00
022_mail_templates.sql feat: SMTP-Stack mit konfigurierbaren Mailvorlagen 2026-09-28 12:53:29 +02:00
023_mail_sender_profiles.sql feat: separate Absenderprofile für Kundencenter/Störungsticket/Rechnungen 2026-09-28 13:16:42 +02:00
024_imap_inbox.sql feat: IMAP-Posteingang fürs Ticketsystem (Mail-Antworten -> Tickets) 2026-09-28 17:35:58 +02:00