Files
acmcc/supabase/migrations/20260327173629_225b796b-13d4-440d-81a9-9611ad7c4750.sql
2026-06-01 20:19:26 -04:00

35 lines
1.1 KiB
SQL

-- Add unit_id to payment_plans
ALTER TABLE public.payment_plans ADD COLUMN IF NOT EXISTS unit_id UUID REFERENCES public.units(id);
-- Create installments table to track individual payments
CREATE TABLE public.payment_plan_installments (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
payment_plan_id UUID NOT NULL REFERENCES public.payment_plans(id) ON DELETE CASCADE,
installment_number INT NOT NULL,
due_date DATE NOT NULL,
amount_due NUMERIC NOT NULL DEFAULT 0,
amount_paid NUMERIC NOT NULL DEFAULT 0,
paid_date DATE,
status TEXT NOT NULL DEFAULT 'pending',
notes TEXT,
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
ALTER TABLE public.payment_plan_installments ENABLE ROW LEVEL SECURITY;
CREATE POLICY "Staff can manage installments"
ON public.payment_plan_installments
FOR ALL TO authenticated
USING (
has_role(auth.uid(), 'admin'::app_role) OR
has_role(auth.uid(), 'manager'::app_role) OR
has_role(auth.uid(), 'employee'::app_role)
)
WITH CHECK (
has_role(auth.uid(), 'admin'::app_role) OR
has_role(auth.uid(), 'manager'::app_role) OR
has_role(auth.uid(), 'employee'::app_role)
);