-- Add Migration Version CREATE TABLE IF NOT EXISTS _sqlx_migrations ( version BIGINT PRIMARY KEY, description TEXT NOT NULL, installed_on TIMESTAMPTZ NOT NULL DEFAULT NOW() ); -- Create users table CREATE TABLE users ( id SERIAL PRIMARY KEY, email VARCHAR(255) NOT NULL UNIQUE, password_hash TEXT NOT NULL ); -- Create links table CREATE TABLE links ( id SERIAL PRIMARY KEY, original_url TEXT NOT NULL, short_code VARCHAR(8) NOT NULL UNIQUE, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), clicks BIGINT NOT NULL DEFAULT 0, user_id INTEGER REFERENCES users(id) ); -- Create clicks table CREATE TABLE clicks ( id SERIAL PRIMARY KEY, link_id INTEGER REFERENCES links(id), source TEXT, query_source TEXT, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() ); -- Create indexes CREATE INDEX idx_short_code ON links(short_code); CREATE INDEX idx_user_id ON links(user_id); CREATE INDEX idx_link_id ON clicks(link_id);