<?php

declare(strict_types=1);

class WhatsAppDispatch extends Model
{
    public function alreadySent(int $ocorrenciaId, string $trigger, string $reference): bool
    {
        $stmt = $this->db->prepare("SELECT id FROM whatsapp_dispatches WHERE ocorrencia_id = :ocorrencia_id AND gatilho = :gatilho AND referencia = :referencia LIMIT 1");
        $stmt->execute([
            'ocorrencia_id' => $ocorrenciaId,
            'gatilho' => $trigger,
            'referencia' => $reference,
        ]);
        return (bool) $stmt->fetch();
    }

    public function add(array $data): int
    {
        $sql = "INSERT INTO whatsapp_dispatches (
                    ocorrencia_id, gatilho, referencia, telefone, mensagem,
                    payload_json, response_json, status_code, sucesso, criado_em
                ) VALUES (
                    :ocorrencia_id, :gatilho, :referencia, :telefone, :mensagem,
                    :payload_json, :response_json, :status_code, :sucesso, NOW()
                )";
        $stmt = $this->db->prepare($sql);
        $stmt->execute([
            'ocorrencia_id' => $data['ocorrencia_id'],
            'gatilho' => $data['gatilho'],
            'referencia' => $data['referencia'],
            'telefone' => $data['telefone'],
            'mensagem' => $data['mensagem'],
            'payload_json' => $data['payload_json'],
            'response_json' => $data['response_json'],
            'status_code' => $data['status_code'],
            'sucesso' => (int) $data['sucesso'],
        ]);
        return (int) $this->db->lastInsertId();
    }
}
