-- Raf Gezgini - OSM konum taramasina acilan zincir market adlari
-- MySQL 8.0+ icindir. Codex bu dosyayi calistirmaz; yonetici manuel uygular.
-- Tekrar calistirilabilir, transaction kullanir, mukerrer kayit uretmez.
-- Yabanci anahtar tanimi yoktur; market_id uygulama katmaninda marketler.id ile eslesir.

USE `raf_gezgini`;

START TRANSACTION;

CREATE TABLE IF NOT EXISTS `market_tarama_ayarlari` (
    `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    `market_id` BIGINT NOT NULL,
    `tarama_kodu` VARCHAR(20) NOT NULL,
    `gosterim_adi` VARCHAR(180) NOT NULL,
    `osm_arama_adi` VARCHAR(180) NOT NULL,
    `sira_no` SMALLINT UNSIGNED NOT NULL DEFAULT 100,
    `sistem_durumu` VARCHAR(20) NOT NULL DEFAULT 'aktif',
    `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
    `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
    `silinme_tarihi` DATETIME(6) NULL,
    PRIMARY KEY (`id`),
    UNIQUE KEY `uq_market_tarama_ayarlari_kod` (`tarama_kodu`),
    UNIQUE KEY `uq_market_tarama_ayarlari_market` (`market_id`),
    KEY `ix_market_tarama_ayarlari_durum_sira` (`sistem_durumu`, `sira_no`),
    CONSTRAINT `ck_market_tarama_ayarlari_durum` CHECK (`sistem_durumu` IN ('aktif', 'pasif', 'arsivlendi'))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- Happy Center su ana kadar yalnizca bagimsiz sube olarak duruyordu.
INSERT INTO `marketler` (
    `market_adi`,
    `normalize_market_adi`,
    `ticari_unvan`,
    `market_kodu`,
    `market_olcegi`,
    `sistem_durumu`
)
SELECT
    'Happy Center',
    'happy-center',
    NULL,
    'HPC',
    'zincir',
    'aktif'
WHERE NOT EXISTS (
    SELECT 1
    FROM `marketler` AS m
    WHERE m.`market_kodu` = 'HPC'
);

INSERT INTO `market_tarama_ayarlari` (
    `market_id`,
    `tarama_kodu`,
    `gosterim_adi`,
    `osm_arama_adi`,
    `sira_no`,
    `sistem_durumu`
)
SELECT m.`id`, 'A101', 'A101', 'A101', 10, 'aktif'
FROM `marketler` AS m
WHERE m.`market_kodu` = 'A101'
  AND m.`silinme_tarihi` IS NULL
  AND NOT EXISTS (
      SELECT 1 FROM `market_tarama_ayarlari` AS t WHERE t.`tarama_kodu` = 'A101'
  );

INSERT INTO `market_tarama_ayarlari` (
    `market_id`, `tarama_kodu`, `gosterim_adi`, `osm_arama_adi`, `sira_no`, `sistem_durumu`
)
SELECT m.`id`, 'BIM', 'BİM', 'BİM', 20, 'aktif'
FROM `marketler` AS m
WHERE m.`market_kodu` = 'BIM'
  AND m.`silinme_tarihi` IS NULL
  AND NOT EXISTS (
      SELECT 1 FROM `market_tarama_ayarlari` AS t WHERE t.`tarama_kodu` = 'BIM'
  );

INSERT INTO `market_tarama_ayarlari` (
    `market_id`, `tarama_kodu`, `gosterim_adi`, `osm_arama_adi`, `sira_no`, `sistem_durumu`
)
SELECT m.`id`, 'SOK', 'ŞOK', 'ŞOK', 30, 'aktif'
FROM `marketler` AS m
WHERE m.`market_kodu` = 'SOK'
  AND m.`silinme_tarihi` IS NULL
  AND NOT EXISTS (
      SELECT 1 FROM `market_tarama_ayarlari` AS t WHERE t.`tarama_kodu` = 'SOK'
  );

INSERT INTO `market_tarama_ayarlari` (
    `market_id`, `tarama_kodu`, `gosterim_adi`, `osm_arama_adi`, `sira_no`, `sistem_durumu`
)
SELECT m.`id`, 'MIG', 'Migros', 'Migros', 40, 'aktif'
FROM `marketler` AS m
WHERE m.`market_kodu` = 'MIG'
  AND m.`silinme_tarihi` IS NULL
  AND NOT EXISTS (
      SELECT 1 FROM `market_tarama_ayarlari` AS t WHERE t.`tarama_kodu` = 'MIG'
  );

INSERT INTO `market_tarama_ayarlari` (
    `market_id`, `tarama_kodu`, `gosterim_adi`, `osm_arama_adi`, `sira_no`, `sistem_durumu`
)
SELECT m.`id`, 'CRF', 'CarrefourSA', 'Carrefour', 50, 'aktif'
FROM `marketler` AS m
WHERE m.`market_kodu` = 'CRF'
  AND m.`silinme_tarihi` IS NULL
  AND NOT EXISTS (
      SELECT 1 FROM `market_tarama_ayarlari` AS t WHERE t.`tarama_kodu` = 'CRF'
  );

INSERT INTO `market_tarama_ayarlari` (
    `market_id`, `tarama_kodu`, `gosterim_adi`, `osm_arama_adi`, `sira_no`, `sistem_durumu`
)
SELECT m.`id`, 'ONR', 'Onur Market', 'Onur', 60, 'aktif'
FROM `marketler` AS m
WHERE m.`market_kodu` = 'ONR'
  AND m.`silinme_tarihi` IS NULL
  AND NOT EXISTS (
      SELECT 1 FROM `market_tarama_ayarlari` AS t WHERE t.`tarama_kodu` = 'ONR'
  );

INSERT INTO `market_tarama_ayarlari` (
    `market_id`, `tarama_kodu`, `gosterim_adi`, `osm_arama_adi`, `sira_no`, `sistem_durumu`
)
SELECT m.`id`, 'HPC', 'Happy Center', 'Happy Center', 70, 'aktif'
FROM `marketler` AS m
WHERE m.`market_kodu` = 'HPC'
  AND m.`silinme_tarihi` IS NULL
  AND NOT EXISTS (
      SELECT 1 FROM `market_tarama_ayarlari` AS t WHERE t.`tarama_kodu` = 'HPC'
  );

INSERT INTO `market_tarama_ayarlari` (
    `market_id`, `tarama_kodu`, `gosterim_adi`, `osm_arama_adi`, `sira_no`, `sistem_durumu`
)
SELECT m.`id`, 'FILE', 'File Market', 'File', 80, 'aktif'
FROM `marketler` AS m
WHERE m.`market_kodu` = 'FILE'
  AND m.`silinme_tarihi` IS NULL
  AND NOT EXISTS (
      SELECT 1 FROM `market_tarama_ayarlari` AS t WHERE t.`tarama_kodu` = 'FILE'
  );

INSERT INTO `market_tarama_ayarlari` (
    `market_id`, `tarama_kodu`, `gosterim_adi`, `osm_arama_adi`, `sira_no`, `sistem_durumu`
)
SELECT m.`id`, 'TKK', 'Tarım Kredi', 'Tarım Kredi', 90, 'aktif'
FROM `marketler` AS m
WHERE m.`market_kodu` = 'TKK'
  AND m.`silinme_tarihi` IS NULL
  AND NOT EXISTS (
      SELECT 1 FROM `market_tarama_ayarlari` AS t WHERE t.`tarama_kodu` = 'TKK'
  );

COMMIT;
