38 lines
1.6 KiB
MySQL
38 lines
1.6 KiB
MySQL
|
|
-- IMAP-Postfach für das Ticketsystem: eingehende Mails werden abgerufen, bekannten Tickets/Kunden
|
||
|
|
-- zugeordnet oder als neues Ticket angelegt; unbekannte Absender landen zur manuellen Zuordnung
|
||
|
|
-- im Posteingang (siehe inbox_messages).
|
||
|
|
CREATE TABLE imap_settings (
|
||
|
|
id TINYINT PRIMARY KEY DEFAULT 1,
|
||
|
|
host VARCHAR(253) NULL,
|
||
|
|
port SMALLINT UNSIGNED NOT NULL DEFAULT 993,
|
||
|
|
secure_mode ENUM('tls','starttls') NOT NULL DEFAULT 'tls',
|
||
|
|
username VARCHAR(200) NULL,
|
||
|
|
secrets_enc TEXT NULL,
|
||
|
|
folder VARCHAR(200) NOT NULL DEFAULT 'INBOX',
|
||
|
|
enabled TINYINT(1) NOT NULL DEFAULT 0,
|
||
|
|
last_uid BIGINT UNSIGNED NULL,
|
||
|
|
last_checked_at DATETIME(3) NULL,
|
||
|
|
last_error VARCHAR(500) NULL,
|
||
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
|
|
updated_by CHAR(36) NULL REFERENCES users(id),
|
||
|
|
CONSTRAINT chk_imap_singleton CHECK (id = 1)
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
|
|
INSERT INTO imap_settings (id) VALUES (1);
|
||
|
|
|
||
|
|
CREATE TABLE inbox_messages (
|
||
|
|
id CHAR(36) PRIMARY KEY,
|
||
|
|
uid BIGINT UNSIGNED NOT NULL,
|
||
|
|
message_id VARCHAR(998) NULL,
|
||
|
|
from_email VARCHAR(254) NOT NULL,
|
||
|
|
from_name VARCHAR(200) NULL,
|
||
|
|
subject VARCHAR(500) NULL,
|
||
|
|
body_text MEDIUMTEXT NULL,
|
||
|
|
received_at DATETIME(3) NOT NULL,
|
||
|
|
status ENUM('matched','created','unmatched','ignored') NOT NULL DEFAULT 'unmatched',
|
||
|
|
ticket_id CHAR(36) NULL REFERENCES tickets(id),
|
||
|
|
matched_user_id CHAR(36) NULL REFERENCES users(id),
|
||
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
|
|
UNIQUE KEY uk_inbox_uid (uid),
|
||
|
|
KEY idx_inbox_status (status)
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|