mirror of
https://github.com/renee-png/acmcc.git
synced 2026-06-21 09:50:01 +00:00
183fe0a93c
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
44 lines
1.5 KiB
SQL
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);
|