-- ============================================================
-- Migration: post_images_storage
-- Timestamp: 20260321065000
-- Creates storage bucket for WordPress imported post images
-- ============================================================

-- 1. Create the storage bucket for post images
INSERT INTO storage.buckets (id, name, public, file_size_limit, allowed_mime_types)
VALUES (
  'post-images',
  'post-images',
  true,
  10485760, -- 10MB limit
  ARRAY['image/jpeg', 'image/jpg', 'image/png', 'image/gif', 'image/webp', 'image/svg+xml']
)
ON CONFLICT (id) DO NOTHING;

-- 2. RLS Policies for storage.objects (post-images bucket)

-- Public read access
DROP POLICY IF EXISTS "post_images_public_read" ON storage.objects;
CREATE POLICY "post_images_public_read"
ON storage.objects
FOR SELECT
TO public
USING (bucket_id = 'post-images');

-- Authenticated users can upload
DROP POLICY IF EXISTS "post_images_authenticated_insert" ON storage.objects;
CREATE POLICY "post_images_authenticated_insert"
ON storage.objects
FOR INSERT
TO authenticated
WITH CHECK (bucket_id = 'post-images');

-- Authenticated users can update
DROP POLICY IF EXISTS "post_images_authenticated_update" ON storage.objects;
CREATE POLICY "post_images_authenticated_update"
ON storage.objects
FOR UPDATE
TO authenticated
USING (bucket_id = 'post-images');

-- Authenticated users can delete
DROP POLICY IF EXISTS "post_images_authenticated_delete" ON storage.objects;
CREATE POLICY "post_images_authenticated_delete"
ON storage.objects
FOR DELETE
TO authenticated
USING (bucket_id = 'post-images');
