-- PostgreSQL raf_gezgini semasinin MySQL 8.0 donusumu.
-- Bu betik yabanci anahtar (FOREIGN KEY) olusturmaz.
-- Anlik goruntu: 2026-08-18 12:57:59 +02:00
-- Not: PostgreSQL point alanlari, koordinat metnini kaybetmemek icin VARCHAR(100) olarak saklanir.
SET NAMES utf8mb4;
SET time_zone = '+03:00';
CREATE DATABASE IF NOT EXISTS `raf_gezgini` CHARACTER SET utf8mb4 COLLATE utf8mb4_turkish_ci;
USE `raf_gezgini`;

CREATE TABLE IF NOT EXISTS `alisveris_listeleri` (
  `id` CHAR(36) NOT NULL,
  `hane_id` CHAR(36) NOT NULL,
  `liste_adi` VARCHAR(120) NOT NULL DEFAULT 'Ortak Alışveriş Listesi',
  `liste_durumu` VARCHAR(20) NOT NULL DEFAULT 'aktif',
  `olusturan_kullanici_id` CHAR(36) NOT NULL,
  `tamamlayan_kullanici_id` CHAR(36),
  `tamamlanma_tarihi` DATETIME(6),
  `kayit_surumu` INT NOT NULL DEFAULT 1,
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `silinme_tarihi` DATETIME(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `alisveris_listesi_urunleri` (
  `id` CHAR(36) NOT NULL,
  `alisveris_listesi_id` CHAR(36) NOT NULL,
  `urun_id` BIGINT,
  `urun_adi_anlik` VARCHAR(250) NOT NULL,
  `miktar` DECIMAL(14,4) NOT NULL DEFAULT 1,
  `olcu_birimi_id` BIGINT,
  `kullanici_notu` VARCHAR(500),
  `oncelik` VARCHAR(20) NOT NULL DEFAULT 'normal',
  `urun_durumu` VARCHAR(20) NOT NULL DEFAULT 'bekliyor',
  `ekleyen_kullanici_id` CHAR(36) NOT NULL,
  `alan_kullanici_id` CHAR(36),
  `alinma_tarihi` DATETIME(6),
  `kayit_surumu` INT NOT NULL DEFAULT 1,
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `alisveris_oturumlari` (
  `id` CHAR(36) NOT NULL,
  `kullanici_id` CHAR(36) NOT NULL,
  `kullanici_cihazi_id` CHAR(36) NOT NULL,
  `market_subesi_id` BIGINT,
  `gecici_market_id` CHAR(36),
  `oturum_durumu` VARCHAR(30) NOT NULL DEFAULT 'aktif',
  `para_birimi_kodu` VARCHAR(3) NOT NULL,
  `tahmini_ara_toplam` DECIMAL(14,2) NOT NULL DEFAULT 0,
  `tahmini_indirim_toplami` DECIMAL(14,2) NOT NULL DEFAULT 0,
  `tahmini_genel_toplam` DECIMAL(14,2) NOT NULL DEFAULT 0,
  `kasa_toplami` DECIMAL(14,2),
  `fark_tutari` DECIMAL(14,2),
  `kayit_surumu` INT NOT NULL DEFAULT 1,
  `baslangic_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `bitis_tarihi` DATETIME(6),
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `kaynak_alisveris_listesi_id` CHAR(36),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `alisveris_oturumu_hareketleri` (
  `id` BIGINT AUTO_INCREMENT NOT NULL,
  `alisveris_oturumu_id` CHAR(36) NOT NULL,
  `alisveris_oturumu_urunu_id` CHAR(36),
  `kullanici_id` CHAR(36) NOT NULL,
  `kullanici_cihazi_id` CHAR(36) NOT NULL,
  `islem_uuid` CHAR(36) NOT NULL,
  `islem_turu` VARCHAR(40) NOT NULL,
  `onceki_veri` JSON,
  `yeni_veri` JSON,
  `islem_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `alisveris_oturumu_urunleri` (
  `id` CHAR(36) NOT NULL,
  `alisveris_oturumu_id` CHAR(36) NOT NULL,
  `urun_id` BIGINT,
  `okutulan_barkod` VARCHAR(64),
  `urun_adi_anlik` VARCHAR(250) NOT NULL,
  `miktar` DECIMAL(14,4) NOT NULL DEFAULT 1,
  `olcu_birimi_id` BIGINT,
  `raf_birim_fiyati` DECIMAL(14,4),
  `beklenen_satir_toplami` DECIMAL(14,2) NOT NULL DEFAULT 0,
  `uygulanan_indirim` DECIMAL(14,2) NOT NULL DEFAULT 0,
  `kasa_birim_fiyati` DECIMAL(14,4),
  `kasa_satir_toplami` DECIMAL(14,2),
  `fiyat_farki` DECIMAL(14,2),
  `urun_durumu` VARCHAR(30) NOT NULL DEFAULT 'sepette',
  `kayit_surumu` INT NOT NULL DEFAULT 1,
  `ekleyen_kullanici_id` CHAR(36) NOT NULL,
  `eklenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `iptal_edilme_tarihi` DATETIME(6),
  `kaynak_alisveris_listesi_urun_id` CHAR(36),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `barkod_cozumleme_profilleri` (
  `id` BIGINT AUTO_INCREMENT NOT NULL,
  `market_zinciri_id` BIGINT,
  `profil_adi` VARCHAR(150) NOT NULL,
  `profil_surumu` INT NOT NULL DEFAULT 1,
  `barkod_uzunlugu` SMALLINT NOT NULL,
  `kontrol_hanesi_turu` VARCHAR(30) NOT NULL DEFAULT 'ean_13',
  `gecerlilik_baslangici` DATE,
  `gecerlilik_bitisi` DATE,
  `profil_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),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `degisken_barkod_kurallari` (
  `id` BIGINT AUTO_INCREMENT NOT NULL,
  `barkod_cozumleme_profili_id` BIGINT NOT NULL,
  `alan_turu` VARCHAR(30) NOT NULL,
  `baslangic_konumu` SMALLINT NOT NULL,
  `alan_uzunlugu` SMALLINT NOT NULL,
  `ondalik_basamak` SMALLINT NOT NULL DEFAULT 0,
  `sabit_deger` VARCHAR(64),
  `siralama` SMALLINT NOT NULL DEFAULT 0,
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `denetim_kayitlari` (
  `id` BIGINT AUTO_INCREMENT NOT NULL,
  `kullanici_id` CHAR(36),
  `kullanici_cihazi_id` CHAR(36),
  `islem_turu` VARCHAR(60) NOT NULL,
  `tablo_adi` VARCHAR(120) NOT NULL,
  `kayit_kimligi` VARCHAR(80) NOT NULL,
  `onceki_veri` JSON,
  `yeni_veri` JSON,
  `ip_adresi` VARCHAR(45),
  `aciklama` LONGTEXT,
  `islem_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `esitleme_islemleri` (
  `id` BIGINT AUTO_INCREMENT NOT NULL,
  `islem_uuid` CHAR(36) NOT NULL,
  `kullanici_id` CHAR(36) NOT NULL,
  `kullanici_cihazi_id` CHAR(36) NOT NULL,
  `kayit_turu` VARCHAR(60) NOT NULL,
  `kayit_uuid` CHAR(36),
  `kayit_sayisal_id` BIGINT,
  `islem_turu` VARCHAR(30) NOT NULL,
  `beklenen_kayit_surumu` INT,
  `istek_verisi` JSON NOT NULL,
  `istemci_islem_tarihi` DATETIME(6) NOT NULL,
  `sunucu_islem_tarihi` DATETIME(6),
  `islem_durumu` VARCHAR(20) NOT NULL DEFAULT 'beklemede',
  `hata_kodu` VARCHAR(80),
  `hata_aciklamasi` LONGTEXT,
  `sonuc_verisi` JSON,
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `tamamlanma_tarihi` DATETIME(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `fiyat_dogrulamalari` (
  `id` CHAR(36) NOT NULL,
  `fiyat_gozlemi_id` CHAR(36) NOT NULL,
  `kullanici_id` CHAR(36) NOT NULL,
  `dogrulama_turu` VARCHAR(10) NOT NULL,
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `fiyat_gozlemleri` (
  `id` CHAR(36) NOT NULL,
  `urun_id` BIGINT NOT NULL,
  `market_subesi_id` BIGINT NOT NULL,
  `alisveris_oturumu_urunu_id` CHAR(36),
  `fiyat` DECIMAL(14,4) NOT NULL,
  `para_birimi_kodu` VARCHAR(3) NOT NULL,
  `gozlem_tarihi` DATETIME(6) NOT NULL,
  `gecerlilik_baslangici` DATETIME(6),
  `gecerlilik_bitisi` DATETIME(6),
  `fiyat_kaynagi` VARCHAR(30) NOT NULL,
  `kaynak_kullanici_id` CHAR(36),
  `kampanyali_mi` TINYINT(1) NOT NULL DEFAULT false,
  `kampanya_aciklamasi` LONGTEXT,
  `guven_puani` DECIMAL(5,2) NOT NULL DEFAULT 0,
  `dogrulama_durumu` VARCHAR(20) NOT NULL DEFAULT 'beklemede',
  `gecersiz_kilma_nedeni` LONGTEXT,
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `gecici_marketler` (
  `id` CHAR(36) NOT NULL,
  `olusturan_kullanici_id` CHAR(36) NOT NULL,
  `market_adi` VARCHAR(180) NOT NULL,
  `acik_adres` LONGTEXT,
  `konum` VARCHAR(100),
  `kullanici_notu` LONGTEXT,
  `eslesen_market_subesi_id` BIGINT,
  `eslestirme_durumu` VARCHAR(20) NOT NULL DEFAULT 'beklemede',
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `guncel_urun_fiyatlari` (
  `urun_id` BIGINT NOT NULL,
  `market_subesi_id` BIGINT NOT NULL,
  `fiyat_gozlemi_id` CHAR(36) NOT NULL,
  `guven_puani` DECIMAL(5,2) NOT NULL,
  `son_dogrulama_tarihi` DATETIME(6),
  `fiyat_durumu` VARCHAR(20) NOT NULL DEFAULT 'aktif',
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  PRIMARY KEY (`urun_id`, `market_subesi_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `hane_davetleri` (
  `id` CHAR(36) NOT NULL,
  `hane_id` CHAR(36) NOT NULL,
  `davet_kodu` VARCHAR(12) NOT NULL,
  `davet_eden_kullanici_id` CHAR(36) NOT NULL,
  `kabul_eden_kullanici_id` CHAR(36),
  `davet_durumu` VARCHAR(20) NOT NULL DEFAULT 'beklemede',
  `son_gecerlilik_tarihi` DATETIME(6) NOT NULL DEFAULT DATE_ADD(CURRENT_TIMESTAMP(6), INTERVAL 2 DAY),
  `kabul_tarihi` DATETIME(6),
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `hane_mesaj_durumlari` (
  `id` CHAR(36) NOT NULL,
  `hane_id` CHAR(36) NOT NULL,
  `hane_uyesi_id` CHAR(36) NOT NULL,
  `son_okunan_hane_mesaji_id` CHAR(36),
  `son_mesaj_okuma_tarihi` DATETIME(6),
  `bildirim_sessiz_mi` TINYINT(1) NOT NULL DEFAULT false,
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `hane_mesaj_resimleri` (
  `id` CHAR(36) NOT NULL,
  `yukleme_uuid` CHAR(36) NOT NULL,
  `hane_id` CHAR(36) NOT NULL,
  `yukleyen_hane_uyesi_id` CHAR(36) NOT NULL,
  `hane_mesaji_id` CHAR(36),
  `disk` VARCHAR(60) NOT NULL,
  `depolama_yolu` VARCHAR(500) NOT NULL,
  `islenmis_dosya_yolu` VARCHAR(500),
  `kucuk_resim_yolu` VARCHAR(500),
  `orijinal_ad` VARCHAR(255) NOT NULL,
  `mime_turu` VARCHAR(100) NOT NULL,
  `uzanti` VARCHAR(10) NOT NULL,
  `boyut_bayt` BIGINT NOT NULL,
  `genislik` INT NOT NULL,
  `yukseklik` INT NOT NULL,
  `sha256` VARCHAR(64) NOT NULL,
  `tarama_durumu` VARCHAR(20) NOT NULL DEFAULT 'bekliyor',
  `gecici_mi` TINYINT(1) NOT NULL DEFAULT true,
  `son_kullanma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `mesaja_baglanma_tarihi` DATETIME(6),
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `hane_mesajlari` (
  `id` CHAR(36) NOT NULL,
  `hane_id` CHAR(36) NOT NULL,
  `gonderen_hane_uyesi_id` CHAR(36),
  `istemci_mesaj_uuid` CHAR(36) NOT NULL,
  `mesaj_turu` VARCHAR(30) NOT NULL,
  `icerik` LONGTEXT,
  `alisveris_listesi_id` CHAR(36),
  `liste_urunu_id` CHAR(36),
  `yanitlanan_mesaj_id` CHAR(36),
  `baglanti_url` LONGTEXT,
  `baglanti_alan_adi` VARCHAR(253),
  `liste_adi_anlik` VARCHAR(200),
  `listeyi_olusturan_anlik` VARCHAR(160),
  `liste_urun_sayisi_anlik` INT,
  `duzenlenme_tarihi` DATETIME(6),
  `silinme_tarihi` DATETIME(6),
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `hane_uyeleri` (
  `id` CHAR(36) NOT NULL,
  `hane_id` CHAR(36) NOT NULL,
  `kullanici_id` CHAR(36) NOT NULL,
  `uye_rolu` VARCHAR(20) NOT NULL DEFAULT 'uye',
  `uyelik_durumu` VARCHAR(20) NOT NULL DEFAULT 'aktif',
  `katilma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `ayrilma_tarihi` DATETIME(6),
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `haneler` (
  `id` CHAR(36) NOT NULL,
  `hane_adi` VARCHAR(120) NOT NULL,
  `olusturan_kullanici_id` CHAR(36) NOT NULL,
  `hane_durumu` VARCHAR(20) NOT NULL DEFAULT 'aktif',
  `kayit_surumu` INT NOT NULL DEFAULT 1,
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `silinme_tarihi` DATETIME(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `ilceler` (
  `id` INT AUTO_INCREMENT NOT NULL,
  `sehir_id` INT NOT NULL,
  `ad` VARCHAR(128) NOT NULL,
  `normalize_ad` VARCHAR(128) NOT NULL,
  `aktif_mi` TINYINT(1) NOT NULL DEFAULT true,
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `kullanici_cihazlari` (
  `id` CHAR(36) NOT NULL,
  `kullanici_id` CHAR(36) NOT NULL,
  `cihaz_uuid` CHAR(36) NOT NULL,
  `cihaz_adi` VARCHAR(150),
  `cihaz_turu` VARCHAR(20) NOT NULL,
  `isletim_sistemi` VARCHAR(40),
  `isletim_sistemi_surumu` VARCHAR(40),
  `uygulama_surumu` VARCHAR(40),
  `bildirim_anahtari` LONGTEXT,
  `son_giris_tarihi` DATETIME(6),
  `son_esitleme_tarihi` DATETIME(6),
  `cihaz_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),
  `iptal_edilme_tarihi` DATETIME(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `kullanici_oturumlari` (
  `id` CHAR(36) NOT NULL,
  `kullanici_id` CHAR(36) NOT NULL,
  `kullanici_cihazi_id` CHAR(36) NOT NULL,
  `anahtar_ozeti` VARCHAR(255) NOT NULL,
  `ip_adresi` VARCHAR(45),
  `son_kullanim_tarihi` DATETIME(6),
  `son_gecerlilik_tarihi` DATETIME(6),
  `oturum_durumu` VARCHAR(20) NOT NULL DEFAULT 'aktif',
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `iptal_edilme_tarihi` DATETIME(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `kullanicilar` (
  `id` CHAR(36) NOT NULL,
  `ad` VARCHAR(80) NOT NULL,
  `soyad` VARCHAR(80),
  `telefon_normalize` VARCHAR(20),
  `eposta_normalize` VARCHAR(254),
  `sifre_ozeti` VARCHAR(255) NOT NULL,
  `telefon_dogrulandi_mi` TINYINT(1) NOT NULL DEFAULT false,
  `eposta_dogrulandi_mi` TINYINT(1) NOT NULL DEFAULT false,
  `hesap_durumu` VARCHAR(20) NOT NULL DEFAULT 'aktif',
  `son_giris_tarihi` DATETIME(6),
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `silinme_tarihi` DATETIME(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `mahalleler` (
  `id` INT AUTO_INCREMENT NOT NULL,
  `sehir_id` INT NOT NULL,
  `ilce_id` INT NOT NULL,
  `ad` VARCHAR(150) NOT NULL,
  `normalize_ad` VARCHAR(150) NOT NULL,
  `posta_kodu` VARCHAR(10) NOT NULL,
  `kaynak_semt_id` INT,
  `aktif_mi` TINYINT(1) NOT NULL DEFAULT true,
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `markalar` (
  `id` BIGINT AUTO_INCREMENT NOT NULL,
  `marka_adi` VARCHAR(150) NOT NULL,
  `normalize_marka_adi` VARCHAR(150) NOT NULL,
  `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),
  `silinme_tarihi` DATETIME(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `market_sube_fotograflari` (
  `id` BIGINT AUTO_INCREMENT NOT NULL,
  `market_subesi_id` BIGINT NOT NULL,
  `url` VARCHAR(1000) NOT NULL,
  `aciklama` VARCHAR(250),
  `ana_fotograf_mi` TINYINT(1) NOT NULL DEFAULT false,
  `kaynak` VARCHAR(100),
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `market_subeleri` (
  `id` BIGINT AUTO_INCREMENT NOT NULL,
  `market_zinciri_id` BIGINT,
  `sube_adi` VARCHAR(180) NOT NULL,
  `normalize_sube_adi` VARCHAR(180) NOT NULL,
  `telefon` VARCHAR(30),
  `acik_adres` LONGTEXT,
  `konum` VARCHAR(100),
  `market_turu` VARCHAR(30) NOT NULL DEFAULT 'market',
  `dogrulama_durumu` VARCHAR(20) NOT NULL DEFAULT 'beklemede',
  `sistem_durumu` VARCHAR(20) NOT NULL DEFAULT 'aktif',
  `ekleyen_kullanici_id` CHAR(36),
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `silinme_tarihi` DATETIME(6),
  `sube_kodu` VARCHAR(100),
  `normalize_acik_adres` VARCHAR(1000),
  `il` VARCHAR(100),
  `ilce` VARCHAR(100),
  `posta_kodu` VARCHAR(20),
  `sehir_id` INT,
  `ilce_id` INT,
  `mahalle_id` INT,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `market_urun_kodlari` (
  `id` BIGINT AUTO_INCREMENT NOT NULL,
  `market_zinciri_id` BIGINT NOT NULL,
  `barkod_cozumleme_profili_id` BIGINT,
  `market_urun_kodu` VARCHAR(64) NOT NULL,
  `urun_id` BIGINT NOT NULL,
  `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),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `market_zincirleri` (
  `id` BIGINT AUTO_INCREMENT NOT NULL,
  `zincir_adi` VARCHAR(180) NOT NULL,
  `normalize_zincir_adi` VARCHAR(180) NOT NULL,
  `ticari_unvan` VARCHAR(250),
  `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),
  `silinme_tarihi` DATETIME(6),
  `zincir_kodu` VARCHAR(20) NOT NULL,
  `zincir_turu` VARCHAR(40) NOT NULL DEFAULT 'zincir',
  `logo_url` VARCHAR(500),
  `marka_rengi` VARCHAR(7),
  `web_adresi` VARCHAR(500),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `olcu_birimleri` (
  `id` BIGINT AUTO_INCREMENT NOT NULL,
  `olcu_birimi_kodu` VARCHAR(30) NOT NULL,
  `olcu_birimi_adi` VARCHAR(80) NOT NULL,
  `fiziksel_buyukluk_turu` VARCHAR(30) NOT NULL,
  `temel_birim_mi` TINYINT(1) NOT NULL DEFAULT false,
  `temel_birime_katsayi` DECIMAL(20,8) NOT NULL DEFAULT 1,
  `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),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `para_birimleri` (
  `kod` VARCHAR(3) NOT NULL,
  `para_birimi_adi` VARCHAR(80) NOT NULL,
  `sembol` VARCHAR(8) NOT NULL,
  `ondalik_basamak` SMALLINT NOT NULL DEFAULT 2,
  `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),
  PRIMARY KEY (`kod`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `password_reset_tokens` (
  `email` VARCHAR(255) NOT NULL,
  `token` VARCHAR(255) NOT NULL,
  `created_at` DATETIME(6),
  PRIMARY KEY (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `sehirler` (
  `id` INT AUTO_INCREMENT NOT NULL,
  `ulke_id` INT,
  `ad` VARCHAR(128) NOT NULL,
  `normalize_ad` VARCHAR(128) NOT NULL,
  `plaka_kodu` INT,
  `telefon_alan_kodu` INT,
  `aktif_mi` TINYINT(1) NOT NULL DEFAULT true,
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `sube_eslestirme_adaylari` (
  `id` BIGINT AUTO_INCREMENT NOT NULL,
  `sube_kaynak_kaydi_id` BIGINT NOT NULL,
  `market_subesi_id` BIGINT NOT NULL,
  `ad_benzerlik_puani` DECIMAL(5,2) NOT NULL,
  `adres_benzerlik_puani` DECIMAL(5,2) NOT NULL,
  `konum_mesafesi_metre` DECIMAL(12,2),
  `toplam_puan` DECIMAL(5,2) NOT NULL,
  `durum` VARCHAR(20) NOT NULL DEFAULT 'bekliyor',
  `inceleyen_kullanici_id` BIGINT,
  `incelenme_tarihi` DATETIME(6),
  `inceleme_notu` VARCHAR(500),
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `sube_kaynak_kayitlari` (
  `id` BIGINT AUTO_INCREMENT NOT NULL,
  `market_zinciri_id` BIGINT NOT NULL,
  `eslesen_market_subesi_id` BIGINT,
  `kaynak` VARCHAR(100) NOT NULL,
  `kaynak_kodu` VARCHAR(150) NOT NULL,
  `sube_adi` VARCHAR(200) NOT NULL,
  `normalize_sube_adi` VARCHAR(200) NOT NULL,
  `acik_adres` LONGTEXT NOT NULL,
  `normalize_acik_adres` VARCHAR(1000) NOT NULL,
  `il` VARCHAR(100) NOT NULL,
  `ilce` VARCHAR(100),
  `enlem` DECIMAL(10,7),
  `boylam` DECIMAL(10,7),
  `fotograf_url` VARCHAR(1000),
  `ham_veri` JSON,
  `durum` VARCHAR(20) NOT NULL DEFAULT 'bekliyor',
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `sehir_id` INT,
  `ilce_id` INT,
  `mahalle_id` INT,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `ulkeler` (
  `id` INT AUTO_INCREMENT NOT NULL,
  `ad` VARCHAR(128) NOT NULL,
  `normalize_ad` VARCHAR(128) NOT NULL,
  `iso_kodu_2` VARCHAR(2),
  `iso_kodu_3` VARCHAR(3),
  `telefon_kodu` VARCHAR(10),
  `para_birimi` VARCHAR(3),
  `aktif_mi` TINYINT(1) NOT NULL DEFAULT true,
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `urun_aileleri` (
  `id` BIGINT AUTO_INCREMENT NOT NULL,
  `marka_id` BIGINT,
  `aile_adi` VARCHAR(200) NOT NULL,
  `normalize_aile_adi` VARCHAR(200) NOT NULL,
  `aciklama` LONGTEXT,
  `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),
  `silinme_tarihi` DATETIME(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `urun_barkodlari` (
  `id` BIGINT AUTO_INCREMENT NOT NULL,
  `urun_id` BIGINT NOT NULL,
  `barkod` VARCHAR(64) NOT NULL,
  `barkod_turu` VARCHAR(30) NOT NULL,
  `ana_barkod_mu` TINYINT(1) NOT NULL DEFAULT false,
  `barkod_durumu` VARCHAR(20) NOT NULL DEFAULT 'aktif',
  `onay_durumu` VARCHAR(20) NOT NULL DEFAULT 'beklemede',
  `ekleyen_kullanici_id` CHAR(36),
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `urun_karsilastirma_gruplari` (
  `id` BIGINT AUTO_INCREMENT NOT NULL,
  `grup_adi` VARCHAR(150) NOT NULL,
  `grup_kodu` VARCHAR(80) NOT NULL,
  `fiziksel_buyukluk_turu` VARCHAR(30) NOT NULL,
  `temel_olcu_birimi_id` BIGINT NOT NULL,
  `aciklama` LONGTEXT,
  `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),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `urun_kategorileri` (
  `id` BIGINT AUTO_INCREMENT NOT NULL,
  `ust_kategori_id` BIGINT,
  `kategori_adi` VARCHAR(150) NOT NULL,
  `kategori_kodu` VARCHAR(80) NOT NULL,
  `aciklama` LONGTEXT,
  `siralama` INT NOT NULL DEFAULT 0,
  `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),
  `silinme_tarihi` DATETIME(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `urunler` (
  `id` BIGINT AUTO_INCREMENT NOT NULL,
  `urun_ailesi_id` BIGINT,
  `urun_karsilastirma_grubu_id` BIGINT,
  `marka_id` BIGINT,
  `kategori_id` BIGINT,
  `urun_adi` VARCHAR(250) NOT NULL,
  `normalize_urun_adi` VARCHAR(250) NOT NULL,
  `net_miktar` DECIMAL(14,4),
  `olcu_birimi_id` BIGINT,
  `ambalaj_turu` VARCHAR(60),
  `aciklama` LONGTEXT,
  `onay_durumu` VARCHAR(20) NOT NULL DEFAULT 'beklemede',
  `sistem_durumu` VARCHAR(20) NOT NULL DEFAULT 'aktif',
  `ekleyen_kullanici_id` CHAR(36),
  `birlestirilen_urun_id` BIGINT,
  `olusturulma_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `guncellenme_tarihi` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `silinme_tarihi` DATETIME(6),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

ALTER TABLE `alisveris_oturumu_hareketleri` ADD CONSTRAINT `uq_alisveris_hareketleri_islem` UNIQUE (`islem_uuid`);
ALTER TABLE `barkod_cozumleme_profilleri` ADD CONSTRAINT `uq_barkod_profilleri_id_zincir` UNIQUE (`id`, `market_zinciri_id`);
ALTER TABLE `barkod_cozumleme_profilleri` ADD CONSTRAINT `uq_barkod_profilleri_surum` UNIQUE (`market_zinciri_id`, `profil_adi`, `profil_surumu`);
ALTER TABLE `degisken_barkod_kurallari` ADD CONSTRAINT `uq_degisken_barkod_kurallari_alan` UNIQUE (`barkod_cozumleme_profili_id`, `alan_turu`);
ALTER TABLE `esitleme_islemleri` ADD CONSTRAINT `uq_esitleme_islemleri_islem` UNIQUE (`islem_uuid`);
ALTER TABLE `fiyat_dogrulamalari` ADD CONSTRAINT `uq_fiyat_dogrulamalari_kullanici` UNIQUE (`fiyat_gozlemi_id`, `kullanici_id`);
ALTER TABLE `fiyat_gozlemleri` ADD CONSTRAINT `uq_fiyat_gozlemleri_bilesik` UNIQUE (`id`, `urun_id`, `market_subesi_id`);
ALTER TABLE `gecici_marketler` ADD CONSTRAINT `uq_gecici_marketler_id_kullanici` UNIQUE (`id`, `olusturan_kullanici_id`);
ALTER TABLE `hane_davetleri` ADD CONSTRAINT `uq_hane_davetleri_kod` UNIQUE (`davet_kodu`);
ALTER TABLE `hane_mesaj_durumlari` ADD CONSTRAINT `uq_hane_mesaj_durumlari_uyelik` UNIQUE (`hane_uyesi_id`);
ALTER TABLE `hane_mesaj_resimleri` ADD CONSTRAINT `uq_hane_mesaj_resimleri_depolama_yolu` UNIQUE (`disk`, `depolama_yolu`);
ALTER TABLE `hane_mesaj_resimleri` ADD CONSTRAINT `uq_hane_mesaj_resimleri_yukleme` UNIQUE (`yukleme_uuid`);
ALTER TABLE `hane_mesajlari` ADD CONSTRAINT `uq_hane_mesajlari_istemci_uuid` UNIQUE (`gonderen_hane_uyesi_id`, `istemci_mesaj_uuid`);
ALTER TABLE `hane_uyeleri` ADD CONSTRAINT `uq_hane_uyeleri_hane_kullanici` UNIQUE (`hane_id`, `kullanici_id`);
ALTER TABLE `ilceler` ADD CONSTRAINT `ilceler_id_sehir_id_key` UNIQUE (`id`, `sehir_id`);
ALTER TABLE `kullanici_cihazlari` ADD CONSTRAINT `uq_kullanici_cihazlari_cihaz` UNIQUE (`kullanici_id`, `cihaz_uuid`);
ALTER TABLE `kullanici_cihazlari` ADD CONSTRAINT `uq_kullanici_cihazlari_id_kullanici` UNIQUE (`id`, `kullanici_id`);
ALTER TABLE `kullanici_oturumlari` ADD CONSTRAINT `kullanici_oturumlari_anahtar_ozeti_key` UNIQUE (`anahtar_ozeti`);
ALTER TABLE `market_urun_kodlari` ADD CONSTRAINT `uq_market_urun_kodlari` UNIQUE (`market_zinciri_id`, `market_urun_kodu`);
ALTER TABLE `olcu_birimleri` ADD CONSTRAINT `olcu_birimleri_olcu_birimi_kodu_key` UNIQUE (`olcu_birimi_kodu`);
ALTER TABLE `sube_eslestirme_adaylari` ADD CONSTRAINT `sube_eslestirme_adaylari_sube_kaynak_kaydi_id_market_subesi_key` UNIQUE (`sube_kaynak_kaydi_id`, `market_subesi_id`);
ALTER TABLE `sube_kaynak_kayitlari` ADD CONSTRAINT `sube_kaynak_kayitlari_market_zinciri_id_kaynak_kaynak_kodu_key` UNIQUE (`market_zinciri_id`, `kaynak`, `kaynak_kodu`);
ALTER TABLE `urun_barkodlari` ADD CONSTRAINT `uq_urun_barkodlari_barkod` UNIQUE (`barkod`);
ALTER TABLE `urun_karsilastirma_gruplari` ADD CONSTRAINT `urun_karsilastirma_gruplari_grup_kodu_key` UNIQUE (`grup_kodu`);
ALTER TABLE `urun_kategorileri` ADD CONSTRAINT `urun_kategorileri_kategori_kodu_key` UNIQUE (`kategori_kodu`);
CREATE INDEX `ix_alisveris_listeleri_hane_durum` ON `alisveris_listeleri` (hane_id, liste_durumu, olusturulma_tarihi);
CREATE UNIQUE INDEX `uq_alisveris_listeleri_id_hane` ON `alisveris_listeleri` (id, hane_id);
CREATE INDEX `ix_liste_urunleri_liste_durum` ON `alisveris_listesi_urunleri` (alisveris_listesi_id, urun_durumu, olusturulma_tarihi);
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: ix_liste_urunleri_urun
CREATE UNIQUE INDEX `uq_liste_urunleri_id_liste` ON `alisveris_listesi_urunleri` (id, alisveris_listesi_id);
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: ix_alisveris_oturumlari_kaynak_liste_durum
CREATE INDEX `ix_alisveris_oturumlari_kullanici_durum` ON `alisveris_oturumlari` (kullanici_id, oturum_durumu, baslangic_tarihi);
CREATE INDEX `ix_alisveris_hareketleri_oturum_tarih` ON `alisveris_oturumu_hareketleri` (alisveris_oturumu_id, islem_tarihi);
CREATE INDEX `ix_alisveris_oturumu_urunleri_oturum` ON `alisveris_oturumu_urunleri` (alisveris_oturumu_id, urun_durumu);
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: ix_alisveris_oturumu_urunleri_urun
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: uq_alisveris_oturumu_urunleri_kaynak_liste_urun
CREATE INDEX `ix_denetim_kayitlari_kullanici_tarih` ON `denetim_kayitlari` (kullanici_id, islem_tarihi);
CREATE INDEX `ix_denetim_kayitlari_tabla_kayit` ON `denetim_kayitlari` (tablo_adi, kayit_kimligi, islem_tarihi);
CREATE INDEX `ix_esitleme_islemleri_cihaz_durum` ON `esitleme_islemleri` (kullanici_cihazi_id, islem_durumu, olusturulma_tarihi);
CREATE INDEX `ix_esitleme_islemleri_kullanici_durum` ON `esitleme_islemleri` (kullanici_id, islem_durumu, olusturulma_tarihi);
CREATE INDEX `ix_fiyat_dogrulamalari_gozlem_tur` ON `fiyat_dogrulamalari` (fiyat_gozlemi_id, dogrulama_turu);
CREATE INDEX `ix_fiyat_dogrulamalari_kullanici_tarih` ON `fiyat_dogrulamalari` (kullanici_id, olusturulma_tarihi);
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: ix_fiyat_gozlemleri_guncel_urun_sube
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: ix_fiyat_gozlemleri_kullanici_tarih
CREATE INDEX `ix_fiyat_gozlemleri_market_tarih` ON `fiyat_gozlemleri` (market_subesi_id, gozlem_tarihi);
CREATE INDEX `ix_fiyat_gozlemleri_urun_market_tarih` ON `fiyat_gozlemleri` (urun_id, market_subesi_id, gozlem_tarihi);
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: ix_gecici_marketler_konum
CREATE INDEX `ix_guncel_urun_fiyatlari_market` ON `guncel_urun_fiyatlari` (market_subesi_id, fiyat_durumu);
CREATE UNIQUE INDEX `uq_guncel_urun_fiyatlari_gozlem` ON `guncel_urun_fiyatlari` (fiyat_gozlemi_id);
CREATE INDEX `ix_hane_davetleri_kod_durum` ON `hane_davetleri` (davet_kodu, davet_durumu, son_gecerlilik_tarihi);
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: uq_hane_davetleri_aktif_hane
CREATE INDEX `ix_hane_mesaj_durumlari_hane` ON `hane_mesaj_durumlari` (hane_id, hane_uyesi_id);
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: ix_hane_mesaj_resimleri_gecici_temizlik
CREATE INDEX `ix_hane_mesaj_resimleri_hane` ON `hane_mesaj_resimleri` (hane_id, olusturulma_tarihi);
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: ix_hane_mesaj_resimleri_mesaj
CREATE INDEX `ix_hane_mesajlari_akis` ON `hane_mesajlari` (hane_id, olusturulma_tarihi, id);
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: ix_hane_mesajlari_liste
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: ix_hane_mesajlari_yanitlanan
CREATE INDEX `ix_hane_uyeleri_hane_durum` ON `hane_uyeleri` (hane_id, uyelik_durumu);
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: uq_hane_uyeleri_aktif_kullanici
CREATE UNIQUE INDEX `uq_hane_uyeleri_id_hane` ON `hane_uyeleri` (id, hane_id);
CREATE INDEX `ix_haneler_olusturan_durum` ON `haneler` (olusturan_kullanici_id, hane_durumu);
CREATE UNIQUE INDEX `uq_haneler_id` ON `haneler` (id);
CREATE INDEX `ix_ilceler_normalize_ad` ON `ilceler` (normalize_ad);
CREATE INDEX `ix_ilceler_sehir` ON `ilceler` (sehir_id, aktif_mi);
CREATE INDEX `ix_kullanici_cihazlari_kullanici` ON `kullanici_cihazlari` (kullanici_id, cihaz_durumu);
CREATE INDEX `ix_kullanici_oturumlari_kullanici` ON `kullanici_oturumlari` (kullanici_id, oturum_durumu);
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: uq_kullanicilar_eposta_aktif
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: uq_kullanicilar_telefon_aktif
CREATE INDEX `ix_mahalleler_ilce` ON `mahalleler` (ilce_id, aktif_mi);
CREATE INDEX `ix_mahalleler_normalize_ad` ON `mahalleler` (normalize_ad);
CREATE INDEX `ix_mahalleler_sehir` ON `mahalleler` (sehir_id, aktif_mi);
CREATE UNIQUE INDEX `uq_mahalleler_id_ilce_sehir` ON `mahalleler` (id, ilce_id, sehir_id);
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: uq_markalar_normalize_aktif
CREATE INDEX `ix_market_sube_fotograflari_sube_ana` ON `market_sube_fotograflari` (market_subesi_id, ana_fotograf_mi);
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: ix_market_subeleri_konum
CREATE INDEX `ix_market_subeleri_normalize_ad` ON `market_subeleri` (normalize_sube_adi);
CREATE INDEX `ix_market_subeleri_normalize_adres` ON `market_subeleri` (normalize_acik_adres);
CREATE INDEX `ix_market_subeleri_sehir_ilce_mahalle` ON `market_subeleri` (sehir_id, ilce_id, mahalle_id);
CREATE INDEX `ix_market_subeleri_zincir` ON `market_subeleri` (market_zinciri_id, sistem_durumu);
CREATE INDEX `ix_market_subeleri_zincir_il_ilce` ON `market_subeleri` (market_zinciri_id, il, ilce);
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: uq_market_subeleri_zincir_sube_kodu
CREATE INDEX `ix_market_zincirleri_durum` ON `market_zincirleri` (sistem_durumu);
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: uq_market_zincirleri_ad_aktif
CREATE UNIQUE INDEX `uq_market_zincirleri_kod` ON `market_zincirleri` (zincir_kodu);
CREATE INDEX `ix_sehirler_normalize_ad` ON `sehirler` (normalize_ad);
CREATE INDEX `ix_sehirler_ulke` ON `sehirler` (ulke_id, aktif_mi);
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: uq_sehirler_ulke_plaka
CREATE INDEX `ix_sube_eslestirme_kaynak_durum` ON `sube_eslestirme_adaylari` (sube_kaynak_kaydi_id, durum);
CREATE INDEX `ix_sube_eslestirme_puan` ON `sube_eslestirme_adaylari` (toplam_puan);
CREATE INDEX `ix_sube_kaynak_normalize_ad` ON `sube_kaynak_kayitlari` (normalize_sube_adi);
CREATE INDEX `ix_sube_kaynak_normalize_adres` ON `sube_kaynak_kayitlari` (normalize_acik_adres);
CREATE INDEX `ix_sube_kaynak_sehir_ilce_mahalle` ON `sube_kaynak_kayitlari` (sehir_id, ilce_id, mahalle_id);
CREATE INDEX `ix_sube_kaynak_zincir_durum` ON `sube_kaynak_kayitlari` (market_zinciri_id, durum);
CREATE INDEX `ix_ulkeler_normalize_ad` ON `ulkeler` (normalize_ad);
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: uq_ulkeler_iso2
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: uq_ulkeler_iso3
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: uq_urun_aileleri_marka_ad_aktif
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: uq_urun_barkodlari_ana_barkod
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: ix_urunler_aile
CREATE INDEX `ix_urunler_arama` ON `urunler` (normalize_urun_adi);
-- PostgreSQL kosullu/uzamsal indeksi MySQL esdegeri icin uygulama katmaninda ele alinmali: ix_urunler_karsilastirma_grubu
