diff --git a/src/components/admin/SystemActivityLog.tsx b/src/components/admin/SystemActivityLog.tsx
index d2f059c8..96f235a8 100644
--- a/src/components/admin/SystemActivityLog.tsx
+++ b/src/components/admin/SystemActivityLog.tsx
@@ -514,10 +514,10 @@ export const SystemActivityLog = forwardRef
)}
- {isExpanded && details.review_text && (
+ {isExpanded && details.content && (
- "{details.review_text}"
+ "{details.content}"
)}
@@ -546,10 +546,10 @@ export const SystemActivityLog = forwardReffrom {details.entity_name}
)}
- {isExpanded && details.review_text && (
+ {isExpanded && details.content && (
- "{details.review_text}"
+ "{details.content}"
)}
diff --git a/src/integrations/supabase/types.ts b/src/integrations/supabase/types.ts
index d3ee5e0d..5011cbc6 100644
--- a/src/integrations/supabase/types.ts
+++ b/src/integrations/supabase/types.ts
@@ -1900,6 +1900,7 @@ export type Database = {
}
review_deletions: {
Row: {
+ content: string | null
created_at: string
deleted_at: string | null
deleted_by: string | null
@@ -1908,12 +1909,12 @@ export type Database = {
park_id: string | null
rating: number
review_id: string
- review_text: string | null
ride_id: string | null
user_id: string
was_moderated: boolean | null
}
Insert: {
+ content?: string | null
created_at: string
deleted_at?: string | null
deleted_by?: string | null
@@ -1922,12 +1923,12 @@ export type Database = {
park_id?: string | null
rating: number
review_id: string
- review_text?: string | null
ride_id?: string | null
user_id: string
was_moderated?: boolean | null
}
Update: {
+ content?: string | null
created_at?: string
deleted_at?: string | null
deleted_by?: string | null
@@ -1936,7 +1937,6 @@ export type Database = {
park_id?: string | null
rating?: number
review_id?: string
- review_text?: string | null
ride_id?: string | null
user_id?: string
was_moderated?: boolean | null
diff --git a/src/lib/systemActivityService.ts b/src/lib/systemActivityService.ts
index c58cdf3b..6e0d9b6a 100644
--- a/src/lib/systemActivityService.ts
+++ b/src/lib/systemActivityService.ts
@@ -94,7 +94,7 @@ export interface ReviewLifecycleDetails {
entity_id: string;
entity_name?: string;
rating?: number;
- review_text?: string;
+ content?: string;
deletion_reason?: string;
was_moderated?: boolean;
}
@@ -590,14 +590,14 @@ export async function fetchSystemActivities(
// Fetch review lifecycle events
// 1. Review creations (recent 7 days)
- const { data: newReviews, error: reviewsError } = await supabase
+ const { data: newReviews, error: newReviewsError } = await supabase
.from('reviews')
- .select('id, user_id, park_id, ride_id, rating, review_text, created_at')
+ .select('id, user_id, park_id, ride_id, rating, content, created_at')
.gte('created_at', sevenDaysAgo.toISOString())
.order('created_at', { ascending: false })
.limit(Math.ceil(limit / 2));
- if (!reviewsError && newReviews) {
+ if (!newReviewsError && newReviews) {
for (const review of newReviews) {
const entityType = review.park_id ? 'park' : 'ride';
const entityId = review.park_id || review.ride_id;
@@ -614,20 +614,20 @@ export async function fetchSystemActivities(
entity_type: entityType as 'park' | 'ride',
entity_id: entityId!,
rating: review.rating,
- review_text: review.review_text,
+ content: review.content,
} as ReviewLifecycleDetails,
});
}
}
// 2. Review deletions
- const { data: deletedReviews, error: deletionsError } = await supabase
+ const { data: deletedReviews, error: deletedReviewsError } = await supabase
.from('review_deletions')
- .select('id, review_id, user_id, park_id, ride_id, rating, review_text, deleted_by, deleted_at, deletion_reason, was_moderated')
+ .select('id, review_id, user_id, park_id, ride_id, rating, content, deleted_by, deleted_at, deletion_reason, was_moderated')
.order('deleted_at', { ascending: false })
.limit(limit);
- if (!deletionsError && deletedReviews) {
+ if (!deletedReviewsError && deletedReviews) {
for (const deletion of deletedReviews) {
const entityType = deletion.park_id ? 'park' : 'ride';
const entityId = deletion.park_id || deletion.ride_id;
@@ -644,7 +644,7 @@ export async function fetchSystemActivities(
entity_type: entityType as 'park' | 'ride',
entity_id: entityId!,
rating: deletion.rating,
- review_text: deletion.review_text || undefined,
+ content: deletion.content || undefined,
deletion_reason: deletion.deletion_reason || undefined,
was_moderated: deletion.was_moderated,
} as ReviewLifecycleDetails,
diff --git a/supabase/migrations/20251017202844_4fe235d4-2e37-453d-a153-80147da59906.sql b/supabase/migrations/20251017202844_4fe235d4-2e37-453d-a153-80147da59906.sql
new file mode 100644
index 00000000..173ad97f
--- /dev/null
+++ b/supabase/migrations/20251017202844_4fe235d4-2e37-453d-a153-80147da59906.sql
@@ -0,0 +1,43 @@
+-- Update review_deletions table to use correct column name
+ALTER TABLE public.review_deletions
+ RENAME COLUMN review_text TO content;
+
+-- Update the trigger function to use correct column name
+CREATE OR REPLACE FUNCTION public.log_review_deletion()
+RETURNS TRIGGER
+LANGUAGE plpgsql
+SECURITY DEFINER
+SET search_path = public
+AS $$
+BEGIN
+ -- Insert into review_deletions table
+ INSERT INTO public.review_deletions (
+ review_id,
+ user_id,
+ park_id,
+ ride_id,
+ rating,
+ content,
+ deleted_by,
+ deletion_reason,
+ was_moderated,
+ created_at
+ ) VALUES (
+ OLD.id,
+ OLD.user_id,
+ OLD.park_id,
+ OLD.ride_id,
+ OLD.rating,
+ OLD.content,
+ auth.uid(),
+ CASE
+ WHEN OLD.moderation_status = 'rejected' THEN 'Rejected by moderator'
+ ELSE 'Deleted by user or admin'
+ END,
+ OLD.moderation_status != 'approved',
+ OLD.created_at
+ );
+
+ RETURN OLD;
+END;
+$$;
\ No newline at end of file