-- 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;