<?php
session_start();
require_once 'idiomas.php';
if (!isset($_SESSION['user_id'])) { header("Location: index.php"); exit(); }

$msg = "";
require_once 'config.php';
$user_id = $_SESSION['user_id'];

if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['jarfile'])) {
    // 1. Limpa o nome do time para aceitar APENAS letras, números, traços e pontos (MATA O PATH TRAVERSAL)
    $raw_team_name = trim($_POST['team_name']);
    $team_name = preg_replace('/[^a-zA-Z0-9_.-]/', '', $raw_team_name);
    
    // Proteção contra SQL Injection
    $team_name_sql = $conn->real_escape_string($team_name);
    
    $file = $_FILES['jarfile'];
    $ext = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION));
    
    // Verifica também o MIME Type real, não apenas a extensão
    if ($ext !== 'jar') {
        $msg = "<div class='alert alert-danger'>".$t['msg_err_jar']."</div>";
    } else if (empty($team_name)) {
        $msg = "<div class='alert alert-danger'>Nome do time inválido. Use apenas letras e números.</div>";
    } else {
        $result = $conn->query("SELECT * FROM robots WHERE team_name = '$team_name_sql'");
        $can_upload = false;
        
        if ($result->num_rows > 0) {
            $row = $result->fetch_assoc();
            if ($row['user_id'] != $user_id) {
                $msg = "<div class='alert alert-danger'>".$t['msg_err_owner']."</div>";
            } else {
                $msg = "<div class='alert alert-success'>".$t['msg_upd_ok']."</div>";
                $can_upload = true;
            }
        } else {
            $conn->query("INSERT INTO robots (user_id, team_name, rating) VALUES ($user_id, '$team_name_sql', 1200)");
            $msg = "<div class='alert alert-success'>".$t['msg_new_ok']."</div>";
            $can_upload = true;
        }
        
        if ($can_upload) {
            $savepath = __DIR__ . "/virtual-combat/robots/";
            if (!is_dir($savepath)) { mkdir($savepath, 0777, true); }
            
            // O basename() é a última barreira de segurança garantindo que é só um nome de arquivo
            $safe_filename = basename($team_name . ".jar");
            $destination = $savepath . $safe_filename;
            
            move_uploaded_file($file['tmp_name'], $destination);
        }
    }
}

$my_robots = $conn->query("SELECT team_name, rating FROM robots WHERE user_id = $user_id ORDER BY rating DESC");
?>
<!DOCTYPE html>
<html lang="<?php echo $_SESSION['lang']; ?>" data-bs-theme="dark">
<head>
    <meta charset="UTF-8">
    <title><?php echo $t['title_arsenal']; ?></title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <style>body { background-color: #121212; } .lang-btn { text-decoration: none; margin-left: 10px; font-size: 1.2rem; opacity: 0.5; } .lang-btn.active { opacity: 1; }</style>
</head>
<body>

    <nav class="navbar navbar-expand-lg navbar-dark bg-dark border-bottom border-secondary mb-4">
        <div class="container">
            <a class="navbar-brand fw-bold" href="index.php"><?php echo $t['nav_arena']; ?></a>
            <div class="collapse navbar-collapse">
                <ul class="navbar-nav ms-auto">
                    <li class="nav-item"><a class="nav-link" href="ranking.php"><?php echo $t['nav_ranking']; ?></a></li>
                    <li class="nav-item"><a class="nav-link" href="historico.php"><?php echo $t['nav_history']; ?></a></li>
                    <li class="nav-item"><a class="nav-link text-danger" href="index.php?logout=1"><?php echo $t['nav_logout']; ?></a></li>
                    <li class="nav-item d-flex align-items-center ms-3 border-start border-secondary ps-3">
                        <a href="?lang=pt" class="lang-btn <?php echo ($_SESSION['lang'] == 'pt') ? 'active' : ''; ?>">🇧🇷</a>
                        <a href="?lang=en" class="lang-btn <?php echo ($_SESSION['lang'] == 'en') ? 'active' : ''; ?>">🇺🇸</a>
                        <a href="?lang=de" class="lang-btn <?php echo ($_SESSION['lang'] == 'de') ? 'active' : ''; ?>">🇩🇪</a>
                    </li>
                </ul>
            </div>
        </div>
    </nav>

    <div class="container">
        <div class="row justify-content-center">
            <div class="col-md-8 text-center">
                <div class="text-start mb-3"><a href="index.php" class="text-info text-decoration-none fw-bold"><?php echo $t['back_hq']; ?></a></div>
                <h2 class="mb-4 text-uppercase fw-bold text-info"><?php echo $t['title_arsenal']; ?></h2>
                <?php echo $msg; ?>

                <div class="card shadow border-info mb-5 text-start">
                    <div class="card-body p-4">
                        <form method="POST" enctype="multipart/form-data">
                            <div class="mb-3">
                                <label class="form-label fw-bold"><?php echo $t['label_team']; ?></label>
                                <input type="text" name="team_name" class="form-control bg-dark text-light" required>
                                <div class="form-text text-secondary"><?php echo $t['label_team_hint']; ?></div>
                            </div>
                            <div class="mb-4">
                                <label class="form-label fw-bold"><?php echo $t['label_file']; ?></label>
                                <input type="file" name="jarfile" class="form-control bg-dark text-light" accept=".jar" required>
                            </div>
                            <button type="submit" class="btn btn-info w-100 fw-bold fs-5 shadow-sm"><?php echo $t['btn_upload']; ?></button>
                        </form>
                    </div>
                </div>

                <h3 class="mb-3 text-light"><?php echo $t['my_squads']; ?></h3>
                <div class="table-responsive">
                    <table class="table table-dark table-striped table-hover border-secondary align-middle">
                        <thead class="table-secondary"><tr><th><?php echo $t['col_team']; ?></th><th><?php echo $t['col_rating']; ?></th></tr></thead>
                        <tbody>
                            <?php
                            if ($my_robots->num_rows > 0) {
                                while($row = $my_robots->fetch_assoc()) {
                                    echo "<tr><td class='fw-bold text-light'>" . htmlspecialchars($row['team_name']) . "</td><td class='text-warning'>🏆 " . $row['rating'] . "</td></tr>";
                                }
                            } else {
                                echo "<tr><td colspan='2' class='text-muted'>" . $t['no_robots'] . "</td></tr>";
                            }
                            ?>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
</body>
</html>
<?php $conn->close(); ?>
