<?php
/**
 * Seed Default Marketplace Categories
 * Inserts 20 standard categories for CARGOO with duplicate checks.
 */

declare(strict_types=1);

require_once __DIR__ . '/Database.php';

$db = Database::getInstance();

$categories = [
    [
        'name' => 'อุปกรณ์ไอที & อิเล็กทรอนิกส์',
        'slug' => 'it-electronics',
        'icon' => 'bi-laptop',
        'description' => 'อุปกรณ์อิเล็กทรอนิกส์ สมาร์ทดีไวซ์ และแกดเจ็ตเทคโนโลยี',
    ],
    [
        'name' => 'โทรศัพท์มือถือ & แท็บเล็ต',
        'slug' => 'mobile-tablets',
        'icon' => 'bi-phone',
        'description' => 'สมาร์ทโฟน แท็บเล็ต อุปกรณ์เสริม เคส ฟิล์มกันรอย และสายชาร์จ',
    ],
    [
        'name' => 'คอมพิวเตอร์ & อุปกรณ์เสริม',
        'slug' => 'computers-accessories',
        'icon' => 'bi-pc-display',
        'description' => 'คอมพิวเตอร์ โน้ตบุ๊ก จอมอนิเตอร์ คีย์บอร์ด เม้าส์ และอุปกรณ์จัดเก็บข้อมูล',
    ],
    [
        'name' => 'เครื่องใช้ไฟฟ้า',
        'slug' => 'home-appliances',
        'icon' => 'bi-tv',
        'description' => 'เครื่องใช้ไฟฟ้าภายในบ้าน ตู้เย็น ทีวี แอร์ เครื่องซักผ้า และพัดลม',
    ],
    [
        'name' => 'บ้าน & สวน',
        'slug' => 'home-garden',
        'icon' => 'bi-house-door',
        'description' => 'ของแต่งบ้าน เฟอร์นิเจอร์ เครื่องนอน อุปกรณ์ทำความสะอาด และต้นไม้',
    ],
    [
        'name' => 'แฟชั่น & เครื่องแต่งกาย',
        'slug' => 'fashion-apparel',
        'icon' => 'bi-person-standing',
        'description' => 'เสื้อผ้าแฟชั่น ชาย หญิง และเด็ก ทุกสไตล์',
    ],
    [
        'name' => 'รองเท้า & กระเป๋า',
        'slug' => 'shoes-bags',
        'icon' => 'bi-bag',
        'description' => 'รองเท้าแฟชั่น รองเท้ากีฬา กระเป๋าสะพาย และกระเป๋าเดินทาง',
    ],
    [
        'name' => 'สุขภาพ & ความงาม',
        'slug' => 'health-beauty',
        'icon' => 'bi-heart-pulse',
        'description' => 'สกินแคร์ เครื่องสำอาง อาหารเสริม และอุปกรณ์ดูแลสุขภาพ',
    ],
    [
        'name' => 'อาหาร & เครื่องดื่ม',
        'slug' => 'food-beverages',
        'icon' => 'bi-cup-straw',
        'description' => 'อาหารพร้อมทาน ขนม เครื่องดื่ม ชา กาแฟ และวัตถุดิบปรุงอาหาร',
    ],
    [
        'name' => 'กีฬา & กิจกรรมกลางแจ้ง',
        'slug' => 'sports-outdoors',
        'icon' => 'bi-trophy',
        'description' => 'อุปกรณ์ออกกำลังกาย กีฬา แคมป์ปิ้ง และเดินป่า',
    ],
    [
        'name' => 'รถยนต์ & อุปกรณ์เสริม',
        'slug' => 'automotive-accessories',
        'icon' => 'bi-car-front',
        'description' => 'อะไหล่ยนต์ อุปกรณ์ตกแต่งรถ ยางรถ และน้ำมันเครื่อง',
    ],
    [
        'name' => 'แม่ & เด็ก',
        'slug' => 'mother-baby',
        'icon' => 'bi-balloon',
        'description' => 'สินค้าสำหรับคุณแม่ ของใช้เด็กแรกเกิด นมผง และผ้าอ้อม',
    ],
    [
        'name' => 'สัตว์เลี้ยง',
        'slug' => 'pets',
        'icon' => 'bi-heart',
        'description' => 'อาหารสัตว์เลี้ยง ทรายแมว ของเล่น และอุปกรณ์ดูแลสุนัข แมว',
    ],
    [
        'name' => 'หนังสือ & งานอดิเรก',
        'slug' => 'books-hobbies',
        'icon' => 'bi-book',
        'description' => 'หนังสือนวนิยาย การ์ตูน พัฒนาตนเอง บอร์ดเกม และเครื่องดนตรี',
    ],
    [
        'name' => 'เครื่องมือช่าง & อุตสาหกรรม',
        'slug' => 'tools-industrial',
        'icon' => 'bi-tools',
        'description' => 'เครื่องมือช่าง สว่าน อุปกรณ์ช่าง อุปกรณ์ฮาร์ดแวร์ และเซฟตี้',
    ],
    [
        'name' => 'ของใช้ประจำวัน',
        'slug' => 'daily-essentials',
        'icon' => 'bi-basket',
        'description' => 'สินค้าอุปโภคบริโภค น้ำยาซักผ้า สบู่ ยาสระผม และของใช้ในครัวเรือน',
    ],
    [
        'name' => 'อุปกรณ์สำนักงาน',
        'slug' => 'office-supplies',
        'icon' => 'bi-printer',
        'description' => 'เครื่องเขียน กระดาษ แฟ้มเอกสาร และอุปกรณ์สำนักงานทุกชนิด',
    ],
    [
        'name' => 'งานฝีมือ & Handmade',
        'slug' => 'crafts-handmade',
        'icon' => 'bi-palette',
        'description' => 'งานฝีมือ งานแฮนด์เมด อุปกรณ์เย็บปักถักร้อย และงานศิลปะ',
    ],
    [
        'name' => 'ของสะสม & ของเล่น',
        'slug' => 'collectibles-toys',
        'icon' => 'bi-controller',
        'description' => 'ฟิกเกอร์ โมเดล การ์ดสะสม ตุ๊กตา และของเล่นเสริมพัฒนาการ',
    ],
    [
        'name' => 'บริการ',
        'slug' => 'services',
        'icon' => 'bi-gear',
        'description' => 'บริการทำความสะอาด ซ่อมบำรุง ขนส่ง และบริการอื่นๆ',
    ],
];

