<?php
declare(strict_types=1);

use App\Core\Database;

return function (Database $db): void {
    $ts = date('Y-m-d H:i:s');

    // ── Helpers ──────────────────────────────────────────────────
    $ensureCategory = function (string $code, string $nameAr, ?int $parentId, int $sortOrder) use ($db, $ts): void {
        $existing = $db->selectOne("SELECT id FROM item_categories WHERE code = ?", [$code]);
        if ($existing) {
            return;
        }
        $db->insert('item_categories', [
            'code'       => $code,
            'name_ar'    => $nameAr,
            'parent_id'  => $parentId,
            'sort_order' => $sortOrder,
            'is_active'  => 1,
            'created_at' => $ts,
            'updated_at' => $ts,
        ]);
    };

    $catId = function (string $code) use ($db): ?int {
        $row = $db->selectOne("SELECT id FROM item_categories WHERE code = ?", [$code]);
        return $row ? (int) ($row->id ?? $row['id']) : null;
    };

    // ── Root categories ─────────────────────────────────────────
    $ensureCategory('sports_equipment', 'معدات رياضية',       null, 1);
    $ensureCategory('food_beverages',   'مأكولات ومشروبات',   null, 2);
    $ensureCategory('sportswear',       'ملابس رياضية',       null, 3);
    $ensureCategory('medical_supplies', 'مستلزمات طبية',      null, 4);
    $ensureCategory('furniture',        'أثاث ومفروشات',      null, 5);
    $ensureCategory('stationery',       'قرطاسية',            null, 6);
    $ensureCategory('maintenance',      'صيانة',              null, 7);
    $ensureCategory('other',            'أخرى',               null, 8);

    // ── Child categories — Sports Equipment ─────────────────────
    $sportsId = $catId('sports_equipment');
    $ensureCategory('gym_machines',   'أجهزة جيم',      $sportsId, 1);
    $ensureCategory('balls',          'كرات',           $sportsId, 2);
    $ensureCategory('training_tools', 'أدوات تدريب',    $sportsId, 3);

    // ── Child categories — Food & Beverages ─────────────────────
    $foodId = $catId('food_beverages');
    $ensureCategory('beverages',   'مشروبات',          $foodId, 1);
    $ensureCategory('snacks',      'وجبات خفيفة',      $foodId, 2);
    $ensureCategory('supplements', 'مكملات غذائية',    $foodId, 3);

    // ── Child categories — Sportswear ───────────────────────────
    $sportswearId = $catId('sportswear');
    $ensureCategory('uniforms', 'يونيفورم', $sportswearId, 1);
};
