<?php
    class MapsHelper
    {
        public static function TrimIDMapsData($mapsFeatures){
            $result = [];

            foreach ($mapsFeatures as $feature ) {
                $feature['properties']['ADM1_PCODE'] = str_replace('ID', '', $feature['properties']['ADM1_PCODE']);

                if(array_key_exists('ADM2_PCODE', $feature['properties'])) {
                    $feature['properties']['ADM2_PCODE'] = str_replace('ID', '', $feature['properties']['ADM2_PCODE']);
                }

                $result[] = $feature;
            }
            return $result;
        }

        public static function ConvertNewModelToGeneral($mapsFeatures){
            $results = [];

            foreach ($mapsFeatures as $feature ) {
                $feature['properties']['ADM1_PCODE'] = str_replace('ID', '', $feature['properties']['ADM1_PCODE']);

                if(array_key_exists('ADM2_PCODE', $feature['properties'])) {
                   $feature['properties']['ADM2_PCODE'] = str_replace('ID', '', $feature['properties']['ADM2_PCODE']);
                }

                $result = [];
                $result['type'] = $feature['type'];
                $result['geometry'] = $feature['geometry'];
                $result['properties'] = [];
                $result['properties']['A1NAME'] = $feature['properties']['ADM1_EN'];
                $result['properties']['A1CODE'] = intval(str_replace('ID', '', $feature['properties']['ADM1_PCODE']));
                $result['properties']['A1KPKNAME'] = strtoupper($feature['properties']['ADM1_EN']);
                //Add Special Treatment for DIY
                // if($result['properties']['A1CODE'] == 34) {
                //     $result['properties']['A1KPKNAME'] = 'DI YOGYAKARTA';
                // }
                
                if(array_key_exists('ADM2_PCODE', $feature['properties'])) {
                    $result['properties']['A2NAME'] = $feature['properties']['ADM2_EN'];
                    $result['properties']['A2CODE'] = intval(str_replace('ID', '', $feature['properties']['ADM2_PCODE']));
                    $result['properties']['A2KPKNAME'] = strtoupper($feature['properties']['ADM2_EN']);
                    $result['properties']['A2TEXT'] = intval(str_replace('ID', '', $feature['properties']['ADM2_PCODE']));
                    $result['properties']['TYPE'] = '';
                }
                else {
                    $result['properties']['Shape_Leng'] = $feature['properties']['Shape_Leng'];
                    $result['properties']['Shape_Area'] = $feature['properties']['Shape_Area'];
                }

                $results[] = $result;
            }
            return $results;
        }
    }
