mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 08:51:13 -05:00
Implement database trigger for reviews
This commit is contained in:
@@ -0,0 +1,45 @@
|
|||||||
|
-- Function to automatically add ride credit when user reviews a ride
|
||||||
|
CREATE OR REPLACE FUNCTION auto_add_ride_credit_on_review()
|
||||||
|
RETURNS TRIGGER
|
||||||
|
LANGUAGE plpgsql
|
||||||
|
SECURITY DEFINER
|
||||||
|
SET search_path = public
|
||||||
|
AS $$
|
||||||
|
BEGIN
|
||||||
|
-- Only proceed if this is a ride review (not a park review)
|
||||||
|
IF NEW.ride_id IS NOT NULL THEN
|
||||||
|
-- Check if user already has this ride credit
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT 1 FROM public.user_ride_credits
|
||||||
|
WHERE user_id = NEW.user_id AND ride_id = NEW.ride_id
|
||||||
|
) THEN
|
||||||
|
-- Insert ride credit using visit_date from review if available
|
||||||
|
INSERT INTO public.user_ride_credits (
|
||||||
|
user_id,
|
||||||
|
ride_id,
|
||||||
|
first_ride_date,
|
||||||
|
ride_count
|
||||||
|
) VALUES (
|
||||||
|
NEW.user_id,
|
||||||
|
NEW.ride_id,
|
||||||
|
NEW.visit_date,
|
||||||
|
1
|
||||||
|
);
|
||||||
|
|
||||||
|
RAISE NOTICE 'Auto-added ride credit for user % on ride %', NEW.user_id, NEW.ride_id;
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
RETURN NEW;
|
||||||
|
END;
|
||||||
|
$$;
|
||||||
|
|
||||||
|
-- Trigger on review insert
|
||||||
|
CREATE TRIGGER auto_add_ride_credit_after_review
|
||||||
|
AFTER INSERT ON public.reviews
|
||||||
|
FOR EACH ROW
|
||||||
|
EXECUTE FUNCTION auto_add_ride_credit_on_review();
|
||||||
|
|
||||||
|
-- Add helpful comment
|
||||||
|
COMMENT ON FUNCTION auto_add_ride_credit_on_review() IS
|
||||||
|
'Automatically adds a ride credit when a user reviews a ride they haven''t tracked yet. Uses visit_date from review as first_ride_date.';
|
||||||
Reference in New Issue
Block a user