<?php

namespace App\Infra\K2web;

use App\Services\LogService;

class K2web {

    public function enviarMensagem($tpo_message, $agendamento) {

        $curl = curl_init();

        $cliente = $this->getDetalhesClienteByAgendamento($agendamento);
        if($cliente['numero_notificacao_agendamento'] == NULL) return 0;
        $mensagem = $this->getMessage($tpo_message, $cliente);
        $telefone = $cliente['numero_notificacao_agendamento'];

        curl_setopt_array($curl, array(
            CURLOPT_URL => 'https://anclivepa.placein.com.br/app.allowhats_apoio&assunto=sendMessage',
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => '',
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 0,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => 'GET',
            CURLOPT_POSTFIELDS =>'{
            "type": "send",
            "number": "'.$telefone.'",
            "msg": "'.$mensagem.'",
            "format": "padrao"
        }',
            CURLOPT_HTTPHEADER => array(
                'TOKEN: EAAD8Wjfi4VgBO12K8ewaDqCyEeWL6DfFmeblvypIXVEBWDnW2iFrPTGGlh7ZBlHWpKWZCrHWcT8kABq2sytDT8FrAG8cjEua3bXK3DrxWJzeegvE6nlVFLZACwFbNU5eOdkZBeNk1w6JQhgS9vVGmodOv0iZBHtkdDI6MaDfsv0Hlzqw6HB61jFKcMLW7ahB8SXAZA42lPWk7T1T9W',
                'Content-Type: application/json'
            ),
        ));

        $response = curl_exec($curl);
        
        //log_message("INFO", "respoinse k2web", [$response]);

        curl_close($curl);
        return json_decode($response);
    }




    public function getDetalhesClienteByAgendamento(int $id_agendamento)
    {
        $sql = <<<SQL
			SELECT
				pf.nome, pf.data_nascimento, a2.`data`,
				a2.hora_inicio, a2.hora_final,
				a.numero_notificacao_agendamento
			FROM
				agendamento a, pessoa_fisica pf , agenda a2 , cliente c
			where
				a.id = :id_agendamento:
				and a.id_agenda = a2.id
				and a.id_cliente  = c.id
				and c.id_pessoa = pf.id_pessoa			
		SQL;
        $binds = [
            'id_agendamento' => $id_agendamento
        ];

        $conn = db_connect();
        $resultado = $conn->query($sql, $binds)->getResultArray();
        return $resultado[0];
    }

    public function getMessage($message, $cliente){
        switch ($message) {
            // 1. Após o Agendamento da Consulta:
            case 1:
                return "Olá! \\\\nEstamos empolgados por você ter agendado a consulta para seu pet. Qualquer dúvida, é só chamar. \\\\nAté logo! TeleVet Play!";

            // 2.Confirmação da Consulta:
            case 2:
                $dataOriginal = $cliente['data'];
                $dataFormatada = date("d/m/Y", strtotime($dataOriginal));
                $response = "Olá ". $cliente['nome']. "! \\\\n Esperamos que esteja tudo bem com você e seu pet! Gostaríamos de confirmar que a consulta online do seu amigão está agendada e confirmada para o dia ". $dataFormatada ." às ". $cliente['hora_inicio'] .". \\\\n\\\\nPara a consulta, certifique-se de estar conectado(a) ao sistema no horário da consulta para que possamos atender ao seu pet da melhor forma possível. Se tiver alguma dúvida ou precisar reagendar, por favor, nos avise com antecedência.\\\\n\\\\nAgradecemos por escolher nossos serviços e estamos ansiosos para fornecer o melhor atendimento ao seu pet. Qualquer coisa que precisar, estamos à disposição.\\\\nAbraços, TeleVet Play!";
                return $response;

            // 3. Alerta de Consulta Próxima da Data:
            case 3:
                return "Só para lembrar: a consulta do seu pet em ". $cliente['data'] ." às ". $cliente['hora_inicio'] ." está chegando. Ficaremos felizes em vê-lo(a)! \\\\nAté logo! TeleVet Play!";

            // 4. Início de Consulta:
            case 4:
                return "É hoje! \\\\nA consulta do seu pet está prestes a começar, basta acessar o link: https://televetplay.pettree.com.br.. Estamos aqui para ajudar. \\\\n Até logo! TeleVet Play!";

            // 5. Após Consulta:
            case 5:
                return "Olá ". $cliente['nome']. ", \\\\nEsperamos que seu pet esteja bem após a consulta. Queremos ouvir sua opinião para melhorarmos. Poderia nos contar como foi sua experiência? Lembre-se da importância de consultas regulares para a saúde do seu pet. Estamos aqui para cuidar deles. Agende sua próxima visita quando necessário. Agradecemos por confiar em nós e esperamos vê-lo em breve! \\\\nAtenciosamente, TeleVet Play!";

            // 6. Consulta Cancelada:
            case 6:
                return "Olá ". $cliente['nome']. ", \\\\nEsperamos que esteja tudo bem! Queríamos te informar que, infelizmente, tivemos que cancelar a consulta do seu pet porque você não pôde comparecer. Mas não se preocupe, estamos aqui para ajudar e podemos marcar outra consulta quando for mais conveniente para você! \\\\nAtenciosamente, TeleVet Play!";

        }
    }







}
