mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-21 09:51:13 -05:00
feat: Execute complete production readiness plan
This commit is contained in:
@@ -5,6 +5,8 @@ import { uploadPendingImages } from './imageUploadHelper';
|
||||
import type { ProcessedImage } from './supabaseHelpers';
|
||||
import { extractChangedFields } from './submissionChangeDetection';
|
||||
import type { CompanyDatabaseRecord, TimelineEventDatabaseRecord } from '@/types/company-data';
|
||||
import { logger } from './logger';
|
||||
import { getErrorMessage } from './errorHandler';
|
||||
|
||||
/**
|
||||
* ═══════════════════════════════════════════════════════════════════
|
||||
@@ -186,9 +188,13 @@ export async function submitParkCreation(
|
||||
...data.images,
|
||||
uploaded: uploadedImages
|
||||
};
|
||||
} catch (error) {
|
||||
console.error('Failed to upload images for park creation:', error);
|
||||
throw new Error('Failed to upload images. Please check your connection and try again.');
|
||||
} catch (error: unknown) {
|
||||
const errorMessage = getErrorMessage(error);
|
||||
logger.error('Park image upload failed', {
|
||||
action: 'park_creation',
|
||||
error: errorMessage
|
||||
});
|
||||
throw new Error(`Failed to upload images: ${errorMessage}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -272,9 +278,14 @@ export async function submitParkUpdate(
|
||||
...data.images,
|
||||
uploaded: uploadedImages
|
||||
};
|
||||
} catch (error) {
|
||||
console.error('Failed to upload images for park update:', error);
|
||||
throw new Error('Failed to upload images. Please check your connection and try again.');
|
||||
} catch (error: unknown) {
|
||||
const errorMessage = getErrorMessage(error);
|
||||
logger.error('Park image upload failed', {
|
||||
action: 'park_update',
|
||||
parkId,
|
||||
error: errorMessage
|
||||
});
|
||||
throw new Error(`Failed to upload images: ${errorMessage}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -349,9 +360,13 @@ export async function submitRideCreation(
|
||||
...data.images,
|
||||
uploaded: uploadedImages
|
||||
};
|
||||
} catch (error) {
|
||||
console.error('Failed to upload images for ride creation:', error);
|
||||
throw new Error('Failed to upload images. Please check your connection and try again.');
|
||||
} catch (error: unknown) {
|
||||
const errorMessage = getErrorMessage(error);
|
||||
logger.error('Ride image upload failed', {
|
||||
action: 'ride_creation',
|
||||
error: errorMessage
|
||||
});
|
||||
throw new Error(`Failed to upload images: ${errorMessage}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -435,9 +450,14 @@ export async function submitRideUpdate(
|
||||
...data.images,
|
||||
uploaded: uploadedImages
|
||||
};
|
||||
} catch (error) {
|
||||
console.error('Failed to upload images for ride update:', error);
|
||||
throw new Error('Failed to upload images. Please check your connection and try again.');
|
||||
} catch (error: unknown) {
|
||||
const errorMessage = getErrorMessage(error);
|
||||
logger.error('Ride image upload failed', {
|
||||
action: 'ride_update',
|
||||
rideId,
|
||||
error: errorMessage
|
||||
});
|
||||
throw new Error(`Failed to upload images: ${errorMessage}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -509,9 +529,13 @@ export async function submitRideModelCreation(
|
||||
...data.images,
|
||||
uploaded: uploadedImages
|
||||
};
|
||||
} catch (error) {
|
||||
console.error('Failed to upload images for ride model creation:', error);
|
||||
throw new Error('Failed to upload images. Please check your connection and try again.');
|
||||
} catch (error: unknown) {
|
||||
const errorMessage = getErrorMessage(error);
|
||||
logger.error('Ride model image upload failed', {
|
||||
action: 'ride_model_creation',
|
||||
error: errorMessage
|
||||
});
|
||||
throw new Error(`Failed to upload images: ${errorMessage}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -581,9 +605,14 @@ export async function submitRideModelUpdate(
|
||||
...data.images,
|
||||
uploaded: uploadedImages
|
||||
};
|
||||
} catch (error) {
|
||||
console.error('Failed to upload images for ride model update:', error);
|
||||
throw new Error('Failed to upload images. Please check your connection and try again.');
|
||||
} catch (error: unknown) {
|
||||
const errorMessage = getErrorMessage(error);
|
||||
logger.error('Ride model image upload failed', {
|
||||
action: 'ride_model_update',
|
||||
rideModelId,
|
||||
error: errorMessage
|
||||
});
|
||||
throw new Error(`Failed to upload images: ${errorMessage}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -640,9 +669,13 @@ export async function submitManufacturerCreation(
|
||||
try {
|
||||
const uploadedImages = await uploadPendingImages(data.images.uploaded);
|
||||
processedImages = { ...data.images, uploaded: uploadedImages };
|
||||
} catch (error) {
|
||||
console.error('Failed to upload images:', error);
|
||||
throw new Error('Failed to upload images. Please check your connection and try again.');
|
||||
} catch (error: unknown) {
|
||||
const errorMessage = getErrorMessage(error);
|
||||
logger.error('Company image upload failed', {
|
||||
action: 'manufacturer_creation',
|
||||
error: errorMessage
|
||||
});
|
||||
throw new Error(`Failed to upload images: ${errorMessage}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -698,9 +731,14 @@ export async function submitManufacturerUpdate(
|
||||
try {
|
||||
const uploadedImages = await uploadPendingImages(data.images.uploaded);
|
||||
processedImages = { ...data.images, uploaded: uploadedImages };
|
||||
} catch (error) {
|
||||
console.error('Failed to upload images:', error);
|
||||
throw new Error('Failed to upload images. Please check your connection and try again.');
|
||||
} catch (error: unknown) {
|
||||
const errorMessage = getErrorMessage(error);
|
||||
logger.error('Company image upload failed', {
|
||||
action: 'manufacturer_update',
|
||||
companyId,
|
||||
error: errorMessage
|
||||
});
|
||||
throw new Error(`Failed to upload images: ${errorMessage}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -748,9 +786,13 @@ export async function submitDesignerCreation(
|
||||
try {
|
||||
const uploadedImages = await uploadPendingImages(data.images.uploaded);
|
||||
processedImages = { ...data.images, uploaded: uploadedImages };
|
||||
} catch (error) {
|
||||
console.error('Failed to upload images:', error);
|
||||
throw new Error('Failed to upload images. Please check your connection and try again.');
|
||||
} catch (error: unknown) {
|
||||
const errorMessage = getErrorMessage(error);
|
||||
logger.error('Company image upload failed', {
|
||||
action: 'designer_creation',
|
||||
error: errorMessage
|
||||
});
|
||||
throw new Error(`Failed to upload images: ${errorMessage}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -806,9 +848,14 @@ export async function submitDesignerUpdate(
|
||||
try {
|
||||
const uploadedImages = await uploadPendingImages(data.images.uploaded);
|
||||
processedImages = { ...data.images, uploaded: uploadedImages };
|
||||
} catch (error) {
|
||||
console.error('Failed to upload images:', error);
|
||||
throw new Error('Failed to upload images. Please check your connection and try again.');
|
||||
} catch (error: unknown) {
|
||||
const errorMessage = getErrorMessage(error);
|
||||
logger.error('Company image upload failed', {
|
||||
action: 'designer_update',
|
||||
companyId,
|
||||
error: errorMessage
|
||||
});
|
||||
throw new Error(`Failed to upload images: ${errorMessage}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -856,9 +903,13 @@ export async function submitOperatorCreation(
|
||||
try {
|
||||
const uploadedImages = await uploadPendingImages(data.images.uploaded);
|
||||
processedImages = { ...data.images, uploaded: uploadedImages };
|
||||
} catch (error) {
|
||||
console.error('Failed to upload images:', error);
|
||||
throw new Error('Failed to upload images. Please check your connection and try again.');
|
||||
} catch (error: unknown) {
|
||||
const errorMessage = getErrorMessage(error);
|
||||
logger.error('Company image upload failed', {
|
||||
action: 'operator_creation',
|
||||
error: errorMessage
|
||||
});
|
||||
throw new Error(`Failed to upload images: ${errorMessage}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -914,9 +965,14 @@ export async function submitOperatorUpdate(
|
||||
try {
|
||||
const uploadedImages = await uploadPendingImages(data.images.uploaded);
|
||||
processedImages = { ...data.images, uploaded: uploadedImages };
|
||||
} catch (error) {
|
||||
console.error('Failed to upload images:', error);
|
||||
throw new Error('Failed to upload images. Please check your connection and try again.');
|
||||
} catch (error: unknown) {
|
||||
const errorMessage = getErrorMessage(error);
|
||||
logger.error('Company image upload failed', {
|
||||
action: 'operator_update',
|
||||
companyId,
|
||||
error: errorMessage
|
||||
});
|
||||
throw new Error(`Failed to upload images: ${errorMessage}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -964,9 +1020,13 @@ export async function submitPropertyOwnerCreation(
|
||||
try {
|
||||
const uploadedImages = await uploadPendingImages(data.images.uploaded);
|
||||
processedImages = { ...data.images, uploaded: uploadedImages };
|
||||
} catch (error) {
|
||||
console.error('Failed to upload images:', error);
|
||||
throw new Error('Failed to upload images. Please check your connection and try again.');
|
||||
} catch (error: unknown) {
|
||||
const errorMessage = getErrorMessage(error);
|
||||
logger.error('Company image upload failed', {
|
||||
action: 'property_owner_creation',
|
||||
error: errorMessage
|
||||
});
|
||||
throw new Error(`Failed to upload images: ${errorMessage}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1022,9 +1082,14 @@ export async function submitPropertyOwnerUpdate(
|
||||
try {
|
||||
const uploadedImages = await uploadPendingImages(data.images.uploaded);
|
||||
processedImages = { ...data.images, uploaded: uploadedImages };
|
||||
} catch (error) {
|
||||
console.error('Failed to upload images:', error);
|
||||
throw new Error('Failed to upload images. Please check your connection and try again.');
|
||||
} catch (error: unknown) {
|
||||
const errorMessage = getErrorMessage(error);
|
||||
logger.error('Company image upload failed', {
|
||||
action: 'property_owner_update',
|
||||
companyId,
|
||||
error: errorMessage
|
||||
});
|
||||
throw new Error(`Failed to upload images: ${errorMessage}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1133,7 +1198,12 @@ export async function submitTimelineEvent(
|
||||
});
|
||||
|
||||
if (error || !submissionId) {
|
||||
console.error('Failed to create timeline event submission:', error);
|
||||
const errorMessage = getErrorMessage(error);
|
||||
logger.error('Timeline event submission failed', {
|
||||
action: 'create_timeline_event',
|
||||
userId,
|
||||
error: errorMessage
|
||||
});
|
||||
throw new Error('Failed to submit timeline event for review');
|
||||
}
|
||||
|
||||
@@ -1205,7 +1275,12 @@ export async function submitTimelineEventUpdate(
|
||||
);
|
||||
|
||||
if (rpcError || !result) {
|
||||
console.error('Failed to create timeline event update:', rpcError);
|
||||
const errorMessage = getErrorMessage(rpcError);
|
||||
logger.error('Timeline event update failed', {
|
||||
action: 'update_timeline_event',
|
||||
eventId,
|
||||
error: errorMessage
|
||||
});
|
||||
throw new Error('Failed to submit timeline event update');
|
||||
}
|
||||
|
||||
@@ -1233,7 +1308,12 @@ export async function deleteTimelineEvent(
|
||||
.single();
|
||||
|
||||
if (fetchError) {
|
||||
console.error('Error fetching timeline event:', fetchError);
|
||||
const errorMessage = getErrorMessage(fetchError);
|
||||
logger.error('Timeline event fetch failed', {
|
||||
action: 'delete_timeline_event',
|
||||
eventId,
|
||||
error: errorMessage
|
||||
});
|
||||
throw new Error('Timeline event not found');
|
||||
}
|
||||
|
||||
@@ -1257,9 +1337,18 @@ export async function deleteTimelineEvent(
|
||||
.eq('id', eventId);
|
||||
|
||||
if (deleteError) {
|
||||
console.error('Error deleting timeline event:', deleteError);
|
||||
const errorMessage = getErrorMessage(deleteError);
|
||||
logger.error('Timeline event deletion failed', {
|
||||
action: 'delete_timeline_event',
|
||||
eventId,
|
||||
error: errorMessage
|
||||
});
|
||||
throw new Error('Failed to delete timeline event');
|
||||
}
|
||||
|
||||
console.log('✅ Timeline event deleted:', eventId);
|
||||
logger.info('Timeline event deleted', {
|
||||
action: 'delete_timeline_event',
|
||||
eventId,
|
||||
userId
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user