Spaces:
Runtime error
Runtime error
| -- Create combined_datasets table | |
| CREATE TABLE IF NOT EXISTS public.combined_datasets ( | |
| id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), | |
| name TEXT NOT NULL, | |
| description TEXT, | |
| source_datasets TEXT[] NOT NULL, | |
| created_at TIMESTAMPTZ NOT NULL DEFAULT now(), | |
| updated_at TIMESTAMPTZ NOT NULL DEFAULT now(), | |
| created_by UUID REFERENCES auth.users(id), | |
| impact_level TEXT CHECK (impact_level = ANY (ARRAY['low', 'medium', 'high']::text[])), | |
| status TEXT NOT NULL DEFAULT 'processing', | |
| combination_strategy TEXT NOT NULL DEFAULT 'merge', | |
| size_bytes BIGINT, | |
| file_count INTEGER, | |
| downloads INTEGER, | |
| likes INTEGER | |
| ); | |
| -- Add indexes for faster querying | |
| CREATE INDEX IF NOT EXISTS idx_combined_datasets_created_by ON public.combined_datasets(created_by); | |
| CREATE INDEX IF NOT EXISTS idx_combined_datasets_impact_level ON public.combined_datasets(impact_level); | |
| CREATE INDEX IF NOT EXISTS idx_combined_datasets_status ON public.combined_datasets(status); | |
| -- Add Row Level Security (RLS) policies | |
| ALTER TABLE public.combined_datasets ENABLE ROW LEVEL SECURITY; | |
| -- Policy to allow users to see all combined datasets | |
| CREATE POLICY "Anyone can view combined datasets" | |
| ON public.combined_datasets | |
| FOR SELECT USING (true); | |
| -- Policy to allow users to create their own combined datasets | |
| CREATE POLICY "Users can create their own combined datasets" | |
| ON public.combined_datasets | |
| FOR INSERT | |
| WITH CHECK (auth.uid() = created_by); | |
| -- Policy to allow users to update only their own combined datasets | |
| CREATE POLICY "Users can update their own combined datasets" | |
| ON public.combined_datasets | |
| FOR UPDATE | |
| USING (auth.uid() = created_by); | |
| -- Function to automatically update updated_at timestamp | |
| CREATE OR REPLACE FUNCTION update_combined_datasets_updated_at() | |
| RETURNS TRIGGER AS $$ | |
| BEGIN | |
| NEW.updated_at = now(); | |
| RETURN NEW; | |
| END; | |
| $$ LANGUAGE plpgsql; | |
| -- Trigger to automatically update updated_at timestamp | |
| CREATE TRIGGER update_combined_datasets_updated_at_trigger | |
| BEFORE UPDATE ON public.combined_datasets | |
| FOR EACH ROW | |
| EXECUTE FUNCTION update_combined_datasets_updated_at(); |