-- Werbe-Beziehung zwischen Kunden ("Geworben / angeworben").
-- recruitedId ist UNIQUE → ein Kunde kann nur von EINER Person geworben sein.
-- Beide FKs mit ON DELETE CASCADE: wird ein Kunde gelöscht, verschwinden
-- seine Werbe-Verknüpfungen mit.

CREATE TABLE IF NOT EXISTS `CustomerReferral` (
  `id`            INT NOT NULL AUTO_INCREMENT,
  `recruiterId`   INT NOT NULL,
  `recruitedId`   INT NOT NULL,
  `relationship`  VARCHAR(191) NOT NULL,
  `createdAt`     DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
  `createdBy`     VARCHAR(191) NULL,
  PRIMARY KEY (`id`),
  UNIQUE INDEX `CustomerReferral_recruitedId_key` (`recruitedId`),
  INDEX `CustomerReferral_recruiterId_idx` (`recruiterId`),
  CONSTRAINT `CustomerReferral_recruiterId_fkey` FOREIGN KEY (`recruiterId`)
    REFERENCES `Customer` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `CustomerReferral_recruitedId_fkey` FOREIGN KEY (`recruitedId`)
    REFERENCES `Customer` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
