Refactor: Complete type safety migration

This commit is contained in:
gpt-engineer-app[bot]
2025-10-17 13:22:39 +00:00
parent 3d61d738f2
commit efc33a7dda
10 changed files with 212 additions and 161 deletions

View File

@@ -1,5 +1,6 @@
import { useRef, useCallback } from 'react';
import { supabase } from '@/integrations/supabase/client';
import { createTableQuery } from '@/lib/supabaseHelpers';
import { logger } from '@/lib/logger';
import { MODERATION_CONSTANTS } from '@/lib/moderation/constants';
@@ -104,32 +105,40 @@ export function useEntityCache() {
return ids.map(id => getCached(type, id)).filter(Boolean);
}
// Determine table name and select fields based on entity type
let tableName: string;
let selectFields: string;
switch (type) {
case 'rides':
tableName = 'rides';
selectFields = 'id, name, park_id';
break;
case 'parks':
tableName = 'parks';
selectFields = 'id, name';
break;
case 'companies':
tableName = 'companies';
selectFields = 'id, name';
break;
default:
throw new Error(`Unknown entity type: ${type}`);
}
try {
const { data, error } = await supabase
.from(tableName as any)
.select(selectFields)
.in('id', uncachedIds);
let data: any[] | null = null;
let error: any = null;
// Use type-safe table queries
switch (type) {
case 'rides':
const ridesResult = await createTableQuery('rides')
.select('id, name, slug, park_id')
.in('id', uncachedIds);
data = ridesResult.data;
error = ridesResult.error;
break;
case 'parks':
const parksResult = await createTableQuery('parks')
.select('id, name, slug')
.in('id', uncachedIds);
data = parksResult.data;
error = parksResult.error;
break;
case 'companies':
const companiesResult = await createTableQuery('companies')
.select('id, name, slug, company_type')
.in('id', uncachedIds);
data = companiesResult.data;
error = companiesResult.error;
break;
default:
logger.error(`Unknown entity type: ${type}`);
return [];
}
if (error) {
logger.error(`Error fetching ${type}:`, error);