-- ClaudeDo Online Inbox — initial schema.
-- Mirrors the desktop's Idle task backlog. Idempotent.

create table if not exists lists (
  id         text primary key,            -- GUID supplied by the desktop, reused verbatim
  name       text not null,
  updated_at timestamptz not null default now()
);

create table if not exists tasks (
  id          text primary key,           -- GUID; shared id space (web + desktop)
  list_id     text not null references lists(id) on delete cascade,
  title       text not null,
  description text,
  source      text not null,              -- 'web' | 'desktop'
  consumed    boolean not null default false,  -- web->desktop handoff flag
  created_at  timestamptz not null default now(),
  updated_at  timestamptz not null default now()
);

create index if not exists idx_tasks_list_id on tasks(list_id);
create index if not exists idx_tasks_unconsumed on tasks(consumed) where consumed = false;
