Rechtstexte und B2C-Vertragsabläufe absichern

This commit is contained in:
2026-08-22 14:31:56 +02:00
parent d320a4fd7a
commit a31a235422
58 changed files with 2502 additions and 316 deletions
@@ -0,0 +1,63 @@
ALTER TABLE tenants
ADD COLUMN customer_type VARCHAR(20) NOT NULL DEFAULT 'unknown' AFTER name,
ADD KEY idx_tenants_customer_type (customer_type);
ALTER TABLE rate_limit_attempts
ADD KEY idx_rate_limit_attempts_created (created_at);
ALTER TABLE audit_log
ADD KEY idx_audit_log_created (created_at);
ALTER TABLE outbound_emails
ADD KEY idx_outbound_emails_created (created_at);
CREATE TABLE legal_acceptances (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
tenant_id INT NULL,
user_id INT NULL,
document_type VARCHAR(40) NOT NULL,
document_version VARCHAR(20) NOT NULL,
context VARCHAR(60) NOT NULL,
ip VARCHAR(45) NULL,
user_agent VARCHAR(500) NULL,
metadata_json TEXT NULL,
accepted_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
KEY idx_legal_acceptances_tenant (tenant_id, accepted_at),
KEY idx_legal_acceptances_user (user_id, accepted_at),
CONSTRAINT fk_legal_acceptances_tenant
FOREIGN KEY (tenant_id) REFERENCES tenants(id)
ON DELETE SET NULL,
CONSTRAINT fk_legal_acceptances_user
FOREIGN KEY (user_id) REFERENCES users(id)
ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE legal_requests (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
reference_code VARCHAR(40) NOT NULL,
access_token_hash CHAR(64) NOT NULL,
request_type VARCHAR(30) NOT NULL,
tenant_id INT NULL,
user_id INT NULL,
requester_name VARCHAR(255) NOT NULL,
requester_email VARCHAR(255) NOT NULL,
contract_reference VARCHAR(255) NOT NULL,
request_reason TEXT NULL,
requested_end VARCHAR(40) NULL,
status VARCHAR(30) NOT NULL DEFAULT 'received',
ip VARCHAR(45) NULL,
user_agent VARCHAR(500) NULL,
metadata_json TEXT NULL,
received_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
processed_at DATETIME NULL,
UNIQUE KEY uq_legal_requests_reference (reference_code),
UNIQUE KEY uq_legal_requests_access_token (access_token_hash),
KEY idx_legal_requests_tenant (tenant_id, received_at),
KEY idx_legal_requests_type_status (request_type, status, received_at),
CONSTRAINT fk_legal_requests_tenant
FOREIGN KEY (tenant_id) REFERENCES tenants(id)
ON DELETE SET NULL,
CONSTRAINT fk_legal_requests_user
FOREIGN KEY (user_id) REFERENCES users(id)
ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;