<?php
$csvFile = 't_master_collection.csv';

if (!file_exists($csvFile)) {
    die("Plik CSV nie istnieje.");
}

$handle = fopen($csvFile, 'r');
$headers = fgetcsv($handle, 0, ';');

$xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><produkty></produkty>');

// Mapa nagłówków technicznych na pełne, polskie opisy do opisu produktu
$mapaOpisow = [
    'Material' => 'Materiał wykonania',
    'Kolor_pods' => 'Kolor podstawy',
    'Klasa_energetyczna' => 'Klasa energetyczna',
    'Ilosc_zrodel_swiatla' => 'Ilość źródeł światła',
    'Zawiera_zrodlo_swiatla' => 'Czy zawiera źródło światła',
    'Trzonek' => 'Rodzaj trzonka',
    'Barwa_swiatla' => 'Barwa światła',
    'Srednica_prod' => 'Średnica',
    'Wysokosc_prod' => 'Wysokość',
    'Szerokosc_prod' => 'Szerokość',
    'Glebokosc_prod' => 'Głębokość',
    'Wymiary <wys/szer/gle>' => 'Wymiary (wys. x szer. x gł.)',
    'Waga_netto' => 'Waga netto',
];

while (($data = fgetcsv($handle, 0, ';')) !== false) {
    $produkt = $xml->addChild('produkt');
    $opis = "";

    foreach ($headers as $i => $header) {
        $value = isset($data[$i]) ? trim($data[$i]) : '';
        $safeHeader = preg_replace('/[^a-zA-Z0-9_]/', '_', $header);

        // Dodaj " Candellux" do nazwy handlowej
        if ($header === 'Nazwa_handlowa') {
            $value .= ' Candellux';
        }

        // Tworzenie opisu produktu z mapy opisów
        if (array_key_exists($header, $mapaOpisow) && $value !== '') {
            $opis .= $mapaOpisow[$header] . ': ' . $value . ". ";
        }

        // Normalny wpis XML
        $produkt->addChild($safeHeader, htmlspecialchars($value));
    }

    // Dodanie wygenerowanego opisu produktu
    $produkt->addChild('opis_produktu', htmlspecialchars(trim($opis)));

    // Dodanie dodatkowych pól stałych
    $produkt->addChild('producent', 'Candellux');
    $produkt->addChild('marka', 'Candellux');
    $produkt->addChild('kategoria', 'Oświetlenie');
}

fclose($handle);
$xml->asXML('output.xml');

echo "Konwersja zakończona sukcesem. Plik zapisano jako output.xml";
?>
