module IDRAC::PowerMethods

def reboot

def reboot
  # Login to iDRAC if needed
  login unless @session_id
  
  puts "Rebooting server...".light_cyan
  
  # Send reboot command (Reset with ResetType=ForceRestart)
  path = "/redfish/v1/Systems/System.Embedded.1/Actions/ComputerSystem.Reset"
  payload = { "ResetType" => "ForceRestart" }
  
  response = authenticated_request(:post, path, body: payload.to_json, headers: { 'Content-Type' => 'application/json' })
  
  if response.status >= 200 && response.status < 300
    puts "Server reboot command sent successfully".green
    return true
  else
    error_message = "Failed to reboot server. Status code: #{response.status}"
    begin
      error_data = JSON.parse(response.body)
      error_message += ", Message: #{error_data['error']['message']}" if error_data['error'] && error_data['error']['message']
    rescue
      # Ignore JSON parsing errors
    end
    
    raise Error, error_message
  end
end