summaryrefslogtreecommitdiff
path: root/makima/migrations/20260130000000_create_contract_templates.sql
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-01-29 02:56:44 +0000
committersoryu <soryu@soryu.co>2026-01-29 02:56:44 +0000
commitf19acd400cc5bbe1fe51c004c50ee90d704240d8 (patch)
treeb7dcfd6926efcafd6eac33e713ebd321ec4284d0 /makima/migrations/20260130000000_create_contract_templates.sql
parent7af8561677cfdcfd23d099a25783c7fef51d1ba6 (diff)
downloadsoryu-f19acd400cc5bbe1fe51c004c50ee90d704240d8.tar.gz
soryu-f19acd400cc5bbe1fe51c004c50ee90d704240d8.zip
Fix contract type selection
Diffstat (limited to 'makima/migrations/20260130000000_create_contract_templates.sql')
-rw-r--r--makima/migrations/20260130000000_create_contract_templates.sql19
1 files changed, 19 insertions, 0 deletions
diff --git a/makima/migrations/20260130000000_create_contract_templates.sql b/makima/migrations/20260130000000_create_contract_templates.sql
new file mode 100644
index 0000000..17598e2
--- /dev/null
+++ b/makima/migrations/20260130000000_create_contract_templates.sql
@@ -0,0 +1,19 @@
+-- Create contract_type_templates table for user-defined contract templates
+CREATE TABLE contract_type_templates (
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
+ owner_id UUID NOT NULL REFERENCES owners(id) ON DELETE CASCADE,
+ name VARCHAR(255) NOT NULL,
+ description TEXT,
+ phases JSONB NOT NULL, -- [{id, name, order}]
+ default_phase VARCHAR(64) NOT NULL,
+ deliverables JSONB, -- {phase_id: [{id, name, priority}]}
+ version INTEGER NOT NULL DEFAULT 1,
+ created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
+ updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
+ CONSTRAINT unique_template_name_per_owner UNIQUE (owner_id, name)
+);
+
+CREATE INDEX idx_contract_type_templates_owner_id ON contract_type_templates(owner_id);
+
+-- Add phase_config column to contracts (stores copied template config at creation time)
+ALTER TABLE contracts ADD COLUMN IF NOT EXISTS phase_config JSONB;