function FerramentaTempoReal(data) {
    const mSelf = this;
    mSelf.Data = ko.observable(new FerramentaTempoRealData(data.Data));
    mSelf.FerramentaId = data.FerramentaId;
    mSelf.Template = data.Template;
    mSelf.Nome = data.Nome;
    mSelf.Titulo = data.Titulo;
    mSelf.Ordem = 1;
    mSelf.Icone = data.Icone;
    mSelf.Visivel = ko.observable(true);
    mSelf.Init = () => mSelf.Data().Init();
}

function FerramentaTempoRealData() {
    const mSelf = this;
    mSelf.AcaoAtivar = ko.observable(false);
    mSelf.Init = () => { };

    mSelf.DesativarTempoReal = () =>
        $('.modal-confirm').parent().fadeIn('fast');

    mSelf.ConfirmacaoDesativarTempoReal = () => {
        mSelf.AcaoAtivar(false);

        vm.currentMap.removeMarkers('tempo-real');
        mSelf.AtivarDesativarTempoReal(false);
    };

    mSelf.AtivarTempoReal = () => {
        mSelf.AcaoAtivar(true);
        mSelf.AtivarDesativarTempoReal(true);
    };

    mSelf.AtivarDesativarTempoReal = (acao) => {
        const obj = {
            codigoVeiculo: vm.Perspectiva.Veiculo.CodigoVeiculo(),
            acao: acao
        };

        $.ajax({
            url: `${urlGlobal}RastreamentoGeral/VeiculoGenericoDetalhes/AtivarDesativarTempoReal`,
            contentType: 'application/json; charset=utf-8',
            type: 'POST',
            dataType: 'json',
            data: JSON.stringify(obj),
            beforeSend: () => $('.loading-div').fadeIn('fast'),
            success: (data) => {
                if (data) {
                    if (acao) vm.MensagemTempoReal(true);
                    else vm.MensagemTempoReal(false);
                }
                else vm.ShowMensagemErro('Erro ao enviar comando para o dispositivo!');

                $('.modal-confirm').parent().fadeOut();
            }
        }).done(() => $('.loading-div').fadeOut());
    };
}