Internal Service: database_operations
Handles all database interactions for visibility results and scores. Usesentity_prompts_tracker (combined prompts + visibility) and visibility_score_history tables.
Functions
get_entity_id
Resolves a business/product to its database entity ID.| Parameter | Type | Description |
|---|---|---|
business_id | str | Clerk org slug |
product_id | str | Optional product slug |
get_business_info
Fetches business/product information for visibility checks.update_prompt_visibility
Updates visibility results for a single prompt.chatgpt, claude, gemini, perplexity, copilot, deepseek, grok, google_ai, checked_at, last_tested_at
batch_update_visibility_results
Updates visibility results for multiple prompts in parallel.asyncio.gather for parallel database updates.
update_visibility_scores
Updates the overall visibility score for an entity (UPSERT pattern).- Updates
recent_scorecolumn - Appends to
history_scoresJSONB array - Keeps last 365 days of history
get_visibility_results_from_db
Retrieves visibility results fromentity_prompts_tracker.
get_visibility_trends_from_db
Gets visibility score history for trend analysis.history_scores JSONB array
Database Tables
entity_prompts_tracker
Combined prompts and visibility results per entity.| Column | Type | Description |
|---|---|---|
entity_id | UUID | Foreign key to entities |
prompt | text | The search prompt |
chatgpt | boolean | Visibility on ChatGPT |
claude | boolean | Visibility on Claude |
gemini | boolean | Visibility on Gemini |
perplexity | boolean | Visibility on Perplexity |
copilot | boolean | Visibility on Copilot |
deepseek | boolean | Visibility on DeepSeek |
grok | boolean | Visibility on Grok |
google_ai | boolean | Visibility on Google AI |
checked_at | timestamp | When last checked |
last_tested_at | timestamp | When last tested |
visibility_score_history
Historical visibility scores per entity.| Column | Type | Description |
|---|---|---|
entity_id | UUID | Foreign key to entities |
recent_score | integer | Latest overall score (0-100) |
history_scores | JSONB | Array of daily score entries |