-- Raf Gezgini - zincir taramasinda yeni subeye yazilacak magaza turu
-- MySQL 8 / MariaDB uyumlu, tekrar calistirilabilir, mukerrer kayit uretmez.
-- Codex bu dosyayi calistirmaz; phpMyAdmin'de hedef veritabanini
-- (or. raf_gezgini) secip calistirin.
-- Yabanci anahtar tanimi yoktur.
--
-- magaza_turu, market_subeleri.market_turu ile ayni degerleri kullanir:
--   market, hipermarket, indirim_marketi, bakkal, toptan, diger
-- Yeni kolon ilk eklenirken A101 / BIM / SOK / FILE indirim marketi,
-- diger mevcut kayitlar market olur. Sonraki calistirmalarda bu degerler
-- elle degistirilmis olsa bile tekrar yazilmaz.

SET NAMES utf8mb4;
SET @aktif_veritabani := DATABASE();

SET @magaza_turu_kolonu_var := (
    SELECT COUNT(*)
    FROM information_schema.COLUMNS
    WHERE TABLE_SCHEMA = @aktif_veritabani
      AND TABLE_NAME = 'market_tarama_ayarlari'
      AND COLUMN_NAME = 'magaza_turu'
);

SET @magaza_turu_yeni_eklendi := IF(@magaza_turu_kolonu_var = 0, 1, 0);

SET @magaza_turu_kolonu_sql := IF(
    @magaza_turu_kolonu_var = 0,
    'ALTER TABLE `market_tarama_ayarlari` ADD COLUMN `magaza_turu` VARCHAR(30) NOT NULL DEFAULT ''market'' AFTER `osm_arama_adi`',
    'SELECT ''magaza_turu alani zaten mevcut'' AS bilgi'
);
PREPARE magaza_turu_kolonu_komutu FROM @magaza_turu_kolonu_sql;
EXECUTE magaza_turu_kolonu_komutu;
DEALLOCATE PREPARE magaza_turu_kolonu_komutu;

SET @magaza_turu_kisiti_var := (
    SELECT COUNT(*)
    FROM information_schema.TABLE_CONSTRAINTS
    WHERE TABLE_SCHEMA = @aktif_veritabani
      AND TABLE_NAME = 'market_tarama_ayarlari'
      AND CONSTRAINT_NAME = 'ck_market_tarama_ayarlari_magaza_turu'
);

SET @magaza_turu_kisiti_sql := IF(
    @magaza_turu_kisiti_var = 0,
    'ALTER TABLE `market_tarama_ayarlari` ADD CONSTRAINT `ck_market_tarama_ayarlari_magaza_turu` CHECK (`magaza_turu` IN (''market'', ''hipermarket'', ''indirim_marketi'', ''bakkal'', ''toptan'', ''diger''))',
    'SELECT ''magaza_turu kisiti zaten mevcut'' AS bilgi'
);
PREPARE magaza_turu_kisiti_komutu FROM @magaza_turu_kisiti_sql;
EXECUTE magaza_turu_kisiti_komutu;
DEALLOCATE PREPARE magaza_turu_kisiti_komutu;

START TRANSACTION;

UPDATE `market_tarama_ayarlari`
SET `magaza_turu` = 'indirim_marketi'
WHERE @magaza_turu_yeni_eklendi = 1
  AND `tarama_kodu` IN ('A101', 'BIM', 'SOK', 'FILE');

COMMIT;
