-- AP1.16a: Durchführungsplan — Action-Reihenfolge, kind, Abhängigkeiten ALTER TABLE actions ADD COLUMN IF NOT EXISTS sort_order INT NOT NULL DEFAULT 0; ALTER TABLE actions ADD COLUMN IF NOT EXISTS action_kind VARCHAR(32) NOT NULL DEFAULT 'delivery' CHECK (action_kind IN ('delivery', 'planning', 'review')); CREATE INDEX idx_actions_initiative_sort ON actions(tenant_id, initiative_id, sort_order); CREATE TABLE action_dependencies ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), tenant_id UUID NOT NULL REFERENCES tenants(id) ON DELETE CASCADE, initiative_id UUID NOT NULL REFERENCES initiatives(id) ON DELETE CASCADE, predecessor_action_id UUID NOT NULL REFERENCES actions(id) ON DELETE CASCADE, successor_action_id UUID NOT NULL REFERENCES actions(id) ON DELETE CASCADE, dependency_kind VARCHAR(32) NOT NULL DEFAULT 'requires' CHECK (dependency_kind IN ('requires', 'blocks', 'relates')), created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), UNIQUE (tenant_id, predecessor_action_id, successor_action_id, dependency_kind) ); CREATE INDEX idx_action_deps_predecessor ON action_dependencies(tenant_id, predecessor_action_id); CREATE INDEX idx_action_deps_successor ON action_dependencies(tenant_id, successor_action_id); CREATE INDEX idx_action_deps_initiative ON action_dependencies(tenant_id, initiative_id);