Refactor: Implement multi-stage generation

This commit is contained in:
gpt-engineer-app[bot]
2025-10-10 18:07:54 +00:00
parent a7dec173df
commit 93e908aef7
2 changed files with 75 additions and 48 deletions

View File

@@ -78,36 +78,62 @@ export function TestDataGenerator() {
setResults(null);
try {
console.log('=== TEST DATA GENERATOR DEBUG ===');
console.log('Selected entity types:', selectedEntityTypes);
console.log('Preset:', preset);
console.log('Field density:', fieldDensity);
console.log('===================================');
const { data, error } = await supabase.functions.invoke('seed-test-data', {
body: {
preset,
fieldDensity,
entityTypes: selectedEntityTypes,
...options
}
});
const stages = ['companies', 'parks', 'rides', 'photos'] as const;
const allResults = {
operators: 0,
property_owners: 0,
manufacturers: 0,
designers: 0,
parks: 0,
rides: 0,
rideModels: 0,
photos: 0,
totalPhotoItems: 0,
conflicts: 0,
versionChains: 0
};
if (error) throw error;
for (let i = 0; i < stages.length; i++) {
const stage = stages[i];
toast({
title: `Stage ${i + 1}/${stages.length}`,
description: `Generating ${stage}...`,
});
setResults(data);
await loadStats();
const { data, error } = await supabase.functions.invoke('seed-test-data', {
body: {
preset,
fieldDensity,
entityTypes: selectedEntityTypes,
stage,
...options
}
});
if (error) throw error;
// Merge results
Object.keys(data.summary).forEach(key => {
if (allResults[key as keyof typeof allResults] !== undefined) {
allResults[key as keyof typeof allResults] += data.summary[key];
}
});
}
setResults({ summary: allResults });
toast({
title: 'Test Data Generated',
description: `Successfully created test data in ${data.time}s`
title: "Test data generated",
description: `Successfully completed all stages`,
});
await loadStats();
} catch (error) {
console.error('Generation error:', error);
toast({
title: 'Generation Failed',
description: error.message,
variant: 'destructive'
title: "Generation failed",
description: error.message || "Failed to generate test data",
variant: "destructive",
});
} finally {
setLoading(false);