summaryrefslogtreecommitdiff
path: root/makima/migrations/20260303000000_create_directive_order_groups.sql
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);