-- Unit Parking CREATE TABLE IF NOT EXISTS public.unit_parking ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), unit_id UUID NOT NULL REFERENCES public.units(id) ON DELETE CASCADE, spaces TEXT, spots TEXT, type TEXT, notes TEXT, created_at TIMESTAMPTZ NOT NULL DEFAULT now(), updated_at TIMESTAMPTZ NOT NULL DEFAULT now() ); ALTER TABLE public.unit_parking ENABLE ROW LEVEL SECURITY; CREATE POLICY "Staff full access on unit_parking" ON public.unit_parking FOR ALL TO authenticated USING (has_role(auth.uid(), 'admin'::app_role) OR has_role(auth.uid(), 'manager'::app_role)) WITH CHECK (has_role(auth.uid(), 'admin'::app_role) OR has_role(auth.uid(), 'manager'::app_role)); -- Unit Pets CREATE TABLE IF NOT EXISTS public.unit_pets ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), unit_id UUID NOT NULL REFERENCES public.units(id) ON DELETE CASCADE, name TEXT NOT NULL DEFAULT '', type TEXT DEFAULT '', breed TEXT DEFAULT '', weight TEXT DEFAULT '', notes TEXT DEFAULT '', created_at TIMESTAMPTZ NOT NULL DEFAULT now(), updated_at TIMESTAMPTZ NOT NULL DEFAULT now() ); ALTER TABLE public.unit_pets ENABLE ROW LEVEL SECURITY; CREATE POLICY "Staff full access on unit_pets" ON public.unit_pets FOR ALL TO authenticated USING (has_role(auth.uid(), 'admin'::app_role) OR has_role(auth.uid(), 'manager'::app_role)) WITH CHECK (has_role(auth.uid(), 'admin'::app_role) OR has_role(auth.uid(), 'manager'::app_role)); -- Unit General Info CREATE TABLE IF NOT EXISTS public.unit_general_info ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), unit_id UUID NOT NULL REFERENCES public.units(id) ON DELETE CASCADE, utilities TEXT DEFAULT '', amenities TEXT DEFAULT '', restrictions TEXT DEFAULT '', created_at TIMESTAMPTZ NOT NULL DEFAULT now(), updated_at TIMESTAMPTZ NOT NULL DEFAULT now() ); ALTER TABLE public.unit_general_info ENABLE ROW LEVEL SECURITY; CREATE POLICY "Staff full access on unit_general_info" ON public.unit_general_info FOR ALL TO authenticated USING (has_role(auth.uid(), 'admin'::app_role) OR has_role(auth.uid(), 'manager'::app_role)) WITH CHECK (has_role(auth.uid(), 'admin'::app_role) OR has_role(auth.uid(), 'manager'::app_role)); -- Unit Occupants CREATE TABLE IF NOT EXISTS public.unit_occupants ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), unit_id UUID NOT NULL REFERENCES public.units(id) ON DELETE CASCADE, name TEXT NOT NULL, relationship TEXT NOT NULL DEFAULT '', phone TEXT DEFAULT '', email TEXT DEFAULT '', created_at TIMESTAMPTZ NOT NULL DEFAULT now(), updated_at TIMESTAMPTZ NOT NULL DEFAULT now() ); ALTER TABLE public.unit_occupants ENABLE ROW LEVEL SECURITY; CREATE POLICY "Staff full access on unit_occupants" ON public.unit_occupants FOR ALL TO authenticated USING (has_role(auth.uid(), 'admin'::app_role) OR has_role(auth.uid(), 'manager'::app_role)) WITH CHECK (has_role(auth.uid(), 'admin'::app_role) OR has_role(auth.uid(), 'manager'::app_role));