-- ============================================================
-- OTO TAKİP - MySQL Veritabanı Kurulum SQL
-- cPanel phpMyAdmin'de çalıştırın
-- ============================================================

CREATE TABLE IF NOT EXISTS `gelirler` (
  `id`                INT AUTO_INCREMENT PRIMARY KEY,
  `kategori`          VARCHAR(50) DEFAULT 'diger',
  `tutar`             DECIMAL(10,2) NOT NULL DEFAULT 0,
  `aciklama`          TEXT DEFAULT NULL,
  `kaynak`            VARCHAR(200) DEFAULT '',
  `tarih`             VARCHAR(20) NOT NULL,
  `olusturma_zamani`  DATETIME DEFAULT CURRENT_TIMESTAMP,
  INDEX `idx_tarih` (`tarih`),
  INDEX `idx_kategori` (`kategori`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `borclarim` (
  `id`                INT AUTO_INCREMENT PRIMARY KEY,
  `firma_adi`         VARCHAR(200) NOT NULL,
  `aciklama`          TEXT DEFAULT NULL,
  `tutar`             DECIMAL(10,2) NOT NULL DEFAULT 0,
  `odenen`            DECIMAL(10,2) NOT NULL DEFAULT 0,
  `vade_tarihi`       VARCHAR(20) DEFAULT '',
  `durum`             VARCHAR(20) DEFAULT 'odenmedi',
  `notlar`            TEXT DEFAULT NULL,
  `tarih`             VARCHAR(20) NOT NULL,
  `olusturma_zamani`  DATETIME DEFAULT CURRENT_TIMESTAMP,
  `guncelleme_zamani` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  INDEX `idx_durum` (`durum`),
  INDEX `idx_tarih` (`tarih`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `firmalar` (
  `id`                INT AUTO_INCREMENT PRIMARY KEY,
  `firma_adi`         VARCHAR(200) NOT NULL,
  `yetkili`           VARCHAR(100) DEFAULT '',
  `telefon`           VARCHAR(20) DEFAULT '',
  `email`             VARCHAR(100) DEFAULT '',
  `adres`             TEXT DEFAULT NULL,
  `vergi_no`          VARCHAR(50) DEFAULT '',
  `vergi_dairesi`     VARCHAR(100) DEFAULT '',
  `notlar`            TEXT DEFAULT NULL,
  `olusturma_zamani`  DATETIME DEFAULT CURRENT_TIMESTAMP,
  `guncelleme_zamani` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  INDEX `idx_firma_adi` (`firma_adi`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;


SET NAMES utf8mb4;
SET time_zone = '+03:00';

-- ============================================================
-- TABLOLAR
-- ============================================================

CREATE TABLE IF NOT EXISTS `isler` (
  `id`                INT AUTO_INCREMENT PRIMARY KEY,
  `plaka`             VARCHAR(20) NOT NULL,
  `musteri_id`        INT DEFAULT NULL,
  `musteri_adi`       VARCHAR(100) DEFAULT '',
  `musteri_tel`       VARCHAR(20) DEFAULT '',
  `musteri_tipi`      VARCHAR(20) DEFAULT 'bireysel',
  `firma_adi`         VARCHAR(200) DEFAULT '',
  `vergi_no`          VARCHAR(50) DEFAULT '',
  `islem`             VARCHAR(500) NOT NULL,
  `parca_ucreti`      DECIMAL(10,2) DEFAULT 0,
  `iscilik_ucreti`    DECIMAL(10,2) DEFAULT 0,
  `toplam`            DECIMAL(10,2) DEFAULT 0,
  `durum`             VARCHAR(20) DEFAULT 'odenmedi',
  `notlar`            TEXT DEFAULT NULL,
  `tarih`             VARCHAR(20) NOT NULL,
  `saat`              VARCHAR(10) NOT NULL,
  `olusturma_zamani`  DATETIME DEFAULT CURRENT_TIMESTAMP,
  `guncelleme_zamani` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  INDEX `idx_plaka` (`plaka`),
  INDEX `idx_tarih` (`tarih`),
  INDEX `idx_durum` (`durum`),
  INDEX `idx_musteri_adi` (`musteri_adi`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `giderler` (
  `id`                INT AUTO_INCREMENT PRIMARY KEY,
  `kategori`          VARCHAR(100) NOT NULL,
  `miktar`            DECIMAL(10,2) NOT NULL,
  `aciklama`          TEXT DEFAULT NULL,
  `tarih`             VARCHAR(20) NOT NULL,
  `olusturma_zamani`  DATETIME DEFAULT CURRENT_TIMESTAMP,
  INDEX `idx_tarih` (`tarih`),
  INDEX `idx_kategori` (`kategori`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `ayarlar` (
  `id`      INT AUTO_INCREMENT PRIMARY KEY,
  `anahtar` VARCHAR(100) UNIQUE NOT NULL,
  `deger`   TEXT NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `stok` (
  `id`                INT AUTO_INCREMENT PRIMARY KEY,
  `urun_adi`          VARCHAR(200) NOT NULL,
  `barkod`            VARCHAR(100) DEFAULT '',
  `kategori`          VARCHAR(100) DEFAULT 'genel',
  `adet`              DECIMAL(10,3) DEFAULT 0,
  `min_adet`          DECIMAL(10,3) DEFAULT 1,
  `gelis_fiyati`      DECIMAL(10,2) DEFAULT 0,
  `satis_fiyati`      DECIMAL(10,2) DEFAULT 0,
  `birim`             VARCHAR(20) DEFAULT 'adet',
  `aciklama`          TEXT DEFAULT NULL,
  `gorsel`            LONGTEXT DEFAULT NULL,
  `tedarikci_id`      INT DEFAULT NULL,
  `olusturma_zamani`  DATETIME DEFAULT CURRENT_TIMESTAMP,
  `guncelleme_zamani` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  INDEX `idx_urun_adi` (`urun_adi`),
  INDEX `idx_barkod` (`barkod`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `tedarikciler` (
  `id`               INT AUTO_INCREMENT PRIMARY KEY,
  `firma_adi`        VARCHAR(200) NOT NULL,
  `yetkili`          VARCHAR(100) DEFAULT '',
  `telefon`          VARCHAR(20) DEFAULT '',
  `email`            VARCHAR(100) DEFAULT '',
  `adres`            TEXT DEFAULT NULL,
  `notlar`           TEXT DEFAULT NULL,
  `olusturma_zamani` DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `is_parcalari` (
  `id`           INT AUTO_INCREMENT PRIMARY KEY,
  `is_id`        INT NOT NULL,
  `stok_id`      INT NOT NULL,
  `urun_adi`     VARCHAR(200) NOT NULL,
  `adet`         DECIMAL(10,3) DEFAULT 1,
  `birim_fiyat`  DECIMAL(10,2) DEFAULT 0,
  `toplam_fiyat` DECIMAL(10,2) DEFAULT 0,
  INDEX `idx_is_id` (`is_id`),
  INDEX `idx_stok_id` (`stok_id`),
  FOREIGN KEY (`is_id`) REFERENCES `isler`(`id`) ON DELETE CASCADE,
  FOREIGN KEY (`stok_id`) REFERENCES `stok`(`id`) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `stok_hareketleri` (
  `id`           INT AUTO_INCREMENT PRIMARY KEY,
  `stok_id`      INT NOT NULL,
  `hareket`      VARCHAR(50) NOT NULL,
  `miktar`       DECIMAL(10,3) NOT NULL,
  `onceki_adet`  DECIMAL(10,3) DEFAULT 0,
  `sonraki_adet` DECIMAL(10,3) DEFAULT 0,
  `aciklama`     TEXT DEFAULT NULL,
  `tarih`        VARCHAR(20) NOT NULL,
  INDEX `idx_stok_id` (`stok_id`),
  FOREIGN KEY (`stok_id`) REFERENCES `stok`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `musteriler` (
  `id`                INT AUTO_INCREMENT PRIMARY KEY,
  `musteri_adi`       VARCHAR(100) NOT NULL,
  `musteri_tel`       VARCHAR(20) DEFAULT '',
  `musteri_tipi`      VARCHAR(20) DEFAULT 'bireysel',
  `firma_adi`         VARCHAR(200) DEFAULT '',
  `vergi_no`          VARCHAR(50) DEFAULT '',
  `adres`             TEXT DEFAULT NULL,
  `notlar`            TEXT DEFAULT NULL,
  `olusturma_zamani`  DATETIME DEFAULT CURRENT_TIMESTAMP,
  `guncelleme_zamani` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  INDEX `idx_musteri_adi` (`musteri_adi`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `randevular` (
  `id`                INT AUTO_INCREMENT PRIMARY KEY,
  `musteri_id`        INT DEFAULT NULL,
  `musteri_adi`       VARCHAR(100) DEFAULT '',
  `musteri_tel`       VARCHAR(20) DEFAULT '',
  `plaka`             VARCHAR(20) DEFAULT '',
  `aciklama`          VARCHAR(500) DEFAULT '',
  `tarih`             VARCHAR(20) NOT NULL,
  `saat`              VARCHAR(10) NOT NULL,
  `sure_dk`           INT DEFAULT 60,
  `durum`             VARCHAR(20) DEFAULT 'bekliyor',
  `notlar`            TEXT DEFAULT NULL,
  `olusturma_zamani`  DATETIME DEFAULT CURRENT_TIMESTAMP,
  `guncelleme_zamani` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  INDEX `idx_tarih` (`tarih`),
  INDEX `idx_durum` (`durum`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `taksitler` (
  `id`               INT AUTO_INCREMENT PRIMARY KEY,
  `is_id`            INT NOT NULL,
  `taksit_no`        INT NOT NULL,
  `tutar`            DECIMAL(10,2) NOT NULL,
  `vade_tarihi`      VARCHAR(20) NOT NULL,
  `odeme_tarihi`     VARCHAR(20) DEFAULT '',
  `durum`            VARCHAR(20) DEFAULT 'bekliyor',
  `notlar`           TEXT DEFAULT NULL,
  `olusturma_zamani` DATETIME DEFAULT CURRENT_TIMESTAMP,
  INDEX `idx_is_id` (`is_id`),
  INDEX `idx_durum` (`durum`),
  INDEX `idx_vade` (`vade_tarihi`),
  FOREIGN KEY (`is_id`) REFERENCES `isler`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

CREATE TABLE IF NOT EXISTS `is_fotograflari` (
  `id`               INT AUTO_INCREMENT PRIMARY KEY,
  `is_id`            INT NOT NULL,
  `gorsel`           LONGTEXT NOT NULL,
  `aciklama`         VARCHAR(500) DEFAULT '',
  `olusturma_zamani` DATETIME DEFAULT CURRENT_TIMESTAMP,
  INDEX `idx_is_id` (`is_id`),
  FOREIGN KEY (`is_id`) REFERENCES `isler`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- Varsayılan ayarlar
INSERT IGNORE INTO `ayarlar` (`anahtar`, `deger`) VALUES
('isletme_adi', 'Oto Elektrik Servisi'),
('sahip_adi', ''),
('telefon', ''),
('adres', ''),
('vergi_no', ''),
('otomatik_yedek', '1'),
('yedek_klasoru', '');