Files
acmcc/supabase/migrations/20260329013814_e7ebd1f1-f6ab-4edc-b7b2-a8acd69d5317.sql
T
2026-06-01 20:19:26 -04:00

44 lines
1.5 KiB
SQL

-- Expense categories table
CREATE TABLE public.expense_categories (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
name TEXT NOT NULL,
description TEXT,
color TEXT,
is_active BOOLEAN NOT NULL DEFAULT true,
sort_order INTEGER DEFAULT 0,
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
-- Expense subcategories table
CREATE TABLE public.expense_subcategories (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
category_id UUID REFERENCES public.expense_categories(id) ON DELETE CASCADE NOT NULL,
name TEXT NOT NULL,
description TEXT,
is_active BOOLEAN NOT NULL DEFAULT true,
sort_order INTEGER DEFAULT 0,
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
-- Enable RLS
ALTER TABLE public.expense_categories ENABLE ROW LEVEL SECURITY;
ALTER TABLE public.expense_subcategories ENABLE ROW LEVEL SECURITY;
-- RLS policies - authenticated users can manage
CREATE POLICY "Authenticated users can manage expense categories" ON public.expense_categories FOR ALL TO authenticated USING (true) WITH CHECK (true);
CREATE POLICY "Authenticated users can manage expense subcategories" ON public.expense_subcategories FOR ALL TO authenticated USING (true) WITH CHECK (true);
-- Seed default categories
INSERT INTO public.expense_categories (name, sort_order) VALUES
('Management', 1),
('Maintenance', 2),
('Labor', 3),
('Materials', 4),
('Service', 5),
('Expense', 6),
('Administrative', 7),
('Utilities', 8);