[
    "autonomous agent",
    {
        "init": "{
        $nom_AA = 'Consultes';
        $versio = '0.1';
        $args = trigger.data;
        $_Portal = $args._Portal;
        $refcons = $args.refcons;
        $idgeto = $args.geto;
        $dades_portal = var[ $_Portal ][ 'dades' ];
        $generics = $dades_portal.generics;
        //$dades_accions = var[ $generics._Accions ][ 'dades' ];
        //$validacions = var[ $generics._Validacions ][ 'Validacions' ];
        //$getons = var[ $generics._Getons ][ 'Getons' ];
        $dades_accions = var[ $_Portal ][ 'dades' ];
        $validacions = var[ $_Portal ][ 'Validacions' ];
        $getons = var[ $_Portal ][ 'Getons' ];
        $geto = $getons[ $idgeto ];
    }",
        "messages": [
            {
                "app": "state",
                "state": "{
                if ( $refcons == 'Portal' ) {
                    response[ 'Lapse' ] = $generics.Lapse;
                    
                    $__resp = $r => {
                        response[ $r ] = $generics[ $r ];
                    };
                    $refs_generics = [
                        '_Accions', '_Getons', '_Validacions', '_Validadores',
                        '_FRO', '_Estels', 'Interval', 'Lapse',
                        'Import_Activacio', 'Import_Subscripcio', 'Import_Renovacio', 
                        'Taxa_Conversio', 'Factor_Conversio', 'Generacio_Minima',
                        'Nombre_Delegades', 'Nombre_Aprovacions', 'Cicles_Diposit',
                        '_AUT_0', '_AUT_A', '_AUT_B', '_AUT_C'
                    ];
                    $respon = map( $refs_generics, 21, $__resp );
                }
                if ( $refcons == 'Darrera_Proposta' ) {
                    $ordinals = $dades_portal.ordinals;
                    $ordinal = $ordinals[ $args.ref ];
                    $propostes = $dades_portal.propostes;
                    $id_proposta = $args.ref || '_' || $ordinal;
                    $proposta = $propostes[ $id_proposta ];
                    if ( $proposta ) {
                        $data_confirmacio = $proposta.temps + $generics.Lapse;
                        response[ 'ref darrera proposta per a' || $args.ref ] = $id_proposta;
                        response[ 'ref del param proposat' ] = $proposta.ref;
                        response[ 'valor del param proposat' ] = $proposta.val;
                        response[ 'proposant' ] = $proposta.proposant;
                        response[ 'data de la proposta' ] =
                            timestamp_to_string( $proposta.temps );
                        response[ 'data inici confirmacio' ] =
                            timestamp_to_string( $data_confirmacio );
                        $valor_actual = $generics[ $proposta.ref ];
                        $coincident =
                            $valor_actual AND $valor_actual == $proposta.val ? 'SÍ' : 'NO';
                        response[ 'valor actual coincident amb el proposat' ] = $coincident;
                        response[ 'valor actual' ] = $valor_actual;
                        $validacio = $validacions[ $id_proposta ];
                        response[ 'proposta validada' ] =
                            $validacio ? timestamp_to_string( $validacio ) : 'NO';
                    } else {
                        response[ 'No hi ha cap proposta per a aquest param genèric' ] = $id_proposta;
                    }
                }
                if ( $refcons == 'Validacio' ) {
                    $data_validacio = $validacions[ $args.id ];
                    response[ 'Proposta' ] = $args.id;
                    response[ 'Validada' ] =
                        $data_validacio ? timestamp_to_string( $data_validacio ) : 'NO';
                }
                if ( $refcons == 'Dades_Geto' ) {
                    $dades_geto = $getons[ $args.id ];
                    response[ 'Id getó' ] = $args.id;
                    response[ 'Estat' ] = $dades_geto.estat;
                    response[ 'Proposant' ] = $dades_geto.proposant;
                    response[ 'Confirmant' ] = $dades_geto.confirmant;
                    response[ 'Data' ] = timestamp_to_string( $dades_geto.temps );
                    $constants = $dades_geto.constants;
                    $refs_constants = [ 
                        '_FOG', '_AUT_A', 'factor_conversio',
                        'valors_esmenables', 'llistats_editables',
                        'bloqueig_possible',
                    ];
                     $__resp_const = $r => {
                        response[ $r ] = $constants[ $r ];
                    };
                    
                    $resps_consts = map( $refs_constants, 6, $__resp_const );
                    
                    $variables = $dades_geto.variables;
                    $refs_variables = [ 
                        'import_activacio', 'import_subscripcio', 
                        'import_renovacio', 'taxa_conversio',
                        'cicles_diposit', 'derivacio',
                        '_AUT_0', '_AUT_0', '_AUT_0'
                    ];
                     $__resp_var = $r => {
                        response[ $r ] = $variables[ $r ];
                    };
                    
                    $resps_vars = map( $refs_variables, 9, $__resp_var );
                }
                if ( $refcons == 'Dades_Node' ) {
                    $activacio = $dades_accions[ 'activacio_' || $args.adr || '_en_' || $idgeto ];
                    $subscripcio = $dades_accions[ 'subscripcio_' || $args.adr || '_en_' || $idgeto ];
                    $cicle_renovacio = $dades_accions[ 'renovacio_' || $args.adr__ || '_' || $idgeto ];
                    $total_Derivacions = $dades_accions[ 'total_Derivacions_de_' || $args.adr || '_en_' || $idgeto ];
                    response[ 'Nom Activació' ] = $activacio.nom;
                    response[ 'Escala Activació' ] = $activacio.escala;
                    response[ 'Nom Subscripció' ] = $subscripcio.nom;
                    response[ '% Derivació a FOP' ] = $subscripcio.aFOP;
                    response[ 'Cicle Subscripció' ] = $subscripcio.cicle;
                    response[ 'Cicle Renovació' ] = $cicle_renovacio;
                    response[ 'Total Derivacions a FOP' ] = $total_Derivacions;
                    $avis = $geto.avisos[ $args.adr ];
                    $avis_es_actual = $avis.temps + ( $generics.Lapse * 2 ) < timestamp;
                    if ( $avis_es_actual ) { response[ 'Avís' ] = $avis.text; }
                }
                if ( $refcons == 'Totals' ) {
                    $total_activacions = $dades_accions[ 'total_Activacions' || '_en_' || $idgeto ];
                    $total_subscripcions = $dades_accions[ 'total_Subscripcions' || '_en_' || $idgeto ];
                    $total_renovacions = $dades_accions[ 'total_Renovacions' || '_en_' || $idgeto ];
                    $total_compensacions = $dades_accions[ 'total_Compensacions' || '_en_' || $idgeto ] ;
                    $total_derivacions = $dades_accions[ 'total_Derivacions' || '_en_' || $idgeto ];
                    $total_diposits = $dades_accions[ 'total_Diposits' || '_en_' || $idgeto ];
                    $total_liquidacions = $dades_accions[ 'total_Liquidacions' || '_en_' || $idgeto  ];
                    response[ 'Total Activacions' ] = $total_activacions;
                    response[ 'Total Subscripcions' ] = $total_subscripcions;
                    response[ 'Total Renovacions' ] = $total_renovacions;
                    response[ 'Total Compensacions' ] = $total_compensacions;
                    response[ 'Total Derivacions' ] = $total_derivacions;
                    response[ 'Total Diposits' ] = $total_diposits;
                    response[ 'Total Liquidacions' ] = $total_liquidacions;
                }
                if ( $refcons == 'Cicle_actual' ) {
                    $cicle_actual = $dades_accions[ 'cicle_actual'];
                    $data_cicle_actual = $dades_accions[ 'data_cicle_actual'];
                    $data_cicle_anterior = $dades_accions[ 'data_cicle_anterior'];
                    $interval = $dades_accions[ 'Interval'];
                    response[ 'Cicle Actual' ] = $cicle_actual;
                    response[ 'Data Cicle Actual' ] = timestamp_to_string( $data_cicle_actual );
                    response[ 'Data Cicle Anterior' ] = timestamp_to_string( $data_cicle_anterior );
                    response[ 'Data Cicle Actual milisegons' ] = $data_cicle_actual;
                    response[ 'Data Cicle Anterior milisegons' ] = $data_cicle_anterior;
                    response[ 'Interval' ] = $interval;
                }
                if ( $refcons == 'Avis' ) {
                    $avis = $geto.avisos[ $args.adr ];
                    response[ 'Actuant' ] = $avis.actuant;
                    response[ 'Text' ] = $avis.text;
                    response[ 'Rebot' ] = $avis.rebot;
                    response[ 'Temps' ] = $avis.temps;
                }
                if ( $refcons == 'Capacitacio' ) {
                    $capacitacio = $geto.capacitacions[ $args.accio ][ $args.adr ];
                    response[ 'Capacitacio' ] = $args.accio;
                    response[ 'Capacitadora' ] = $capacitacio.capacitadora;
                    response[ 'Estat' ] = $capacitacio.estat;
                    response[ 'Temps' ] = $capacitacio.temps;
                }
            }"
            }
        ]
    }
]