vistas de ciudadano, escalar animaciones de mascota, implementacion de chatbot para concientizacion, modificacion de datos de ciudadano, modificacion de vista principal
This commit is contained in:
@@ -137,6 +137,29 @@ CREATE POLICY "feedback_insert" ON public.feedback
|
||||
FOR INSERT WITH CHECK (auth.uid() = user_id);
|
||||
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 5b. Tabla public.incidents (reportes ciudadanos)
|
||||
-- ------------------------------------------------------------
|
||||
ALTER TABLE public.incidents ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
DROP POLICY IF EXISTS "incidents_select" ON public.incidents;
|
||||
CREATE POLICY "incidents_select" ON public.incidents
|
||||
FOR SELECT USING (
|
||||
auth.uid() = user_id
|
||||
OR (SELECT role FROM public.users WHERE id = auth.uid()) = 'admin'
|
||||
);
|
||||
|
||||
DROP POLICY IF EXISTS "incidents_insert" ON public.incidents;
|
||||
CREATE POLICY "incidents_insert" ON public.incidents
|
||||
FOR INSERT WITH CHECK (auth.uid() = user_id);
|
||||
|
||||
DROP POLICY IF EXISTS "incidents_update_admin" ON public.incidents;
|
||||
CREATE POLICY "incidents_update_admin" ON public.incidents
|
||||
FOR UPDATE USING (
|
||||
(SELECT role FROM public.users WHERE id = auth.uid()) = 'admin'
|
||||
);
|
||||
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 6. Índices útiles para rendimiento
|
||||
-- ------------------------------------------------------------
|
||||
|
||||
@@ -91,3 +91,22 @@ CREATE INDEX IF NOT EXISTS idx_route_positions_route ON public.route_positions(r
|
||||
CREATE INDEX IF NOT EXISTS idx_colonias_route ON public.colonias(route_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_drivers_user ON public.drivers(user_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_collection_route ON public.collection_events(route_id);
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 8. INCIDENTS (reportes de ciudadanos sobre unidades)
|
||||
-- ------------------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS public.incidents (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
user_id UUID NOT NULL REFERENCES public.users(id) ON DELETE CASCADE,
|
||||
unit_id INT REFERENCES public.units(id),
|
||||
category TEXT NOT NULL
|
||||
CHECK (category IN ('derrame','dano_propiedad','conducta','no_recoleccion','otro')),
|
||||
description TEXT NOT NULL,
|
||||
photo_url TEXT,
|
||||
status TEXT NOT NULL DEFAULT 'open'
|
||||
CHECK (status IN ('open','in_review','resolved')),
|
||||
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_incidents_user ON public.incidents(user_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_incidents_unit ON public.incidents(unit_id);
|
||||
|
||||
Reference in New Issue
Block a user