sum
This commit is contained in:
46
supabase/migrations/004_budgets.sql
Normal file
46
supabase/migrations/004_budgets.sql
Normal file
@@ -0,0 +1,46 @@
|
||||
-- Budgets table
|
||||
create table budgets (
|
||||
id uuid primary key default gen_random_uuid(),
|
||||
user_id uuid not null references auth.users(id) on delete cascade,
|
||||
start_date date not null,
|
||||
end_date date not null,
|
||||
currency text not null default 'EUR',
|
||||
carryover_amount numeric(12,2) not null default 0,
|
||||
created_at timestamptz not null default now(),
|
||||
updated_at timestamptz not null default now()
|
||||
);
|
||||
|
||||
create index budgets_user_id_idx on budgets(user_id);
|
||||
|
||||
alter table budgets enable row level security;
|
||||
|
||||
create policy "Users can CRUD own budgets"
|
||||
on budgets for all
|
||||
using (user_id = auth.uid())
|
||||
with check (user_id = auth.uid());
|
||||
|
||||
-- Budget items table
|
||||
create table budget_items (
|
||||
id uuid primary key default gen_random_uuid(),
|
||||
budget_id uuid not null references budgets(id) on delete cascade,
|
||||
category_id uuid not null references categories(id) on delete restrict,
|
||||
budgeted_amount numeric(12,2) not null default 0,
|
||||
actual_amount numeric(12,2) not null default 0,
|
||||
item_tier item_tier not null default 'fixed',
|
||||
notes text,
|
||||
created_at timestamptz not null default now(),
|
||||
updated_at timestamptz not null default now()
|
||||
);
|
||||
|
||||
create index budget_items_budget_id_idx on budget_items(budget_id);
|
||||
|
||||
alter table budget_items enable row level security;
|
||||
|
||||
create policy "Users can CRUD own budget items"
|
||||
on budget_items for all
|
||||
using (
|
||||
budget_id in (select id from budgets where user_id = auth.uid())
|
||||
)
|
||||
with check (
|
||||
budget_id in (select id from budgets where user_id = auth.uid())
|
||||
);
|
||||
Reference in New Issue
Block a user