20260204
This commit is contained in:
54
doc_mall/consumer/sql/add_reviews_tables.sql
Normal file
54
doc_mall/consumer/sql/add_reviews_tables.sql
Normal file
@@ -0,0 +1,54 @@
|
||||
-- Create Product Reviews Table
|
||||
CREATE TABLE IF NOT EXISTS public.ml_product_reviews (
|
||||
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
|
||||
user_id UUID NOT NULL REFERENCES auth.users(id),
|
||||
product_id UUID NOT NULL REFERENCES public.ml_products(id),
|
||||
order_id UUID NOT NULL REFERENCES public.ml_orders(id),
|
||||
order_item_id UUID, -- Optional: link to specific line item
|
||||
rating INTEGER CHECK (rating >= 1 AND rating <= 5),
|
||||
content TEXT,
|
||||
images JSONB DEFAULT '[]', -- Array of image URLs
|
||||
is_anonymous BOOLEAN DEFAULT false,
|
||||
reply TEXT, -- Merchant reply
|
||||
reply_time TIMESTAMPTZ,
|
||||
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- Create policies for product reviews
|
||||
ALTER TABLE public.ml_product_reviews ENABLE ROW LEVEL SAFETY;
|
||||
|
||||
CREATE POLICY "Users can create reviews for their own orders"
|
||||
ON public.ml_product_reviews FOR INSERT
|
||||
TO authenticated
|
||||
WITH CHECK (auth.uid() = user_id);
|
||||
|
||||
CREATE POLICY "Users can view all reviews"
|
||||
ON public.ml_product_reviews FOR SELECT
|
||||
TO authenticated, anon
|
||||
USING (true);
|
||||
|
||||
-- Create Shop Reviews Table (if needed, or merge)
|
||||
CREATE TABLE IF NOT EXISTS public.ml_shop_reviews (
|
||||
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
|
||||
user_id UUID NOT NULL REFERENCES auth.users(id),
|
||||
shop_id UUID NOT NULL REFERENCES public.ml_shops(id), -- Assuming ml_shops exists
|
||||
order_id UUID NOT NULL REFERENCES public.ml_orders(id),
|
||||
description_rating INTEGER CHECK (description_rating >= 1 AND description_rating <= 5),
|
||||
logistics_rating INTEGER CHECK (logistics_rating >= 1 AND logistics_rating <= 5),
|
||||
service_rating INTEGER CHECK (service_rating >= 1 AND service_rating <= 5),
|
||||
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- Create policies for shop reviews
|
||||
ALTER TABLE public.ml_shop_reviews ENABLE ROW LEVEL SAFETY;
|
||||
|
||||
CREATE POLICY "Users can create shop reviews"
|
||||
ON public.ml_shop_reviews FOR INSERT
|
||||
TO authenticated
|
||||
WITH CHECK (auth.uid() = user_id);
|
||||
|
||||
CREATE POLICY "Anyone can view shop reviews"
|
||||
ON public.ml_shop_reviews FOR SELECT
|
||||
TO authenticated, anon
|
||||
USING (true);
|
||||
Reference in New Issue
Block a user