Files

33 lines
1.1 KiB
SQL

-- 09-site-settings.sql
-- Site-wide settings (key-value). Used for configurable assets like hero image.
create table if not exists public.site_settings (
key text primary key,
value text not null default '',
updated_at timestamptz not null default now()
);
alter table public.site_settings enable row level security;
-- Anyone can read settings (public site needs hero image URL)
drop policy if exists "settings_public_read" on public.site_settings;
create policy "settings_public_read"
on public.site_settings for select
using (true);
-- Only authenticated admins can modify
drop policy if exists "settings_admin_all" on public.site_settings;
create policy "settings_admin_all"
on public.site_settings for all to authenticated
using (true) with check (true);
grant select on public.site_settings to anon, authenticated, service_role;
grant all on public.site_settings to authenticated, service_role;
-- Seed default hero image
insert into public.site_settings (key, value)
values ('hero_image_url', '/images/ferrari-main-car.png')
on conflict (key) do nothing;
notify pgrst, 'reload schema';