CREATE TABLE IF NOT EXISTS conversion_jobs (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  uuid CHAR(36) NOT NULL,
  status ENUM('pending', 'processing', 'done', 'failed') NOT NULL DEFAULT 'pending',
  family VARCHAR(32) NOT NULL,
  source_format VARCHAR(16) NOT NULL,
  target_format VARCHAR(16) NOT NULL,
  original_filename VARCHAR(255) NOT NULL,
  input_path VARCHAR(255) NOT NULL,
  output_path VARCHAR(255) NULL,
  input_mime_type VARCHAR(128) NOT NULL,
  output_mime_type VARCHAR(128) NULL,
  input_size_bytes INT UNSIGNED NOT NULL,
  output_size_bytes INT UNSIGNED NULL,
  conversion_duration_seconds DECIMAL(10,3) NULL,
  error_message VARCHAR(255) NULL,
  error_log TEXT NULL,
  created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  expires_at DATETIME NOT NULL,
  cleaned_at DATETIME NULL DEFAULT NULL,
  UNIQUE KEY uniq_uuid (uuid),
  INDEX idx_status (status),
  INDEX idx_expires_at (expires_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
