Refactor: Enforce submission queue for all edits

This commit is contained in:
gpt-engineer-app[bot]
2025-10-02 14:46:49 +00:00
parent 078026f641
commit 36603cdb80
3 changed files with 198 additions and 134 deletions

View File

@@ -125,75 +125,21 @@ export default function RideDetail() {
};
const handleEditSubmit = async (data: any) => {
if (!user || !ride) return;
try {
if (isModerator) {
// Moderators can edit directly
const { error } = await supabase
.from('rides')
.update({
name: data.name,
slug: data.slug,
description: data.description,
category: data.category,
ride_sub_type: data.ride_sub_type,
status: data.status,
opening_date: data.opening_date,
closing_date: data.closing_date,
height_requirement: data.height_requirement,
age_requirement: data.age_requirement,
capacity_per_hour: data.capacity_per_hour,
duration_seconds: data.duration_seconds,
max_speed_kmh: data.max_speed_kmh,
max_height_meters: data.max_height_meters,
length_meters: data.length_meters,
inversions: data.inversions,
coaster_type: data.coaster_type,
seating_type: data.seating_type,
intensity_level: data.intensity_level,
drop_height_meters: data.drop_height_meters,
max_g_force: data.max_g_force,
banner_image_url: data.banner_image_url,
banner_image_id: data.banner_image_id,
card_image_url: data.card_image_url,
card_image_id: data.card_image_id,
manufacturer_id: data.manufacturer_id,
ride_model_id: data.ride_model_id,
updated_at: new Date().toISOString()
})
.eq('id', ride?.id);
// Everyone goes through submission queue
const { submitRideUpdate } = await import('@/lib/entitySubmissionHelpers');
await submitRideUpdate(ride.id, data, user.id);
if (error) throw error;
toast({
title: "Edit Submitted",
description: isModerator
? "Your edit has been submitted. You can approve it in the moderation queue."
: "Your ride edit has been submitted for review."
});
toast({
title: "Ride Updated",
description: "The ride has been updated successfully."
});
setIsEditModalOpen(false);
fetchRideData(); // Refresh the ride data
} else {
// Regular users submit for moderation
const { error } = await supabase
.from('content_submissions')
.insert({
user_id: user?.id,
submission_type: 'ride_edit',
content: {
ride_id: ride?.id,
...data
},
status: 'pending'
});
if (error) throw error;
toast({
title: "Edit Submitted",
description: "Your edit has been submitted for review."
});
setIsEditModalOpen(false);
}
setIsEditModalOpen(false);
} catch (error: any) {
toast({
title: "Error",