-- 001 import MySQL 8.4'te VARCHAR(1000) indeksinde durduğu için kalan indeksler.
-- Tekrar çalıştırılabilir; mevcut indeksler atlanır.
USE `raf_gezgini`;

SET @idx := (SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'market_subeleri' AND INDEX_NAME = 'ix_market_subeleri_normalize_adres');
SET @sql := IF(@idx = 0, 'CREATE INDEX `ix_market_subeleri_normalize_adres` ON `market_subeleri` (normalize_acik_adres(768))', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;

SET @idx := (SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'market_subeleri' AND INDEX_NAME = 'ix_market_subeleri_sehir_ilce_mahalle');
SET @sql := IF(@idx = 0, 'CREATE INDEX `ix_market_subeleri_sehir_ilce_mahalle` ON `market_subeleri` (sehir_id, ilce_id, mahalle_id)', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;

SET @idx := (SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'market_subeleri' AND INDEX_NAME = 'ix_market_subeleri_zincir');
SET @sql := IF(@idx = 0, 'CREATE INDEX `ix_market_subeleri_zincir` ON `market_subeleri` (market_zinciri_id, sistem_durumu)', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;

SET @idx := (SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'market_subeleri' AND INDEX_NAME = 'ix_market_subeleri_zincir_il_ilce');
SET @sql := IF(@idx = 0, 'CREATE INDEX `ix_market_subeleri_zincir_il_ilce` ON `market_subeleri` (market_zinciri_id, il, ilce)', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;

SET @idx := (SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'marketler' AND INDEX_NAME = 'ix_market_zincirleri_durum');
SET @sql := IF(@idx = 0, 'CREATE INDEX `ix_market_zincirleri_durum` ON `marketler` (sistem_durumu)', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;

SET @idx := (SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'marketler' AND INDEX_NAME = 'uq_market_zincirleri_kod');
SET @sql := IF(@idx = 0, 'CREATE UNIQUE INDEX `uq_market_zincirleri_kod` ON `marketler` (zincir_kodu)', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;

SET @idx := (SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'sehirler' AND INDEX_NAME = 'ix_sehirler_normalize_ad');
SET @sql := IF(@idx = 0, 'CREATE INDEX `ix_sehirler_normalize_ad` ON `sehirler` (normalize_ad)', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;

SET @idx := (SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'sehirler' AND INDEX_NAME = 'ix_sehirler_ulke');
SET @sql := IF(@idx = 0, 'CREATE INDEX `ix_sehirler_ulke` ON `sehirler` (ulke_id, aktif_mi)', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;

SET @idx := (SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'sube_eslestirme_adaylari' AND INDEX_NAME = 'ix_sube_eslestirme_kaynak_durum');
SET @sql := IF(@idx = 0, 'CREATE INDEX `ix_sube_eslestirme_kaynak_durum` ON `sube_eslestirme_adaylari` (sube_kaynak_kaydi_id, durum)', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;

SET @idx := (SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'sube_eslestirme_adaylari' AND INDEX_NAME = 'ix_sube_eslestirme_puan');
SET @sql := IF(@idx = 0, 'CREATE INDEX `ix_sube_eslestirme_puan` ON `sube_eslestirme_adaylari` (toplam_puan)', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;

SET @idx := (SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'sube_kaynak_kayitlari' AND INDEX_NAME = 'ix_sube_kaynak_normalize_ad');
SET @sql := IF(@idx = 0, 'CREATE INDEX `ix_sube_kaynak_normalize_ad` ON `sube_kaynak_kayitlari` (normalize_sube_adi)', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;

SET @idx := (SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'sube_kaynak_kayitlari' AND INDEX_NAME = 'ix_sube_kaynak_normalize_adres');
SET @sql := IF(@idx = 0, 'CREATE INDEX `ix_sube_kaynak_normalize_adres` ON `sube_kaynak_kayitlari` (normalize_acik_adres(768))', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;

SET @idx := (SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'sube_kaynak_kayitlari' AND INDEX_NAME = 'ix_sube_kaynak_sehir_ilce_mahalle');
SET @sql := IF(@idx = 0, 'CREATE INDEX `ix_sube_kaynak_sehir_ilce_mahalle` ON `sube_kaynak_kayitlari` (sehir_id, ilce_id, mahalle_id)', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;

SET @idx := (SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'sube_kaynak_kayitlari' AND INDEX_NAME = 'ix_sube_kaynak_zincir_durum');
SET @sql := IF(@idx = 0, 'CREATE INDEX `ix_sube_kaynak_zincir_durum` ON `sube_kaynak_kayitlari` (market_zinciri_id, durum)', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;

SET @idx := (SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'ulkeler' AND INDEX_NAME = 'ix_ulkeler_normalize_ad');
SET @sql := IF(@idx = 0, 'CREATE INDEX `ix_ulkeler_normalize_ad` ON `ulkeler` (normalize_ad)', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;

SET @idx := (SELECT COUNT(*) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'urunler' AND INDEX_NAME = 'ix_urunler_arama');
SET @sql := IF(@idx = 0, 'CREATE INDEX `ix_urunler_arama` ON `urunler` (normalize_urun_adi)', 'SELECT 1');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
