-- Users table CREATE TABLE users ( id TEXT PRIMARY KEY, email TEXT UNIQUE NOT NULL, password_hash TEXT NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP, deleted_at DATETIME ); -- Posts table CREATE TABLE posts ( id TEXT PRIMARY KEY, title TEXT NOT NULL, content TEXT NOT NULL, author_id TEXT NOT NULL REFERENCES users(id), published BOOLEAN DEFAULT FALSE, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP, deleted_at DATETIME ); -- Indexes for performance CREATE INDEX idx_posts_deleted_at ON posts(deleted_at); CREATE INDEX idx_posts_published ON posts(published) WHERE deleted_at IS NULL; CREATE INDEX idx_posts_author ON posts(author_id) WHERE deleted_at IS NULL; CREATE INDEX idx_users_email ON users(email) WHERE deleted_at IS NULL;