wulf-pulse/migrations/059_create_project_phases_table.sql

31 lines
1.5 KiB
MySQL
Raw Normal View History

-- Migration 059: Create project_phases table
-- Project phases are groupings of tasks within an Autotask project.
-- Tasks reference phases via phase_id. Syncing phases allows us to resolve
-- tasks back to their parent project (tasks.phase_id → project_phases.id → project_phases.project_id).
-- Autotask endpoint: /Phases
CREATE TABLE IF NOT EXISTS project_phases (
id BIGINT PRIMARY KEY,
project_id BIGINT, -- no FK: phases may reference completed/archived projects not in our DB
parent_phase_id BIGINT,
title CHARACTER VARYING,
description TEXT,
phase_number CHARACTER VARYING,
estimated_hours NUMERIC,
start_date_time TIMESTAMP WITHOUT TIME ZONE,
due_date TIMESTAMP WITHOUT TIME ZONE,
create_date_time TIMESTAMP WITHOUT TIME ZONE,
last_activity_date_time TIMESTAMP WITHOUT TIME ZONE,
creator_resource_id BIGINT,
is_scheduled BOOLEAN DEFAULT FALSE,
external_id CHARACTER VARYING,
synced_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
is_deleted BOOLEAN DEFAULT FALSE,
deleted_at TIMESTAMP WITH TIME ZONE
);
CREATE INDEX IF NOT EXISTS idx_project_phases_project_id ON project_phases (project_id);
CREATE INDEX IF NOT EXISTS idx_project_phases_is_deleted ON project_phases (is_deleted) WHERE is_deleted = FALSE;