first commit
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
create table if not exists public.wg_gallery_photos (
|
||||
id uuid primary key default gen_random_uuid(),
|
||||
unsplash_id text not null unique,
|
||||
slug text,
|
||||
description text,
|
||||
alt_description text,
|
||||
width integer,
|
||||
height integer,
|
||||
color text,
|
||||
blur_hash text,
|
||||
likes integer,
|
||||
photo_created_at timestamptz,
|
||||
photo_updated_at timestamptz,
|
||||
urls jsonb not null default '{}'::jsonb,
|
||||
links jsonb not null default '{}'::jsonb,
|
||||
user_info jsonb not null default '{}'::jsonb,
|
||||
raw jsonb not null,
|
||||
source text not null default 'unsplash-wallpapers',
|
||||
created_at timestamptz not null default now(),
|
||||
updated_at timestamptz not null default now()
|
||||
);
|
||||
|
||||
create table if not exists public.wg_gallery_sync_state (
|
||||
source text primary key,
|
||||
next_page integer not null default 1,
|
||||
per_page integer not null default 20,
|
||||
last_synced_at timestamptz,
|
||||
last_inserted_count integer not null default 0,
|
||||
last_seen_count integer not null default 0,
|
||||
last_error text,
|
||||
updated_at timestamptz not null default now()
|
||||
);
|
||||
|
||||
create index if not exists wg_gallery_photos_source_created_at_idx
|
||||
on public.wg_gallery_photos (source, created_at desc);
|
||||
|
||||
create index if not exists wg_gallery_photos_photo_created_at_idx
|
||||
on public.wg_gallery_photos (photo_created_at desc);
|
||||
|
||||
alter table public.wg_gallery_photos enable row level security;
|
||||
alter table public.wg_gallery_sync_state enable row level security;
|
||||
|
||||
drop policy if exists "Public can read gallery photos" on public.wg_gallery_photos;
|
||||
create policy "Public can read gallery photos"
|
||||
on public.wg_gallery_photos
|
||||
for select
|
||||
to anon, authenticated
|
||||
using (true);
|
||||
|
||||
drop trigger if exists set_wg_gallery_photos_updated_at on public.wg_gallery_photos;
|
||||
drop trigger if exists set_wg_gallery_sync_state_updated_at on public.wg_gallery_sync_state;
|
||||
drop function if exists public.set_wg_updated_at();
|
||||
|
||||
create function public.set_wg_updated_at()
|
||||
returns trigger
|
||||
language plpgsql
|
||||
set search_path = public
|
||||
as $$
|
||||
begin
|
||||
new.updated_at = now();
|
||||
return new;
|
||||
end;
|
||||
$$;
|
||||
|
||||
create trigger set_wg_gallery_photos_updated_at
|
||||
before update on public.wg_gallery_photos
|
||||
for each row
|
||||
execute function public.set_wg_updated_at();
|
||||
|
||||
create trigger set_wg_gallery_sync_state_updated_at
|
||||
before update on public.wg_gallery_sync_state
|
||||
for each row
|
||||
execute function public.set_wg_updated_at();
|
||||
Reference in New Issue
Block a user