Files
parakasa/supabase_schema_additions.sql

59 lines
1.7 KiB
SQL

-- Create profiles table
create table if not exists profiles (
id uuid references auth.users on delete cascade primary key,
role text not null default 'user' check (role in ('admin', 'user')),
full_name text,
created_at timestamp with time zone default timezone('utc'::text, now()) not null
);
-- Enable RLS for profiles
alter table profiles enable row level security;
-- Policies for profiles
create policy "Public profiles are viewable by everyone."
on profiles for select
using ( true );
create policy "Users can insert their own profile."
on profiles for insert
with check ( auth.uid() = id );
create policy "Users can update own profile."
on profiles for update
using ( auth.uid() = id );
-- Create site_settings table
create table if not exists site_settings (
id bigint primary key generated always as identity,
site_title text not null default 'ParaKasa',
site_description text,
contact_email text,
contact_phone text,
logo_url text,
currency text default 'TRY',
updated_at timestamp with time zone default timezone('utc'::text, now()) not null
);
-- Enable RLS for site_settings
alter table site_settings enable row level security;
-- Policies for site_settings
create policy "Site settings are viewable by everyone."
on site_settings for select
using ( true );
create policy "Only admins can update site settings."
on site_settings for update
using (
exists (
select 1 from profiles
where profiles.id = auth.uid() and profiles.role = 'admin'
)
);
-- Initialize default site settings if empty
insert into site_settings (site_title, contact_email)
select 'ParaKasa', 'info@parakasa.com'
where not exists (select 1 from site_settings);