query( "CREATE TABLE IF NOT EXISTS economic_transfer_queue_jobs ( id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, transfer_type VARCHAR(64) NOT NULL, payload_json JSON NOT NULL, status VARCHAR(32) NOT NULL DEFAULT 'QUEUED', progress_percent TINYINT UNSIGNED NOT NULL DEFAULT 0, progress_message VARCHAR(255) NULL, attempts INT NOT NULL DEFAULT 0, max_attempts INT NOT NULL DEFAULT 3, error_message TEXT NULL, result_json JSON NULL, created_by INT NULL, started_at DATETIME NULL, completed_at DATETIME NULL, next_retry_at DATETIME NULL, locked_at DATETIME NULL, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, INDEX idx_economic_transfer_queue_jobs_status_created (status, created_at), INDEX idx_economic_transfer_queue_jobs_next_retry (next_retry_at), INDEX idx_economic_transfer_queue_jobs_transfer_type (transfer_type) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" ); self::$initialized = true; } }