-- Buckets de stockage Supabase

-- Documents d'inscription prestataires (accès public pour affichage admin)
INSERT INTO storage.buckets (id, name, public, file_size_limit, allowed_mime_types)
VALUES (
  'prestataire-docs',
  'prestataire-docs',
  true,
  5242880,
  ARRAY['application/pdf','image/jpeg','image/jpg','image/png']
)
ON CONFLICT (id) DO NOTHING;

-- Documents KYC sensibles (casier judiciaire, livret de famille) — accès privé
INSERT INTO storage.buckets (id, name, public, file_size_limit, allowed_mime_types)
VALUES (
  'kyc-casier',
  'kyc-casier',
  false,
  5242880,
  ARRAY['application/pdf','image/jpeg','image/jpg','image/png']
)
ON CONFLICT (id) DO NOTHING;

-- Politique RLS : service_role peut tout faire sur prestataire-docs
DO $$
BEGIN
  IF NOT EXISTS (
    SELECT 1 FROM pg_policies
    WHERE schemaname = 'storage' AND tablename = 'objects'
    AND policyname = 'service_role full access prestataire-docs'
  ) THEN
    CREATE POLICY "service_role full access prestataire-docs"
      ON storage.objects FOR ALL
      TO service_role
      USING (bucket_id = 'prestataire-docs')
      WITH CHECK (bucket_id = 'prestataire-docs');
  END IF;
END $$;

-- Politique RLS : service_role peut tout faire sur kyc-casier
DO $$
BEGIN
  IF NOT EXISTS (
    SELECT 1 FROM pg_policies
    WHERE schemaname = 'storage' AND tablename = 'objects'
    AND policyname = 'service_role full access kyc-casier'
  ) THEN
    CREATE POLICY "service_role full access kyc-casier"
      ON storage.objects FOR ALL
      TO service_role
      USING (bucket_id = 'kyc-casier')
      WITH CHECK (bucket_id = 'kyc-casier');
  END IF;
END $$;

-- Lecture publique prestataire-docs (anon peut lire les fichiers publics)
DO $$
BEGIN
  IF NOT EXISTS (
    SELECT 1 FROM pg_policies
    WHERE schemaname = 'storage' AND tablename = 'objects'
    AND policyname = 'public read prestataire-docs'
  ) THEN
    CREATE POLICY "public read prestataire-docs"
      ON storage.objects FOR SELECT
      TO anon
      USING (bucket_id = 'prestataire-docs');
  END IF;
END $$;
