🎯 CQRS Gati - Dashboard v3

🤖 AI POWERED

Arraste elementos CQRS do menu lateral para começar 🎨

Propriedades

Selecione um elemento para editar

🤖 Assistente IA Online

Análise e geração de código CQRS
⚠️ Avisos (3)
⚠️ Comando 'CriarPedido' não tem evento correspondente 'PedidoCriado'
⚠️ Agregado 'Pedido' não está conectado a nenhuma política
⚠️ Read Model 'PedidoView' sem fonte de dados (eventos)
💡 Sugestões (5)
Adicionar evento 'PedidoCancelado' para complementar o fluxo
Criar política 'ValidarEstoque' antes de 'ProcessarPagamento'
Implementar Saga 'GerenciamentoPedido' para orquestrar o processo
Adicionar Read Model 'RelatorioVendas' para analytics
Criar comando 'AtualizarStatusPedido' para gestão de estados
🔍 Insights (2)
💡 Padrão detectado: Event Sourcing completo pode aumentar rastreabilidade
💡 Considerar CQRS com separação física de banco de dados (Write/Read)
Olá! Sou seu assistente de CQRS/Event Sourcing. Como posso ajudar você hoje?

Posso:
• Analisar seu diagrama CQRS
• Sugerir comandos, eventos e políticas
• Gerar código C# automaticamente
• Otimizar seus fluxos de negócio
• Explicar conceitos DDD/CQRS
Sugira eventos para o agregado Pedido
Com base no agregado "Pedido", sugiro os seguintes eventos:

1️⃣ PedidoCriado - Quando um novo pedido é iniciado
2️⃣ ItemAdicionado - Quando um item é adicionado ao pedido
3️⃣ ItemRemovido - Quando um item é removido
4️⃣ PedidoConfirmado - Quando o cliente confirma o pedido
5️⃣ PagamentoProcessado - Após aprovação do pagamento
6️⃣ PedidoEnviado - Quando sai para entrega
7️⃣ PedidoEntregue - Quando é entregue ao cliente
8️⃣ PedidoCancelado - Se houver cancelamento
Gerando código C# com IA...
CriarPedidoCommand.cs
public record CriarPedidoCommand(
    Guid ClienteId,
    List<ItemPedido> Itens
) : ICommand;

// Gerado automaticamente pela IA
public class CriarPedidoCommandHandler
    : ICommandHandler<CriarPedidoCommand>
{
    private readonly IEventStore _eventStore;

    public async Task Handle(
        CriarPedidoCommand command)
    {
        // Validações
        if (command.Itens.Count == 0)
            throw new DomainException(
                "Pedido deve ter pelo menos um item");

        // Criar agregado
        var pedido = Pedido.Criar(
            command.ClienteId,
            command.Itens);

        // Persistir eventos
        await _eventStore.Save(pedido);
    }
}
📦 Arquivos Gerados
📄 CriarPedidoCommand.cs Novo
📄 PedidoCriadoEvent.cs Novo
📄 Pedido.cs (Agregado) Novo
📄 PedidoTests.cs Testes