-- Create devices table CREATE TABLE IF NOT EXISTS devices ( id uuid PRIMARY KEY default gen_random_uuid(), created_at timestamp NOT NULL default now(), created_by uuid NOT NULL, updated_at timestamp NOT NULL default now(), updated_by uuid NOT NULL, fingerprint_hash VARCHAR(64) UNIQUE NOT NULL, device_name VARCHAR(255), first_seen TIMESTAMP NOT NULL DEFAULT NOW(), last_seen TIMESTAMP NOT NULL DEFAULT NOW(), user_agent TEXT ); -- Create indexes for better performance CREATE INDEX IF NOT EXISTS idx_devices_fingerprint_hash ON devices(fingerprint_hash); CREATE INDEX IF NOT EXISTS idx_devices_last_seen ON devices(last_seen); -- Create function to automatically update updated_at timestamp CREATE OR REPLACE FUNCTION update_updated_at_column() RETURNS TRIGGER AS $$ BEGIN NEW.updated_at = NOW(); RETURN NEW; END; $$ language 'plpgsql'; -- Create trigger to automatically update updated_at DROP TRIGGER IF EXISTS update_devices_updated_at ON devices; CREATE TRIGGER update_devices_updated_at BEFORE UPDATE ON devices FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();