Add ACMCC app source, Supabase backend, and project config

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-01 20:19:26 -04:00
parent 313b51b412
commit 183fe0a93c
1422 changed files with 259271 additions and 0 deletions
@@ -0,0 +1,98 @@
DROP POLICY IF EXISTS "Homeowners can comment on own ARC apps" ON public.arc_application_comments;
CREATE POLICY "Homeowners and RV Boat Lot can comment on own ARC apps"
ON public.arc_application_comments
FOR INSERT
TO authenticated
WITH CHECK (
(public.has_role(auth.uid(), 'homeowner'::public.app_role) OR public.has_role(auth.uid(), 'rv_boat_lot'::public.app_role))
AND application_id IN (
SELECT a.id
FROM public.arc_applications a
JOIN public.owners o ON o.id = a.owner_id
WHERE o.user_id = auth.uid()
)
);
DROP POLICY IF EXISTS "Homeowners can submit ARC applications" ON public.arc_applications;
CREATE POLICY "Homeowners and RV Boat Lot can submit ARC applications"
ON public.arc_applications
FOR INSERT
TO authenticated
WITH CHECK (
(public.has_role(auth.uid(), 'homeowner'::public.app_role) OR public.has_role(auth.uid(), 'rv_boat_lot'::public.app_role))
AND association_id IN (
SELECT o.association_id
FROM public.owners o
WHERE o.user_id = auth.uid()
)
);
DROP POLICY IF EXISTS "Homeowners can update own pending ARC applications" ON public.arc_applications;
CREATE POLICY "Homeowners and RV Boat Lot can update own pending ARC applications"
ON public.arc_applications
FOR UPDATE
TO authenticated
USING (
(public.has_role(auth.uid(), 'homeowner'::public.app_role) OR public.has_role(auth.uid(), 'rv_boat_lot'::public.app_role))
AND owner_id IN (
SELECT o.id
FROM public.owners o
WHERE o.user_id = auth.uid()
)
AND status = ANY (ARRAY['pending'::text, 'draft'::text])
);
DROP POLICY IF EXISTS "Homeowners can view own ARC applications" ON public.arc_applications;
CREATE POLICY "Homeowners and RV Boat Lot can view own ARC applications"
ON public.arc_applications
FOR SELECT
TO authenticated
USING (
(public.has_role(auth.uid(), 'homeowner'::public.app_role) OR public.has_role(auth.uid(), 'rv_boat_lot'::public.app_role))
AND owner_id IN (
SELECT o.id
FROM public.owners o
WHERE o.user_id = auth.uid()
)
);
DROP POLICY IF EXISTS "Homeowners can view shared association documents" ON public.documents;
CREATE POLICY "Homeowners and RV Boat Lot can view shared association documents"
ON public.documents
FOR SELECT
TO authenticated
USING (
(public.has_role(auth.uid(), 'homeowner'::public.app_role) OR public.has_role(auth.uid(), 'rv_boat_lot'::public.app_role))
AND association_id IN (
SELECT o.association_id
FROM public.owners o
WHERE o.user_id = auth.uid()
)
AND (is_public = true OR visibility @> ARRAY['homeowner'::text] OR visibility @> ARRAY['public'::text])
);
DROP POLICY IF EXISTS "Users can view files shared with their role or association" ON public.shared_drive_files;
CREATE POLICY "Users can view files shared with their role or association"
ON public.shared_drive_files
FOR SELECT
TO authenticated
USING (
public.has_role(auth.uid(), 'admin'::public.app_role)
OR public.has_role(auth.uid(), 'manager'::public.app_role)
OR (
'board_member'::text = ANY (visibility)
AND EXISTS (
SELECT 1 FROM public.board_members bm
WHERE bm.user_id = auth.uid()
AND bm.association_id = ANY (shared_drive_files.association_ids)
)
)
OR (
('homeowner'::text = ANY (visibility) OR 'rv_boat_lot'::text = ANY (visibility))
AND EXISTS (
SELECT 1 FROM public.owners o
WHERE o.user_id = auth.uid()
AND o.association_id = ANY (shared_drive_files.association_ids)
)
)
);