- Filter promos by TarifaPromo.rol_id (same as services) - Fix visible filter: use string 'true' not boolean - Get price from Usuario_promo or TarifaPromo instead of Promociones.precio - Get utilidad from TarifaPromo for correct margin tracking - Applied same fixes to TelegramBotService promo flows Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>