id} no tiene componentes."); } public static function ticketsDisabled(CatalogItem $catalogItem): self { return new self("El producto {$catalogItem->id} no tiene tickets habilitados."); } public static function maximumUseDateReached(CatalogItem $catalogItem): self { return new self("El producto {$catalogItem->id} alcanzó su fecha máxima de uso."); } public static function purchaseWithoutUser(Purchase $purchase): self { return new self("La compra {$purchase->id} no tiene un usuario asociado."); } public static function catalogItemNotFound(PurchaseItem $purchaseItem): self { return new self("No se encontró el producto de la línea de compra {$purchaseItem->id}."); } }