-- MaLo-IDs (Marktlokation) je Sparte an die Adresse: die MaLo gehört zur
-- (Liefer-)Adresse, nicht zum Vertrag. Strom + Gas getrennt.
ALTER TABLE `Address` ADD COLUMN IF NOT EXISTS `maloIdElectricity` VARCHAR(191) NULL;
ALTER TABLE `Address` ADD COLUMN IF NOT EXISTS `maloIdGas` VARCHAR(191) NULL;

-- Daten-Migration: bestehende Vertrags-MaLo-IDs an die jeweilige Lieferadresse
-- übertragen – je nach Vertragstyp in Strom- bzw. Gas-Feld. Nur setzen, wenn
-- am Ziel-Adressfeld noch nichts steht (idempotent, kein Überschreiben).
UPDATE `Address` a
  JOIN `Contract` c ON c.addressId = a.id
  JOIN `EnergyContractDetails` ecd ON ecd.contractId = c.id
  SET a.maloIdElectricity = ecd.maloId
  WHERE c.type = 'ELECTRICITY'
    AND ecd.maloId IS NOT NULL AND ecd.maloId <> ''
    AND (a.maloIdElectricity IS NULL OR a.maloIdElectricity = '');

UPDATE `Address` a
  JOIN `Contract` c ON c.addressId = a.id
  JOIN `EnergyContractDetails` ecd ON ecd.contractId = c.id
  SET a.maloIdGas = ecd.maloId
  WHERE c.type = 'GAS'
    AND ecd.maloId IS NOT NULL AND ecd.maloId <> ''
    AND (a.maloIdGas IS NULL OR a.maloIdGas = '');
