<?php
defined('BASEPATH') or exit('No direct script access allowed');

class WebHook extends CI_Controller
{

    public function __construct()
    {
        parent::__construct();
    }

    public function webhookZenvia()
    {
        // Recebe os dados do webhook
        $webhookData = file_get_contents('php://input');
        $data = json_decode($webhookData, true);

        if (!isset($data) || empty($data) || !isset($data['id'])) {
            $this->saveToFile('webhook_error.txt', json_encode($data));
            // Retorna o código HTTP 403 para erro
            http_response_code(403);
            echo 'error';
            exit;
        }

        $this->saveToFile('webhook_debug.txt', json_encode($data));

        $webhookId = $data['messageId'];

        // Chame um modelo para inserir os dados no banco
        $this->load->model('Webhook_model');
        $wbModel = new Webhook_model();
        $inserir = $wbModel->inserirDadosWebhook($data);


        if ($inserir['success']) {
            // Retorna o código HTTP 200 para sucesso
            http_response_code(200);
            echo json_encode($inserir);
        } else {
            // Retorna o código HTTP 403 para erro
            http_response_code(403);
            echo json_encode($inserir);
        }
    }


    private function saveToFile($filename, $data)
    {
        file_put_contents(APPPATH . 'logs/' . $filename, $data . PHP_EOL, FILE_APPEND);
    }
}
