24 lines
1.2 KiB
SQL
24 lines
1.2 KiB
SQL
-- Add customer contract data fields to existing users.
|
|
ALTER TABLE users
|
|
ADD COLUMN IF NOT EXISTS first_name VARCHAR(100) NOT NULL DEFAULT '' AFTER email,
|
|
ADD COLUMN IF NOT EXISTS last_name VARCHAR(100) NOT NULL DEFAULT '' AFTER first_name,
|
|
ADD COLUMN IF NOT EXISTS street_address VARCHAR(180) NOT NULL DEFAULT '' AFTER last_name,
|
|
ADD COLUMN IF NOT EXISTS postal_code VARCHAR(20) NOT NULL DEFAULT '' AFTER street_address,
|
|
ADD COLUMN IF NOT EXISTS city VARCHAR(100) NOT NULL DEFAULT '' AFTER postal_code,
|
|
ADD COLUMN IF NOT EXISTS country_code CHAR(2) NOT NULL DEFAULT 'AT' AFTER city;
|
|
|
|
CREATE TABLE IF NOT EXISTS user_consents (
|
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
user_id BIGINT UNSIGNED NOT NULL,
|
|
consent_type ENUM('terms', 'privacy', 'withdrawal') NOT NULL,
|
|
document_url VARCHAR(2048) NOT NULL,
|
|
document_version VARCHAR(100) NULL,
|
|
consented_at DATETIME NOT NULL,
|
|
consent_ip VARCHAR(45) NULL,
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uq_user_consent_type (user_id, consent_type),
|
|
KEY idx_user_consents_user (user_id),
|
|
CONSTRAINT fk_user_consents_user FOREIGN KEY (user_id) REFERENCES users (id)
|
|
ON UPDATE CASCADE ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|