From 97f415941c6fcdfbca6ede9ea06c9208e5ca60c5 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Tue, 21 Oct 2025 16:42:31 +0000 Subject: [PATCH] Optimize select queries --- src/components/admin/LocationSearch.tsx | 2 +- src/components/search/SearchResults.tsx | 2 +- src/hooks/useModerationQueue.ts | 4 ++-- src/hooks/useProfile.tsx | 2 +- src/hooks/useSearch.tsx | 2 +- src/lib/companyHelpers.ts | 6 +++--- src/lib/entitySubmissionHelpers.ts | 8 ++++---- src/pages/Designers.tsx | 2 +- src/pages/Manufacturers.tsx | 2 +- 9 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/components/admin/LocationSearch.tsx b/src/components/admin/LocationSearch.tsx index 95c90c00..19b192bd 100644 --- a/src/components/admin/LocationSearch.tsx +++ b/src/components/admin/LocationSearch.tsx @@ -61,7 +61,7 @@ export function LocationSearch({ onLocationSelect, initialLocationId, className const loadInitialLocation = async (locationId: string) => { const { data, error } = await supabase .from('locations') - .select('*') + .select('id, name, city, state_province, country, postal_code, latitude, longitude, timezone') .eq('id', locationId) .maybeSingle(); diff --git a/src/components/search/SearchResults.tsx b/src/components/search/SearchResults.tsx index 0740f51e..d55f10f7 100644 --- a/src/components/search/SearchResults.tsx +++ b/src/components/search/SearchResults.tsx @@ -52,7 +52,7 @@ export function SearchResults({ query, onClose }: SearchResultsProps) { // Search companies const { data: companies } = await supabase .from('companies') - .select('*') + .select('id, name, slug, description, company_type, logo_url, average_rating, review_count') .or(`name.ilike.${searchTerm},description.ilike.${searchTerm}`) .limit(3); diff --git a/src/hooks/useModerationQueue.ts b/src/hooks/useModerationQueue.ts index d733d588..38581ee0 100644 --- a/src/hooks/useModerationQueue.ts +++ b/src/hooks/useModerationQueue.ts @@ -59,7 +59,7 @@ export const useModerationQueue = (config?: UseModerationQueueConfig) => { try { const { data: slaData } = await supabase .from('moderation_sla_metrics') - .select('*'); + .select('pending_count, avg_wait_hours'); const { count: assignedCount } = await supabase .from('content_submissions') @@ -302,7 +302,7 @@ export const useModerationQueue = (config?: UseModerationQueueConfig) => { // Get submission details FIRST for better toast message const { data: submission } = await supabase .from('content_submissions') - .select('submission_type') + .select('id, submission_type') .eq('id', submissionId) .single(); diff --git a/src/hooks/useProfile.tsx b/src/hooks/useProfile.tsx index 0b4628f2..76cb37cc 100644 --- a/src/hooks/useProfile.tsx +++ b/src/hooks/useProfile.tsx @@ -34,7 +34,7 @@ export function useProfile(userId: string | undefined) { if (profileData.location_id) { const { data: location } = await supabase .from('locations') - .select('*') + .select('id, name, city, state_province, country, timezone') .eq('id', profileData.location_id) .single(); diff --git a/src/hooks/useSearch.tsx b/src/hooks/useSearch.tsx index 13a20851..0bf067e4 100644 --- a/src/hooks/useSearch.tsx +++ b/src/hooks/useSearch.tsx @@ -152,7 +152,7 @@ export function useSearch(options: UseSearchOptions = {}) { if (types.includes('company')) { const { data: companies } = await supabase .from('companies') - .select('*') + .select('id, name, slug, description, company_type, logo_url, average_rating, review_count') .or(`name.ilike.%${searchQuery}%,description.ilike.%${searchQuery}%`) .limit(Math.ceil(limit / types.length)); diff --git a/src/lib/companyHelpers.ts b/src/lib/companyHelpers.ts index cd9990ff..425c5165 100644 --- a/src/lib/companyHelpers.ts +++ b/src/lib/companyHelpers.ts @@ -42,7 +42,7 @@ export async function submitCompanyCreation( }, status: 'pending' as const }) - .select() + .select('id') .single(); if (submissionError) throw submissionError; @@ -81,7 +81,7 @@ export async function submitCompanyUpdate( // Fetch existing company data (all fields for original_data) const { data: existingCompany, error: fetchError } = await supabase .from('companies') - .select('*') + .select('id, name, slug, description, company_type, person_type, logo_url, card_image_url, banner_image_url, banner_image_id, card_image_id, headquarters_location, website_url, founded_year, founded_date, founded_date_precision') .eq('id', companyId) .single(); @@ -120,7 +120,7 @@ export async function submitCompanyUpdate( }, status: 'pending' as const }) - .select() + .select('id') .single(); if (submissionError) throw submissionError; diff --git a/src/lib/entitySubmissionHelpers.ts b/src/lib/entitySubmissionHelpers.ts index 371d62a2..761b63ea 100644 --- a/src/lib/entitySubmissionHelpers.ts +++ b/src/lib/entitySubmissionHelpers.ts @@ -207,7 +207,7 @@ export async function submitParkCreation( }, status: 'pending' as const }) - .select() + .select('id') .single(); if (submissionError) throw submissionError; @@ -260,7 +260,7 @@ export async function submitParkUpdate( // Fetch existing park data first const { data: existingPark, error: fetchError } = await supabase .from('parks') - .select('*') + .select('id, name, slug, description, park_type, status, opening_date, opening_date_precision, closing_date, closing_date_precision, website_url, phone, email, location_id, operator_id, property_owner_id, banner_image_url, banner_image_id, card_image_url, card_image_id') .eq('id', parkId) .single(); @@ -299,7 +299,7 @@ export async function submitParkUpdate( }, status: 'pending' as const }) - .select() + .select('id') .single(); if (submissionError) throw submissionError; @@ -379,7 +379,7 @@ export async function submitRideCreation( }, status: 'pending' as const }) - .select() + .select('id') .single(); if (submissionError) throw submissionError; diff --git a/src/pages/Designers.tsx b/src/pages/Designers.tsx index 9835983c..7b6338bb 100644 --- a/src/pages/Designers.tsx +++ b/src/pages/Designers.tsx @@ -51,7 +51,7 @@ export default function Designers() { try { let query = supabase .from('companies') - .select('*'); + .select('id, name, slug, description, company_type, person_type, logo_url, card_image_url, headquarters_location, founded_year, founded_date, founded_date_precision, average_rating, review_count'); // Filter only designers query = query.eq('company_type', 'designer'); diff --git a/src/pages/Manufacturers.tsx b/src/pages/Manufacturers.tsx index 49a7bc9e..faa17c70 100644 --- a/src/pages/Manufacturers.tsx +++ b/src/pages/Manufacturers.tsx @@ -38,7 +38,7 @@ export default function Manufacturers() { try { let query = supabase .from('companies') - .select('*'); + .select('id, name, slug, description, company_type, person_type, logo_url, card_image_url, headquarters_location, founded_year, founded_date, founded_date_precision, average_rating, review_count'); // Filter only manufacturers query = query.eq('company_type', 'manufacturer');