
-- Add missing columns to violations table for full violation management
ALTER TABLE public.violations ADD COLUMN IF NOT EXISTS stage text;
ALTER TABLE public.violations ADD COLUMN IF NOT EXISTS photo_url text;
ALTER TABLE public.violations ADD COLUMN IF NOT EXISTS photo_urls jsonb;
ALTER TABLE public.violations ADD COLUMN IF NOT EXISTS notice_level text;
ALTER TABLE public.violations ADD COLUMN IF NOT EXISTS notice_history jsonb;
ALTER TABLE public.violations ADD COLUMN IF NOT EXISTS timeline_entries jsonb;
ALTER TABLE public.violations ADD COLUMN IF NOT EXISTS assigned_to uuid;

-- Add missing columns to violation_types table
ALTER TABLE public.violation_types ADD COLUMN IF NOT EXISTS article_section text;
ALTER TABLE public.violation_types ADD COLUMN IF NOT EXISTS citation text;
ALTER TABLE public.violation_types ADD COLUMN IF NOT EXISTS requested_action text;

-- Create violation-photos storage bucket
INSERT INTO storage.buckets (id, name, public) VALUES ('violation-photos', 'violation-photos', true)
ON CONFLICT (id) DO NOTHING;

-- Allow authenticated users to upload to violation-photos
CREATE POLICY "Authenticated users can upload violation photos" ON storage.objects
FOR INSERT TO authenticated WITH CHECK (bucket_id = 'violation-photos');

-- Allow public read access to violation photos
CREATE POLICY "Public read access for violation photos" ON storage.objects
FOR SELECT TO public USING (bucket_id = 'violation-photos');

-- Allow authenticated users to delete their violation photos
CREATE POLICY "Authenticated users can delete violation photos" ON storage.objects
FOR DELETE TO authenticated USING (bucket_id = 'violation-photos');
