3298efe54b
Co-authored-by: Copilot <copilot@github.com>
33 lines
1.1 KiB
SQL
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';
|