mirror of
https://github.com/renee-png/acmcc.git
synced 2026-06-21 09:50:01 +00:00
Add ACMCC app source, Supabase backend, and project config
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
|
||||
-- Create client_invoices table to track invoices generated from billable expenses and forms
|
||||
CREATE TABLE public.client_invoices (
|
||||
id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY,
|
||||
invoice_number TEXT NOT NULL,
|
||||
association_id UUID NOT NULL REFERENCES public.associations(id),
|
||||
amount NUMERIC NOT NULL DEFAULT 0,
|
||||
credits NUMERIC NOT NULL DEFAULT 0,
|
||||
total NUMERIC NOT NULL DEFAULT 0,
|
||||
status TEXT NOT NULL DEFAULT 'sent',
|
||||
issue_date DATE NOT NULL DEFAULT CURRENT_DATE,
|
||||
due_date DATE,
|
||||
paid_date DATE,
|
||||
source TEXT NOT NULL DEFAULT 'billable_expenses',
|
||||
notes TEXT,
|
||||
created_by UUID,
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
|
||||
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
-- Enable RLS
|
||||
ALTER TABLE public.client_invoices ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
-- Staff full access
|
||||
CREATE POLICY "Staff full access on client_invoices"
|
||||
ON public.client_invoices
|
||||
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));
|
||||
|
||||
-- Create client_invoice_items to store line items
|
||||
CREATE TABLE public.client_invoice_items (
|
||||
id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY,
|
||||
invoice_id UUID NOT NULL REFERENCES public.client_invoices(id) ON DELETE CASCADE,
|
||||
billable_expense_id UUID REFERENCES public.billable_expenses(id),
|
||||
description TEXT,
|
||||
category TEXT,
|
||||
date DATE,
|
||||
quantity NUMERIC NOT NULL DEFAULT 1,
|
||||
unit_price NUMERIC NOT NULL DEFAULT 0,
|
||||
amount NUMERIC NOT NULL DEFAULT 0,
|
||||
is_credit BOOLEAN NOT NULL DEFAULT false,
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
ALTER TABLE public.client_invoice_items ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
CREATE POLICY "Staff full access on client_invoice_items"
|
||||
ON public.client_invoice_items
|
||||
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));
|
||||
Reference in New Issue
Block a user