<?php
include 'config.php';
checkLogin();
require_once 'tcpdf/tcpdf.php';

$id = (int)($_GET['id'] ?? 0);

/* ===============================
   FETCH DATA
================================ */
$stmt = $conn->prepare(
    "SELECT s.serial_number, m.brand, m.model
     FROM laptop_serials s
     JOIN laptop_models m ON s.model_id = m.id
     WHERE s.id=?"
);
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->bind_result($serial, $brand, $model);
$stmt->fetch();
$stmt->close();

if (!$serial) {
    die("Invalid serial");
}

/* ===============================
   TCPDF SETTINGS (FORCE 34mm x 25mm)
================================ */
$pdf = new TCPDF(
    'L',            // Landscape
    'mm',           // Millimeters
    [34, 25],       // EXACT LABEL SIZE
    true,
    'UTF-8',
    false
);

/* IMPORTANT: disable defaults */
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);

$pdf->SetMargins(1.2, 1.2, 1.2);
$pdf->SetAutoPageBreak(false, 0);
$pdf->AddPage();

/* ===============================
   OPTIONAL BORDER (REFERENCE)
================================ */
$pdf->Rect(0.8, 0.8, 32.4, 23.4);

/* ===============================
   LAPTOP MODEL (LARGE)
================================ */
$pdf->SetFont('helvetica', 'B', 7);
$pdf->SetTextColor(0, 0, 0);
$pdf->MultiCell(
    0,
    5,
    strtoupper($brand . ' ' . $model),
    0,
    'C',
    false,
    1,
    '',
    '',
    true
);

/* ===============================
   BARCODE (REDUCED HEIGHT)
================================ */
$style = [
    'align' => 'C',
    'stretch' => true,
    'fitwidth' => true,
    'border' => false,
];

$pdf->write1DBarcode(
    $serial,
    'C128',
    1.5,   // X
    9.5,   // Y
    31,    // WIDTH
    6,     // HEIGHT (REDUCED)
    0.30,  // BAR THICKNESS
    $style,
    'N'
);

/* ===============================
   SERIAL NUMBER (LARGE)
================================ */
$pdf->SetFont('helvetica', 'B', 7);
$pdf->SetY(17);
$pdf->Cell(0, 5, $serial, 0, 0, 'C');

/* ===============================
   MARK AS PRINTED
================================ */
$update = $conn->prepare(
    "UPDATE laptop_serials
     SET printed = 1, printed_at = NOW()
     WHERE id = ?"
);
$update->bind_param("i", $id);
$update->execute();
$update->close();

/* ===============================
   OUTPUT
================================ */
$pdf->Output('label_'.$serial.'.pdf', 'I');
