| 1 | -- The plan (items/plan.rs, g1t_contracts::work::plan): where each open work |
| 2 | -- item stands (horizon: triage, now, next, later or set_aside; NULL is read |
| 3 | -- as triage, so code from before this reads and writes rows as it did), its |
| 4 | -- place there (rank, a fractional key compared as text), how much the work |
| 5 | -- is worth (appetite: small, medium or large; budget_usd), whether it is a |
| 6 | -- fire (urgent, first in Now until it closes), and when it was last moved |
| 7 | -- (planned_at). |
| 8 | ALTER TABLE work_items ADD COLUMN horizon TEXT; |
| 9 | ALTER TABLE work_items ADD COLUMN rank TEXT; |
| 10 | ALTER TABLE work_items ADD COLUMN appetite TEXT; |
| 11 | ALTER TABLE work_items ADD COLUMN budget_usd REAL; |
| 12 | ALTER TABLE work_items ADD COLUMN urgent INTEGER NOT NULL DEFAULT 0; |
| 13 | ALTER TABLE work_items ADD COLUMN planned_at TEXT; |
| 14 | |
| 15 | CREATE INDEX work_items_plan ON work_items (workspace, state, horizon, rank); |
| 16 | |
| 17 | -- What a workspace's plan is set to: how many work items Now holds before |
| 18 | -- the plan says it is over (g1t_contracts::work::DEFAULT_NOW_CAP when it |
| 19 | -- has no row). |
| 20 | CREATE TABLE plan_settings ( |
| 21 | workspace TEXT PRIMARY KEY, |
| 22 | now_cap INTEGER NOT NULL, |
| 23 | updated_at TEXT NOT NULL, |
| 24 | updated_by TEXT |
| 25 | ); |