Update AmqpConsumeManager. Add support for both types of config
```
'exchanges' => [
'auth.events' => [
'type' => AmqpExchangeTypes::Topic->value,
'queues' => [
'notify.auth.events' => [
'routing_key_pattern' => 'user.password_reset.initiated',
'user.password_reset.initiated' => PasswordResetInitiatedConsumer::class,
],
],
],
'identity.events' => [
'type' => AmqpExchangeTypes::Topic->value,
'queues' => [
'notify.identity.events' => [
'user.low_balance' => LowBalanceUserConsumer::class,
'user.password.updated' => UserPasswordUpdatedConsumer::class,
'user.created' => UserCreatedConsumer::class,
'user.created.promo' => UserCreatedConsumer::class,
],
],
],
]
```
```
'llm.streaming' => [
'type' => AmqpExchangeTypes::Topic->value, // Используем topic exchange для поддержки wildcards
'queues' => [
'llm.chunks' => [
'routing_key_pattern' => '#.'.StreamQueue::Chunks->getRoutingKey(),
'consumer' => OnChunkConsumer::class,
'arguments' => [
'x-single-active-consumer' => true
]
],
'llm.finalize' => [
'routing_key_pattern' => '#.'.StreamQueue::Finalize->getRoutingKey(),
'consumer' => OnFinalizeConsumer::class,
'arguments' => [
'x-single-active-consumer' => true
]
],
'llm.errors' => [
'routing_key_pattern' => '#.'.StreamQueue::Errors->getRoutingKey(),
'consumer' => OnErrorConsumer::class,
'arguments' => [
'x-single-active-consumer' => true
]
],
],
],
```
Both of them are valid