forked from lunanting/cangku
21 lines
1.4 KiB
SQL
21 lines
1.4 KiB
SQL
CREATE TABLE IF NOT EXISTS desktop_client_presence (
|
|
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT 'Presence record ID',
|
|
user_id BIGINT NOT NULL COMMENT 'Authenticated user ID',
|
|
client_id CHAR(36) NOT NULL COMMENT 'Persistent desktop installation ID',
|
|
client_name VARCHAR(100) NOT NULL DEFAULT 'PDD Operations Automation' COMMENT 'Desktop application name',
|
|
client_version VARCHAR(32) NULL COMMENT 'Desktop application version',
|
|
platform VARCHAR(32) NULL COMMENT 'Operating system platform',
|
|
platform_version VARCHAR(128) NULL COMMENT 'Operating system version',
|
|
device_name VARCHAR(255) NULL COMMENT 'Device hostname',
|
|
ip_address VARCHAR(64) NULL COMMENT 'Latest client IP address',
|
|
user_agent VARCHAR(500) NULL COMMENT 'Latest HTTP user agent',
|
|
online_since_at DATETIME(3) NOT NULL COMMENT 'Current online session start time',
|
|
last_seen_at DATETIME(3) NOT NULL COMMENT 'Latest heartbeat time',
|
|
offline_at DATETIME(3) NULL COMMENT 'Explicit offline time',
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'Created time',
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'Updated time',
|
|
UNIQUE KEY uk_desktop_presence_user_client (user_id, client_id),
|
|
INDEX idx_desktop_presence_last_seen (last_seen_at),
|
|
INDEX idx_desktop_presence_user (user_id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Desktop client online presence';
|