Skip to main content

Internal Service: database_operations

Handles all database interactions for visibility results and scores. Uses entity_prompts_tracker (combined prompts + visibility) and visibility_score_history tables.

Functions

get_entity_id

Resolves a business/product to its database entity ID.

get_business_info

Fetches business/product information for visibility checks.
Returns:

update_prompt_visibility

Updates visibility results for a single prompt.
Updates columns: 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.
Returns: Number of prompts successfully updated Performance: Uses asyncio.gather for parallel database updates.

update_visibility_scores

Updates the overall visibility score for an entity (UPSERT pattern).
Behavior:
  • Updates recent_score column
  • Appends to history_scores JSONB array
  • Keeps last 365 days of history

get_visibility_results_from_db

Retrieves visibility results from entity_prompts_tracker.

Gets visibility score history for trend analysis.
Returns: List of history entries from history_scores JSONB array

Database Tables

entity_prompts_tracker

Combined prompts and visibility results per entity.

visibility_score_history

Historical visibility scores per entity.

Code Location