<?php
 require_once "../magic/DataBase.php";

$cities = array(
    "الرياض", "الدرعية", "الخرج", "الأفلاج", "وادي الدواسر", "القويعية", "المزاحمية", "ضرما", "المجمعة", "حوطة بني تميم", "ثادق", "الحريق", "الغاط", "رماح", "ثرمداء", "مرات",
    "مكة المكرمة", "جدة", "الطائف", "القنفذة", "الليث", "رابغ", "خليص", "الخرمة", "رنية", "تربة", "الكامل", "المويه", "ميسان", "أضم", "العرضيات", "بحرة",
   "المدينة المنورة", "ينبع", "العلا", "المهد", "الحناكية", "بدر", "خيبر", "العيص", "وادي الفرع", "مهد الذهب",
    "بريدة", "عنيزة", "الرس", "المذنب", "البكيرية", "البدائع", "الأسياح", "النبهانية", "عيون الجواء", "رياض الخبراء", "عقلة الصقور", "ضرية",
    "الدمام", "الخبر", "الأحساء", "حفر الباطن", "الجبيل", "القطيف", "بقيق", "النعيرية", "قرية العليا", "رأس تنورة", "الخفجي", "العديد", "المركز", "القيصومة", "الجشة", "الخن", "الوسيع",
    "أبها", "خميس مشيط", "بيشة", "النماص", "محايل", "ظهران الجنوب", "تثليث", "سراة عبيدة", "رجال ألمع", "بلقرن", "العرضيات", "بارق", "مجاردة", "البرك", "تنومة", "طريب",
    "تبوك", "الوجه", "ضباء", "تيماء", "أملج", "حقل", "البدع",
    "حائل", "بقعاء", "الغزالة", "الشنان", "الحائط", "السليمي", "موقق", "سميراء",
    "عرعر", "رفحاء", "طريف", "العويقيلة",
    "جازان", "صبيا", "أبو عريش", "صامطة", "بيش", "الدرب", "الحرث", "ضمد", "الريث", "فرسان", "الدائر", "الطوال", "هروب",
    "نجران", "شرورة", "حبونا", "بدر الجنوب", "يدمة", "ثار", "خباش",
    "الباحة", "بلجرشي", "المندق", "المخواة", "قلوة", "العقيق", "القرى", "غامد الزناد", "الحجرة", "بني حسن",
    "سكاكا", "القريات", "دومة الجندل", "طبرجل" );

//
function street($address):string{
    // $address = "جدة حي الروضه شارع سعود الفيصل";
    $streetName = "";
    // Regular expression to extract all words after "شارع" or "ش"
    preg_match('/\b(شارع|ش)\s+([\p{L}\s]+)/u', $address, $matches); 

    if (!empty($matches[2])) {
    // Trim any extra spaces and output the result
    $streetName = trim($matches[2]);
    }
        return $streetName ;
    }

   $dataBase = new DataBase();
   $conn = $dataBase->getConnection();

    $sql = $conn->prepare("SELECT cust_id, address , CityName ,SubDivisionName , StreetName from customers ORDER BY cust_id DESC LIMIT 5001 OFFSET 21000;");
    $sql->execute();
if($sql->rowCount() > 0 ){
    $success = 0 ;
    while($row = $sql->fetch()) {
        $address = $row['address'];
        $cust_id = $row['cust_id'];
        $street =  $address ;

        $address = trim($address);
        // Extract the first word from the input
        $firstWord = strtok($address, ' ');

        // Check if the first word matches any city in the array
        $CityName = "جدة";
    
    if (in_array($firstWord, $cities)) {
        $CityName = $firstWord;
        }

    $SubDivisionName ="";
        preg_match('/\b(حي|حى)\s+(\w+)/u', $address, $matches);
    if (!empty($matches[2])) {
            // Output the extracted district name
            $SubDivisionName = $matches[2];
        } 

        $StreetName = street($address);

        $update = $conn->prepare("UPDATE customers set CityName = ? ,SubDivisionName = ?,StreetName = ?
                            where cust_id = ?");
        $update->bindParam(1,$CityName);
        $update->bindParam(2,$SubDivisionName);
        $update->bindParam(3,$StreetName);
        $update->bindParam(4,$cust_id);
        if($update->execute())
        {
            $success = $success + 1;
        }

        // echo $CityName." ".$SubDivisionName."  ".$StreetName ." " .$address ;
        // echo "<br />";
    }
    echo  $success ;
}

?>