-- ================================================================
-- Migration 005: Change duration_secs to FLOAT8
-- Version: 005
-- Date: 2026-03-26
-- Description: Change processor_results.duration_secs from INT to FLOAT8
--              to match Rust f64 type and preserve fractional seconds.
-- ================================================================

-- 5.1.1: Drop the existing generated column
ALTER TABLE processor_results DROP COLUMN IF EXISTS duration_secs;

-- 5.1.2: Re-add as double precision (float8) computed column
ALTER TABLE processor_results ADD COLUMN duration_secs DOUBLE PRECISION GENERATED ALWAYS AS (
    CASE 
        WHEN completed_at IS NOT NULL AND started_at IS NOT NULL 
        THEN EXTRACT(EPOCH FROM (completed_at - started_at))
        ELSE NULL
    END
) STORED;

-- 5.1.3: Update comment
COMMENT ON COLUMN processor_results.duration_secs IS 'Computed duration in seconds (completed - started) as double precision';