-- Add pricelist binding to configurations ALTER TABLE qt_configurations ADD COLUMN pricelist_id BIGINT UNSIGNED NULL AFTER server_count; ALTER TABLE qt_configurations ADD INDEX idx_qt_configurations_pricelist_id (pricelist_id), ADD CONSTRAINT fk_qt_configurations_pricelist_id FOREIGN KEY (pricelist_id) REFERENCES qt_pricelists(id) ON DELETE RESTRICT ON UPDATE CASCADE; -- Backfill existing configurations to latest active pricelist SET @latest_active_pricelist_id := ( SELECT id FROM qt_pricelists WHERE is_active = 1 ORDER BY created_at DESC LIMIT 1 ); UPDATE qt_configurations SET pricelist_id = @latest_active_pricelist_id WHERE pricelist_id IS NULL AND @latest_active_pricelist_id IS NOT NULL; -- Recalculate usage_count from configuration bindings UPDATE qt_pricelists SET usage_count = 0; UPDATE qt_pricelists pl JOIN ( SELECT pricelist_id, COUNT(*) AS cnt FROM qt_configurations WHERE pricelist_id IS NOT NULL GROUP BY pricelist_id ) cfg ON cfg.pricelist_id = pl.id SET pl.usage_count = cfg.cnt;