2026-04-16 10:46:57 +02:00

28 lines
1.0 KiB
SQL

-- 0002_todos.sql — Phase 2
set search_path to ordinarthur_os, public;
create table if not exists ordinarthur_os.todos (
id uuid primary key default gen_random_uuid(),
title text not null,
description text,
status text not null default 'inbox'
check (status in ('inbox', 'todo', 'doing', 'done', 'archived')),
priority smallint check (priority between 0 and 3),
due_at timestamptz,
tags text[] not null default '{}',
project_id uuid,
checklist jsonb not null default '[]'::jsonb,
energy text check (energy in ('low', 'med', 'high')),
context text,
recurrence text,
ticket_url text,
verification_steps text[] not null default '{}',
ai_enriched boolean not null default false,
created_at timestamptz not null default now(),
completed_at timestamptz
);
create index if not exists todos_status_idx on ordinarthur_os.todos(status);
create index if not exists todos_due_at_idx on ordinarthur_os.todos(due_at);
create index if not exists todos_tags_gin on ordinarthur_os.todos using gin (tags);