23 lines
958 B
SQL
23 lines
958 B
SQL
-- User devices table
|
|
CREATE TABLE user_devices (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
device_id VARCHAR(255) NOT NULL,
|
|
device_name VARCHAR(255),
|
|
device_type VARCHAR(50) CHECK (device_type IN ('mobile', 'tablet', 'desktop')),
|
|
platform VARCHAR(50) CHECK (platform IN ('android', 'ios', 'web')),
|
|
fcm_token VARCHAR(512),
|
|
app_version VARCHAR(50),
|
|
os_version VARCHAR(50),
|
|
ip_address VARCHAR(45),
|
|
last_active_at TIMESTAMP WITH TIME ZONE,
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
|
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
|
);
|
|
|
|
-- Indexes
|
|
CREATE INDEX idx_user_devices_user_id ON user_devices(user_id);
|
|
CREATE INDEX idx_user_devices_device_id ON user_devices(device_id);
|
|
CREATE INDEX idx_user_devices_fcm_token ON user_devices(fcm_token);
|
|
CREATE UNIQUE INDEX idx_user_devices_user_device ON user_devices(user_id, device_id);
|