mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-21 19:11:12 -05:00
Refactor: Approve tool use
This commit is contained in:
@@ -136,10 +136,13 @@ export async function detectChanges(
|
||||
const itemData = item.item_data || {};
|
||||
const originalData = item.original_data || {};
|
||||
|
||||
// Determine action type
|
||||
const action: 'create' | 'edit' | 'delete' =
|
||||
!originalData || Object.keys(originalData).length === 0 ? 'create' :
|
||||
itemData.deleted ? 'delete' : 'edit';
|
||||
// Determine action type - special handling for photo_delete
|
||||
let action: 'create' | 'edit' | 'delete' = 'edit';
|
||||
if (item.item_type === 'photo_delete' || itemData.action === 'delete' || itemData.deleted) {
|
||||
action = 'delete';
|
||||
} else if (!originalData || Object.keys(originalData).length === 0) {
|
||||
action = 'create';
|
||||
}
|
||||
|
||||
const fieldChanges: FieldChange[] = [];
|
||||
const imageChanges: ImageChange[] = [];
|
||||
@@ -269,22 +272,32 @@ export async function detectChanges(
|
||||
const entityId = itemData.entity_id;
|
||||
|
||||
if (entityType === 'park') {
|
||||
const { data } = await supabase.from('parks').select('name').eq('id', entityId).single();
|
||||
const { data } = await supabase.from('parks').select('name').eq('id', entityId).maybeSingle();
|
||||
if (data?.name) entityName = `${data.name} (${formatEntityType(entityType)})`;
|
||||
} else if (entityType === 'ride') {
|
||||
const { data } = await supabase.from('rides').select('name').eq('id', entityId).single();
|
||||
const { data } = await supabase.from('rides').select('name').eq('id', entityId).maybeSingle();
|
||||
if (data?.name) entityName = `${data.name} (${formatEntityType(entityType)})`;
|
||||
} else if (entityType === 'ride_model') {
|
||||
const { data } = await supabase.from('ride_models').select('name').eq('id', entityId).single();
|
||||
const { data } = await supabase.from('ride_models').select('name').eq('id', entityId).maybeSingle();
|
||||
if (data?.name) entityName = `${data.name} (${formatEntityType(entityType)})`;
|
||||
} else if (['manufacturer', 'operator', 'designer', 'property_owner'].includes(entityType)) {
|
||||
const { data } = await supabase.from('companies').select('name').eq('id', entityId).single();
|
||||
const { data } = await supabase.from('companies').select('name').eq('id', entityId).maybeSingle();
|
||||
if (data?.name) entityName = `${data.name} (${formatEntityType(entityType)})`;
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('Error fetching entity name:', err);
|
||||
console.error('Error fetching entity name for photo operation:', err);
|
||||
}
|
||||
}
|
||||
|
||||
// Add debugging warning if critical data is missing
|
||||
if (!itemData.entity_name && item.item_type === 'photo_delete') {
|
||||
console.warn(`[Photo Delete] Missing entity_name for photo_delete item`, {
|
||||
item_type: item.item_type,
|
||||
has_entity_type: !!itemData.entity_type,
|
||||
has_entity_id: !!itemData.entity_id,
|
||||
has_cloudflare_url: !!itemData.cloudflare_image_url
|
||||
});
|
||||
}
|
||||
} else {
|
||||
// For regular entities, use name field
|
||||
entityName = itemData.name || originalData?.name || 'Unknown';
|
||||
|
||||
Reference in New Issue
Block a user