-- Öffentliche Display-Seiten ("Kiosk"): pro Site eine Seite mit festem Link, -- über die Gäste sich mit einem Klick selbst einen Zugangscode holen. CREATE TABLE IF NOT EXISTS `kiosks` ( `id` INT PRIMARY KEY AUTO_INCREMENT, `site_id` INT NOT NULL, `template_id` INT NULL, `name` VARCHAR(255) NOT NULL, `token` VARCHAR(64) NOT NULL, `headline` VARCHAR(255) NULL, `subline` VARCHAR(500) NULL, `is_active` TINYINT(1) NOT NULL DEFAULT 1, `daily_limit` INT NOT NULL DEFAULT 100, `cooldown_seconds` INT NOT NULL DEFAULT 20, `display_seconds` INT NOT NULL DEFAULT 90, `last_used_at` TIMESTAMP NULL, `created_by` INT NULL, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, UNIQUE KEY `uniq_token` (`token`), INDEX `idx_site` (`site_id`), FOREIGN KEY (`site_id`) REFERENCES `sites`(`id`) ON DELETE CASCADE, FOREIGN KEY (`template_id`) REFERENCES `voucher_templates`(`id`) ON DELETE SET NULL, FOREIGN KEY (`created_by`) REFERENCES `users`(`id`) ON DELETE SET NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- Herkunft eines Vouchers festhalten: über welchen Kiosk wurde er geholt? ALTER TABLE `vouchers` ADD COLUMN `kiosk_id` INT NULL AFTER `user_id`; ALTER TABLE `vouchers` ADD INDEX `idx_kiosk` (`kiosk_id`);