-- Align help-center tables with current GoChat/Chatwoot frontend model fields. ALTER TABLE categories ADD COLUMN IF NOT EXISTS account_id INTEGER, ADD COLUMN IF NOT EXISTS parent_id INTEGER, ADD COLUMN IF NOT EXISTS associated_category_id INTEGER, ADD COLUMN IF NOT EXISTS custom_attributes JSONB DEFAULT '{}'; UPDATE categories c SET account_id = p.account_id FROM portals p WHERE c.portal_id = p.id AND c.account_id IS NULL; ALTER TABLE categories ALTER COLUMN account_id SET NOT NULL; CREATE INDEX IF NOT EXISTS idx_categories_account_id ON categories(account_id) WHERE deleted_at IS NULL; CREATE INDEX IF NOT EXISTS idx_categories_parent_id ON categories(parent_id) WHERE deleted_at IS NULL AND parent_id IS NOT NULL; CREATE INDEX IF NOT EXISTS idx_categories_associated_category_id ON categories(associated_category_id) WHERE deleted_at IS NULL AND associated_category_id IS NOT NULL; ALTER TABLE folders ADD COLUMN IF NOT EXISTS account_id INTEGER, ADD COLUMN IF NOT EXISTS category_id INTEGER, ADD COLUMN IF NOT EXISTS parent_id INTEGER, ADD COLUMN IF NOT EXISTS custom_attributes JSONB DEFAULT '{}'; UPDATE folders f SET account_id = p.account_id FROM portals p WHERE f.portal_id = p.id AND f.account_id IS NULL; ALTER TABLE folders ALTER COLUMN account_id SET NOT NULL; CREATE INDEX IF NOT EXISTS idx_folders_account_id ON folders(account_id) WHERE deleted_at IS NULL; CREATE INDEX IF NOT EXISTS idx_folders_category_id ON folders(category_id) WHERE deleted_at IS NULL AND category_id IS NOT NULL; CREATE INDEX IF NOT EXISTS idx_folders_parent_id ON folders(parent_id) WHERE deleted_at IS NULL AND parent_id IS NOT NULL;