const norm=value=>String(value || '').normalize('NFC').trim().toLocaleUpperCase('tr-TR'); export const REGION_CITIES={ 'MARMARA BÖLGESİ':'Balıkesir,Bilecik,Bursa,Çanakkale,Edirne,İstanbul,Kırklareli,Kocaeli,Sakarya,Tekirdağ,Yalova', 'EGE BÖLGESİ':'Afyonkarahisar,Aydın,Denizli,İzmir,Kütahya,Manisa,Muğla,Uşak', 'AKDENİZ BÖLGESİ':'Adana,Antalya,Burdur,Hatay,Isparta,Kahramanmaraş,Mersin,Osmaniye', 'İÇ ANADOLU BÖLGESİ':'Aksaray,Ankara,Çankırı,Eskişehir,Karaman,Kayseri,Kırıkkale,Kırşehir,Konya,Nevşehir,Niğde,Sivas,Yozgat', 'KARADENİZ BÖLGESİ':'Amasya,Artvin,Bartın,Bayburt,Bolu,Çorum,Düzce,Giresun,Gümüşhane,Karabük,Kastamonu,Ordu,Rize,Samsun,Sinop,Tokat,Trabzon,Zonguldak', 'DOĞU ANADOLU BÖLGESİ':'Ağrı,Ardahan,Bingöl,Bitlis,Elazığ,Erzincan,Erzurum,Hakkari,Iğdır,Kars,Malatya,Muş,Tunceli,Van', 'GÜNEYDOĞU ANADOLU BÖLGESİ':'Adıyaman,Batman,Diyarbakır,Gaziantep,Kilis,Mardin,Siirt,Şanlıurfa,Şırnak', }; const cityRegions=new Map(Object.entries(REGION_CITIES).flatMap(([region,cities])=>cities.split(',').map(city=>[norm(city),region]))); export function matchesRegion(tender,region){return !region || cityRegions.get(norm(tender.sehir))===norm(region);} export function matchesProcurement(tender,procedure){return !procedure || [tender.usul,tender.ihaleUsulu,tender.alimTuru].some(value=>norm(value)===norm(procedure));} export function savedFilterCriteria(filter){ const read=key=>{if(filter[key]!=null&&typeof filter[key]!=='string')throw new Error('Kayıtlı filtre ölçütü geçersiz.');return (filter[key] || '').trim();}; const region=read('bolge'); if(region&&!Object.keys(REGION_CITIES).includes(norm(region)))throw new Error('Kayıtlı bölge tanınmadı; filtreyi yeniden düzenleyin.'); return {city:read('sehir'),region:region?norm(region):'',sector:read('sektor'),institution:read('kurumTipi'),procedure:read('usul')}; }