CREATE TABLE IF NOT EXISTS contact_groups ( id TEXT PRIMARY KEY, name TEXT NOT NULL UNIQUE, created_at TEXT NOT NULL DEFAULT (datetime('now')), updated_at TEXT NOT NULL DEFAULT (datetime('now')) ); CREATE TABLE IF NOT EXISTS contact_group_members ( group_id TEXT NOT NULL, contact_id TEXT NOT NULL, PRIMARY KEY (group_id, contact_id), FOREIGN KEY (group_id) REFERENCES contact_groups(id) ON DELETE CASCADE, FOREIGN KEY (contact_id) REFERENCES contacts(id) ON DELETE CASCADE ); CREATE INDEX IF NOT EXISTS idx_cgm_contact_id ON contact_group_members(contact_id);