-- Geçici market bildirimlerine fotoğraf bağlanmasını etkinleştirir.
-- MySQL / MariaDB üzerinde kullanıcı tarafından manuel çalıştırılmalıdır.

START TRANSACTION;

ALTER TABLE `market_sube_fotograflari`
    MODIFY COLUMN `market_subesi_id` BIGINT NULL;

ALTER TABLE `market_sube_fotograflari`
    ADD COLUMN IF NOT EXISTS `gecici_market_id` CHAR(36) NULL AFTER `market_subesi_id`;

SET @gecici_market_indeksi_var = (
    SELECT COUNT(*)
    FROM information_schema.statistics
    WHERE table_schema = DATABASE()
      AND table_name = 'market_sube_fotograflari'
      AND index_name = 'ix_market_sube_fotograflari_gecici_market'
);
SET @gecici_market_indeks_sql = IF(
    @gecici_market_indeksi_var = 0,
    'CREATE INDEX `ix_market_sube_fotograflari_gecici_market` ON `market_sube_fotograflari` (`gecici_market_id`, `olusturulma_tarihi`)',
    'SELECT 1'
);
PREPARE gecici_market_indeks_komutu FROM @gecici_market_indeks_sql;
EXECUTE gecici_market_indeks_komutu;
DEALLOCATE PREPARE gecici_market_indeks_komutu;

SET @gecici_market_fk_var = (
    SELECT COUNT(*)
    FROM information_schema.table_constraints
    WHERE constraint_schema = DATABASE()
      AND table_name = 'market_sube_fotograflari'
      AND constraint_name = 'fk_market_sube_fotograflari_gecici_market'
      AND constraint_type = 'FOREIGN KEY'
);
SET @gecici_market_fk_sql = IF(
    @gecici_market_fk_var = 0,
    'ALTER TABLE `market_sube_fotograflari` ADD CONSTRAINT `fk_market_sube_fotograflari_gecici_market` FOREIGN KEY (`gecici_market_id`) REFERENCES `gecici_marketler` (`id`) ON DELETE CASCADE',
    'SELECT 1'
);
PREPARE gecici_market_fk_komutu FROM @gecici_market_fk_sql;
EXECUTE gecici_market_fk_komutu;
DEALLOCATE PREPARE gecici_market_fk_komutu;

COMMIT;
