Rechtstexte und B2C-Vertragsabläufe absichern
This commit is contained in:
@@ -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;
|
||||
@@ -0,0 +1,4 @@
|
||||
ALTER TABLE tenants
|
||||
ADD COLUMN termination_requested_at DATETIME NULL AFTER customer_type,
|
||||
ADD COLUMN contract_ends_at DATETIME NULL AFTER termination_requested_at,
|
||||
ADD KEY idx_tenants_contract_end (contract_ends_at);
|
||||
Reference in New Issue
Block a user