35 lines
1.5 KiB
SQL
35 lines
1.5 KiB
SQL
-- Supplemental vehicle master data. Gateway-owned VIN/plate/OEM identity remains authoritative.
|
|
CREATE TABLE IF NOT EXISTS vehicle_profile (
|
|
vin VARCHAR(32) NOT NULL PRIMARY KEY,
|
|
model_name VARCHAR(128) NOT NULL DEFAULT '',
|
|
vehicle_type VARCHAR(64) NOT NULL DEFAULT '',
|
|
company_name VARCHAR(128) NOT NULL DEFAULT '',
|
|
operation_status VARCHAR(32) NOT NULL DEFAULT 'unknown',
|
|
access_provider VARCHAR(128) NOT NULL DEFAULT '',
|
|
first_access_at DATETIME(3) NULL,
|
|
runtime_seconds BIGINT UNSIGNED NULL,
|
|
source_system VARCHAR(64) NOT NULL DEFAULT 'manual',
|
|
source_version VARCHAR(128) NOT NULL DEFAULT '',
|
|
synced_at DATETIME(3) NULL,
|
|
version INT NOT NULL DEFAULT 1,
|
|
updated_by VARCHAR(128) NOT NULL,
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
|
KEY idx_vehicle_profile_company (company_name),
|
|
KEY idx_vehicle_profile_model (model_name),
|
|
KEY idx_vehicle_profile_status (operation_status),
|
|
KEY idx_vehicle_profile_provider (access_provider)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS vehicle_profile_audit (
|
|
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
vin VARCHAR(32) NOT NULL,
|
|
profile_version INT NOT NULL,
|
|
actor VARCHAR(128) NOT NULL,
|
|
action VARCHAR(32) NOT NULL,
|
|
snapshot_json LONGTEXT NOT NULL,
|
|
changed_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
UNIQUE KEY uk_vehicle_profile_audit_version (vin, profile_version),
|
|
KEY idx_vehicle_profile_audit_changed (changed_at)
|
|
);
|