Refactor: Approve tool use

This commit is contained in:
gpt-engineer-app[bot]
2025-10-06 18:24:20 +00:00
parent c2c70524f7
commit 63a7877314
4 changed files with 175 additions and 33 deletions

View File

@@ -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';