29 lines
1.2 KiB
SQL
29 lines
1.2 KiB
SQL
create table if not exists public.user_recent_pages (
|
|||
|
|
id uuid primary key default gen_random_uuid(),
|
||
|
|
user_id uuid not null references public.profiles(id) on delete cascade,
|
||
|
|
workspace_id uuid not null references public.workspaces(id) on delete cascade,
|
||
|
|
document_id uuid not null references public.documents(id) on delete cascade,
|
||
|
|
last_accessed_at timestamptz not null default timezone('utc', now())
|
||
|
|
);
|
||
|
|
|
||
|
|
create unique index if not exists user_recent_pages_user_document_idx
|
||
|
|
on public.user_recent_pages (user_id, document_id);
|
||
|
|
|
||
|
|
create index if not exists user_recent_pages_workspace_idx
|
||
|
|
on public.user_recent_pages (workspace_id, last_accessed_at desc);
|
||
|
|
|
||
|
|
alter table public.user_recent_pages enable row level security;
|
||
|
|
|
||
|
|
drop policy if exists "Recent pages are visible to owner" on public.user_recent_pages;
|
||
|
|
create policy "Recent pages are visible to owner"
|
||
|
|
on public.user_recent_pages
|
||
|
|
for select
|
||
|
|
using (user_id = auth.uid());
|
||
|
|
|
||
|
|
drop policy if exists "Upsert recent pages for owner" on public.user_recent_pages;
|
||
|
|
create policy "Upsert recent pages for owner"
|
||
|
|
on public.user_recent_pages
|
||
|
|
for all
|
||
|
|
using (user_id = auth.uid())
|
||
|
|
with check (user_id = auth.uid());
|