diff options
| author | soryu <soryu@soryu.co> | 2026-01-29 02:56:44 +0000 |
|---|---|---|
| committer | soryu <soryu@soryu.co> | 2026-01-29 02:56:44 +0000 |
| commit | f19acd400cc5bbe1fe51c004c50ee90d704240d8 (patch) | |
| tree | b7dcfd6926efcafd6eac33e713ebd321ec4284d0 /makima/migrations/20260130000000_create_contract_templates.sql | |
| parent | 7af8561677cfdcfd23d099a25783c7fef51d1ba6 (diff) | |
| download | soryu-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.sql | 19 |
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; |
