<?php
// CLI: Criar cliente e pedido de venda simples para testes do PDV
// Uso: php scripts/seed_sales_order.php [tenant_id]

require __DIR__ . '/../bootstrap.php';

use Gestoreasy\Core\Tenant\ConnectionManager;
use Gestoreasy\Core\Tenant\TenantAdmin;

$tenant = isset($argv[1]) && is_string($argv[1]) && trim($argv[1]) !== '' ? trim($argv[1]) : 'default';

echo "[seed] Tenant: {$tenant}\n";
// Opcional: garantir migrações (tolerante)
try { TenantAdmin::runMigrations($tenant); echo "[seed] Migrações ok.\n"; } catch (Throwable $e) { echo "[seed] Aviso migrações: {$e->getMessage()}\n"; }

$pdo = ConnectionManager::forTenant($tenant);

// Criar cliente simples se não existir
$clientName = 'Cliente Teste PDV';
$check = $pdo->prepare('SELECT id FROM clients WHERE nome = ? LIMIT 1');
$check->execute([$clientName]);
$clientId = (int)($check->fetch()['id'] ?? 0);
if ($clientId <= 0) {
    $ins = $pdo->prepare('INSERT INTO clients (nome, tipo, cpf, cnpj) VALUES (?,?,?,?)');
    $ins->execute([$clientName, 'PF', null, null]);
    $clientId = (int)$pdo->lastInsertId();
    echo "[seed] Cliente criado: id={$clientId}\n";
} else {
    echo "[seed] Cliente já existe: id={$clientId}\n";
}

// Criar pedido de venda com status 'aberto'
$numero = 'SO-PDV-' . strtoupper(bin2hex(random_bytes(4)));
$valorTotal = 99.90;
$status = 'aberto';

$orderStmt = $pdo->prepare('INSERT INTO sales_orders (numero, cliente_id, valor_total, status) VALUES (?,?,?,?)');
$orderStmt->execute([$numero, $clientId, $valorTotal, $status]);
$orderId = (int)$pdo->lastInsertId();
echo "[seed] Pedido criado: id={$orderId}, numero={$numero}, status={$status}, total={$valorTotal}\n";

echo json_encode(['ok' => true, 'order_id' => $orderId, 'numero' => $numero, 'cliente_id' => $clientId, 'valor_total' => $valorTotal, 'status' => $status], JSON_UNESCAPED_UNICODE) . "\n";