<?php

// Pandora FMS - https://pandorafms.com
// ==================================================
// Copyright (c) 2005-2023 Pandora FMS
// Please see https://pandorafms.com/community/ for full contribution list
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation for version 2.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.


/**
 * Return array with macros of agent like core.pm
 *
 * @param interger $id_agente Id agent to return data.
 *
 * @return array Array with all macros.
 */
function return_agent_macros($id_agente)
{
    global $config;
    $array_macros = [];
    $grupo = [];
    $agente = db_get_row_sql(
        'SELECT * FROM tagente WHERE id_agente = '.$id_agente
    );
    if (isset($agente['id_grupo'])) {
        $grupo = db_get_row_sql(
            'SELECT * FROM tgrupo WHERE id_grupo = '.$agente['id_grupo']
        );
    }

    if (isset($agente['server_name'])) {
        $server_ip = db_get_row_sql(
            'SELECT ip_address FROM tserver WHERE name = "'.$agente['server_name'].'"'
        )['id_address'];
    }

    $array_macros = [
        '_agentname_'        => ($agente['nombre']) ?: '',
        '_agentalias_'       => ($agente['alias']) ?: '',
        '_agent_'            => ($agente['alias']) ?: (($agente['nombre']) ?: ''),
        '_agentcustomid_'    => ($agente['custom_id']) ?: '',
        '_agentdescription_' => ($agente['comentarios']) ?: '',
        '_agentgroup_'       => ($grupo['nombre']) ?: '',
        '_agentos_'          => ($agente['id_os']) ?: '',
        '_address_'          => ($agente['direccion']) ?: '',
        '_homeurl_'          => ($config['public_url']) ?: '',
        '_groupcontact_'     => ($agente['contact']) ?: '',
        '_groupcustomid_'    => ($agente['custom_id']) ?: '',
        '_groupother_'       => ($agente['other']) ?: '',
        '_server_ip_'        => ($server_ip) ?: '',
        '_server_name_'      => ($agente['server_name']) ?: '',
    ];

    return $array_macros;
}