-- Query Supabase untuk Tabel Ulasan (Reviews) Posyandu -- 0. Aktifkan Ekstensi UUID (Jika belum aktif) CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; -- 1. Buat Tabel posyandu_reviews CREATE TABLE IF NOT EXISTS posyandu_reviews ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), posyandu_id UUID REFERENCES detail_posyandu(id) ON DELETE CASCADE, user_id UUID REFERENCES akun_balita(id) ON DELETE CASCADE, rating INTEGER NOT NULL CHECK (rating >= 1 AND rating <= 5), comment TEXT NOT NULL, created_at TIMESTAMPTZ DEFAULT NOW() ); -- 2. Aktifkan Row Level Security (RLS) ALTER TABLE posyandu_reviews ENABLE ROW LEVEL SECURITY; -- 3. Kebijakan RLS (Policies) -- Kebijakan: Semua orang dapat melihat ulasan CREATE POLICY "Anyone can view reviews" ON posyandu_reviews FOR SELECT USING (true); -- Kebijakan: User terautentikasi dapat mengirim ulasan (untuk akun_balita) CREATE POLICY "Authenticated users can insert reviews" ON posyandu_reviews FOR INSERT TO authenticated WITH CHECK (auth.uid() = user_id); -- Kebijakan: User dapat menghapus ulasan mereka sendiri CREATE POLICY "Users can delete their own reviews" ON posyandu_reviews FOR DELETE TO authenticated USING (auth.uid() = user_id); -- 4. Indeks untuk Performa CREATE INDEX IF NOT EXISTS idx_posyandu_reviews_posyandu_id ON posyandu_reviews(posyandu_id); CREATE INDEX IF NOT EXISTS idx_posyandu_reviews_user_id ON posyandu_reviews(user_id);