<?php
session_start();
header('Content-Type: application/json');

$apiKey = 'sk_live_d07ca7935c70aa6b65ea3e3ab12267bb0c70353bab59158854b7c1838e346229';

$dados = json_decode(file_get_contents('php://input'), true);

if (!$dados) {
    echo json_encode([
        'success' => false,
        'message' => 'Dados não recebidos'
    ]);
    exit;
}

$telefone = preg_replace('/\D/', '', $dados['whatsapp'] ?? '');
$documento = preg_replace('/\D/', '', $dados['documento'] ?? '');

if (strlen($documento) === 11) {
    $docType = 'cpf';
} elseif (strlen($documento) === 14) {
    $docType = 'cnpj';
} else {
    echo json_encode([
        'success' => false,
        'message' => 'CPF ou CNPJ inválido'
    ]);
    exit;
}

$cep = preg_replace('/\D/', '', $dados['cep'] ?? '');

$documento = preg_replace('/\D/', '', $dados['documento'] ?? '');

if (strlen($documento) === 11) {
    $docType = 'cpf';
} elseif (strlen($documento) === 14) {
    $docType = 'cnpj';
} else {
    echo json_encode([
        'success' => false,
        'message' => 'CPF ou CNPJ inválido'
    ]);
    exit;
}


$quantidade = intval($dados['quantidade'] ?? 1);
$valorUnit = floatval($dados['valor_unitario'] ?? 0);
$amount = intval($quantidade * $valorUnit * 100);

if ($amount <= 0) {
    echo json_encode([
        'success' => false,
        'message' => 'Valor inválido'
    ]);
    exit;
}

$externalRef = uniqid('ORDER-');

$payload = [
    "amount" => $amount,
    "currency" => "BRL",
    "paymentMethod" => "pix",
   "items" => [[
    "title" => "Café com Deus Pai",
    "unitPrice" => intval($valorUnit * 100),
    "quantity" => $quantidade,
    "tangible" => false
]],

    "customer" => [
        "name" => $dados['nome'],
        "email" => $dados['email'],
        "phone" => $telefone,
       "document" => [
    "number" => $documento,
    "type" => $docType
]
    ],
    "shipping" => [
        "name" => $dados['nome'],
        "street" => $dados['rua'],
        "number" => $dados['numero'],
        "complement" => $dados['complemento'] ?? '',
        "neighborhood" => $dados['bairro'],
        "city" => $dados['cidade'],
        "state" => $dados['estado'],
        "zipCode" => $cep
    ],
    "pix" => [
        "expiresInDays" => 2
    ],
    "externalRef" => $externalRef,
    "postbackUrl" => "https://seusite.com/webhook/blackcat.php"
];

$ch = curl_init("https://api.blackcatpagamentos.online/api/sales/create-sale");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        "Content-Type: application/json",
        "X-API-Key: $apiKey"
    ],
    CURLOPT_POSTFIELDS => json_encode($payload)
]);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);

if (!isset($data['data']['paymentData'])) {
    echo json_encode([
        'success' => false,
        'message' => 'Erro ao gerar PIX',
        'debug' => $data
    ]);
    exit;
}

$paymentData = $data['data']['paymentData'];

echo json_encode([
    'success' => true,
    'pix' => $paymentData['copyPaste'] ?? '',
    'qrCode' => !empty($paymentData['qrCodeBase64'])
        ? 'data:image/png;base64,' . $paymentData['qrCodeBase64']
        : 'https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=' . urlencode($paymentData['copyPaste']),
    'transactionId' => $data['data']['transactionId'] ?? $externalRef
]);
