CREATE TABLE flows ( id UUID NOT NULL PRIMARY KEY DEFAULT gen_random_uuid(), "started" timestamptz NOT NULL DEFAULT current_timestamp, kind TEXT NOT NULL, input UUID[], ended timestamptz, "next" UUID, produced UUID[], FOREIGN KEY "next" REFERENCES flows(id) ); CREATE TABLE flow_notes ( id UUID NOT NULL PRIMARY KEY DEFAULT gen_random_uuid(), time timestamptz NOT NULL DEFAULT current_timestamp, content TEXT NOT NULL, on_flow UUID NOT NULL, FOREIGN KEY on_flow REFERENCES flows(id) ); CREATE TABLE transactions ( id UUID NOT NULL PRIMARY KEY DEFAULT gen_random_uuid(), created timestamptz NOT NULL DEFAULT current_timestamp, item TEXT NOT NULL, variant TEXT NOT NULL, price NUMERIC(2), origin TEXT, "location" TEXT, note TEXT, destination TEXT, consumed_price NUMERIC(2), consumed_timestamp timestamptz );