blob: 8a382e5daa0692d3b81305107af65ed0fb0c6737 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
-- Directive Order Groups (DOGs): Epic-like groupings of orders within a directive.
CREATE TABLE directive_order_groups (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
directive_id UUID NOT NULL REFERENCES directives(id) ON DELETE CASCADE,
owner_id UUID NOT NULL REFERENCES owners(id) ON DELETE CASCADE,
name VARCHAR(500) NOT NULL,
description TEXT,
status VARCHAR(32) NOT NULL DEFAULT 'open'
CHECK (status IN ('open', 'in_progress', 'done', 'archived')),
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX IF NOT EXISTS idx_dog_directive_id ON directive_order_groups(directive_id);
CREATE INDEX IF NOT EXISTS idx_dog_owner_id ON directive_order_groups(owner_id);
-- Add optional dog_id to orders
ALTER TABLE orders ADD COLUMN dog_id UUID REFERENCES directive_order_groups(id) ON DELETE SET NULL;
CREATE INDEX IF NOT EXISTS idx_orders_dog_id ON orders(dog_id);
|