-- Energie-Bonus in Sofort-Bonus + Neukunden-Bonus aufteilen.
-- Bestehende Werte werden nach `instantBonus` migriert (Annahme: bei
-- Bestandsverträgen war "Bonus" üblicherweise der Sofort-Bonus).
-- Wer das anders hatte, kann die Werte über die UI nachträglich verschieben.
--
-- IF NOT EXISTS macht den Re-Deploy auf Prod sicher, falls jemand schon
-- `prisma db push` gefahren hat.

ALTER TABLE `EnergyContractDetails`
  ADD COLUMN IF NOT EXISTS `instantBonus` DOUBLE NULL,
  ADD COLUMN IF NOT EXISTS `newCustomerBonus` DOUBLE NULL;

-- Daten kopieren, sofern die alte Spalte noch existiert und das Ziel leer ist
SET @col_exists := (
  SELECT COUNT(*) FROM information_schema.COLUMNS
  WHERE TABLE_SCHEMA = DATABASE()
    AND TABLE_NAME = 'EnergyContractDetails'
    AND COLUMN_NAME = 'bonus'
);
SET @sql := IF(
  @col_exists > 0,
  'UPDATE `EnergyContractDetails` SET `instantBonus` = `bonus` WHERE `bonus` IS NOT NULL AND `instantBonus` IS NULL',
  'SELECT "bonus-Spalte existiert nicht mehr, nichts zu migrieren"'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

-- Alte Spalte droppen, falls vorhanden
ALTER TABLE `EnergyContractDetails` DROP COLUMN IF EXISTS `bonus`;