echo "====================================================\n";
echo "CARGOO DEFAULT CATEGORIES SEEDER\n";
echo "====================================================\n";

$inserted = 0;
$updated = 0;

$stmtFind = $db->prepare("SELECT id FROM `categories` WHERE `name` = :name OR `slug` = :slug LIMIT 1");
$stmtUpdate = $db->prepare("UPDATE `categories` SET `name` = :name, `slug` = :slug, `icon` = :icon, `description` = :description, `status` = 'active', `level` = 1, `deleted_at` = NULL WHERE `id` = :id");
$stmtInsert = $db->prepare("INSERT INTO `categories` (`name`, `slug`, `icon`, `description`, `status`, `level`, `created_at`, `updated_at`) VALUES (:name, :slug, :icon, :description, 'active', 1, NOW(), NOW())");

foreach ($categories as $index => $cat) {
    $stmtFind->execute([':name' => $cat['name'], ':slug' => $cat['slug']]);
    $existing = $stmtFind->fetch(PDO::FETCH_ASSOC);

    if ($existing) {
        $stmtUpdate->execute([
            ':name' => $cat['name'],
            ':slug' => $cat['slug'],
            ':icon' => $cat['icon'],
            ':description' => $cat['description'],
            ':id' => $existing['id']
        ]);
        echo sprintf("[%2d/20] Updated existing Category ID %2d: %s (%s)\n", $index + 1, $existing['id'], $cat['name'], $cat['slug']);
        $updated++;
    } else {
        $stmtInsert->execute([
            ':name' => $cat['name'],
            ':slug' => $cat['slug'],
            ':icon' => $cat['icon'],
            ':description' => $cat['description']
        ]);
        $newId = $db->lastInsertId();
        echo sprintf("[%2d/20] Inserted new Category ID %2d: %s (%s)\n", $index + 1, $newId, $cat['name'], $cat['slug']);
        $inserted++;
    }
}

echo "----------------------------------------------------\n";
echo "DONE! Inserted: {$inserted}, Updated: {$updated}, Total: 20 Categories\n";
echo "====================================================\n";
