mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-24 00:11:15 -05:00
Fix ride model technical specs
Implement plan to fix ride model technical specifications pipeline. This includes creating a new migration for the `ride_model_submission_technical_specifications` table, updating `entitySubmissionHelpers.ts` to handle insertion of technical specifications, and modifying the edge function `process-selective-approval/index.ts` to fetch these specifications. This ensures no data loss for ride model technical specifications.
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
-- Create submission table for ride model technical specifications
|
||||
-- This ensures technical specs flow through the submission pipeline without data loss
|
||||
|
||||
CREATE TABLE ride_model_submission_technical_specifications (
|
||||
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
|
||||
ride_model_submission_id UUID NOT NULL,
|
||||
spec_name TEXT NOT NULL,
|
||||
spec_value TEXT NOT NULL,
|
||||
spec_unit TEXT,
|
||||
category TEXT,
|
||||
display_order INTEGER DEFAULT 0,
|
||||
created_at TIMESTAMPTZ DEFAULT now(),
|
||||
|
||||
CONSTRAINT fk_ride_model_submission
|
||||
FOREIGN KEY (ride_model_submission_id)
|
||||
REFERENCES ride_model_submissions(id)
|
||||
ON DELETE CASCADE,
|
||||
|
||||
CONSTRAINT unique_ride_model_submission_spec
|
||||
UNIQUE(ride_model_submission_id, spec_name)
|
||||
);
|
||||
|
||||
CREATE INDEX idx_ride_model_submission_specs_submission
|
||||
ON ride_model_submission_technical_specifications(ride_model_submission_id);
|
||||
|
||||
-- Enable RLS
|
||||
ALTER TABLE ride_model_submission_technical_specifications ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
-- Moderators can view all submission specs
|
||||
CREATE POLICY "Moderators can view all ride model submission specs"
|
||||
ON ride_model_submission_technical_specifications
|
||||
FOR SELECT
|
||||
USING (
|
||||
is_moderator(auth.uid()) AND
|
||||
((NOT has_mfa_enabled(auth.uid())) OR has_aal2())
|
||||
);
|
||||
|
||||
-- Users can view their own submission specs
|
||||
CREATE POLICY "Users can view their own ride model submission specs"
|
||||
ON ride_model_submission_technical_specifications
|
||||
FOR SELECT
|
||||
USING (
|
||||
EXISTS (
|
||||
SELECT 1 FROM ride_model_submissions rms
|
||||
JOIN content_submissions cs ON cs.id = rms.submission_id
|
||||
WHERE rms.id = ride_model_submission_technical_specifications.ride_model_submission_id
|
||||
AND cs.user_id = auth.uid()
|
||||
)
|
||||
);
|
||||
|
||||
-- Users can insert their own submission specs
|
||||
CREATE POLICY "Users can insert their own ride model submission specs"
|
||||
ON ride_model_submission_technical_specifications
|
||||
FOR INSERT
|
||||
WITH CHECK (
|
||||
EXISTS (
|
||||
SELECT 1 FROM ride_model_submissions rms
|
||||
JOIN content_submissions cs ON cs.id = rms.submission_id
|
||||
WHERE rms.id = ride_model_submission_technical_specifications.ride_model_submission_id
|
||||
AND cs.user_id = auth.uid()
|
||||
)
|
||||
AND NOT is_user_banned(auth.uid())
|
||||
);
|
||||
|
||||
-- Moderators can update submission specs
|
||||
CREATE POLICY "Moderators can update ride model submission specs"
|
||||
ON ride_model_submission_technical_specifications
|
||||
FOR UPDATE
|
||||
USING (
|
||||
is_moderator(auth.uid()) AND
|
||||
((NOT has_mfa_enabled(auth.uid())) OR has_aal2())
|
||||
);
|
||||
|
||||
-- Moderators can delete submission specs
|
||||
CREATE POLICY "Moderators can delete ride model submission specs"
|
||||
ON ride_model_submission_technical_specifications
|
||||
FOR DELETE
|
||||
USING (
|
||||
is_moderator(auth.uid()) AND
|
||||
((NOT has_mfa_enabled(auth.uid())) OR has_aal2())
|
||||
);
|
||||
|
||||
COMMENT ON TABLE ride_model_submission_technical_specifications IS
|
||||
'Stores technical specifications for ride models during moderation - prevents data loss in submission pipeline';
|
||||
Reference in New Issue
Block a user