-- Komisyon Sistemi Migration
-- Bayiler tablosuna komisyon_orani kolonu ekle (eğer yoksa)
SET @dbname = DATABASE();
SET @tablename = 'bayiler';
SET @columnname = 'komisyon_orani';
SET @preparedStatement = (SELECT IF(
  (
    SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
    WHERE
      (table_name = @tablename)
      AND (table_schema = @dbname)
      AND (column_name = @columnname)
  ) > 0,
  'SELECT 1',
  CONCAT('ALTER TABLE ', @tablename, ' ADD COLUMN ', @columnname, ' DECIMAL(5,2) NOT NULL DEFAULT 0.00 COMMENT ''Komisyon oranı (örn: 10.00 = %10)'' AFTER `aktif`')
));
PREPARE alterIfNotExists FROM @preparedStatement;
EXECUTE alterIfNotExists;
DEALLOCATE PREPARE alterIfNotExists;

-- Komisyon ödemeleri tablosu
CREATE TABLE IF NOT EXISTS `komisyon_odemeleri` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `bayi_id` int(11) unsigned NOT NULL,
  `ay` date NOT NULL COMMENT 'Ödeme ayı (ayın ilk günü, örn: 2024-02-01)',
  `satis_tutari` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT 'O ayın toplam satış tutarı',
  `komisyon_orani` DECIMAL(5,2) NOT NULL DEFAULT 0.00 COMMENT 'O ay için geçerli komisyon oranı',
  `komisyon_tutari` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT 'Hesaplanan komisyon tutarı',
  `odeme_durumu` enum('beklemede','odendi','iptal') NOT NULL DEFAULT 'beklemede' COMMENT 'Ödeme durumu',
  `odeme_tarihi` datetime NULL COMMENT 'Ödeme yapıldığı tarih',
  `onaylayan_user_id` int(11) unsigned NULL COMMENT 'Ödemeyi onaylayan admin kullanıcı id',
  `aciklama` text NULL COMMENT 'Ödeme açıklaması',
  `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `unique_bayi_ay` (`bayi_id`, `ay`),
  KEY `idx_bayi_id` (`bayi_id`),
  KEY `idx_odeme_durumu` (`odeme_durumu`),
  KEY `idx_ay` (`ay`),
  CONSTRAINT `fk_komisyon_bayi` FOREIGN KEY (`bayi_id`) REFERENCES `bayiler` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `fk_komisyon_onaylayan` FOREIGN KEY (`onaylayan_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
