# Componentes do Protocolo

Esta pasta contém todos os componentes Livewire relacionados ao módulo de Protocolos, organizados de forma modular e reutilizável.

## Estrutura de Arquivos

```
app/Http/Livewire/Protocolo/
├── MainComponent.php          # Componente principal (orquestrador)
├── ListComponent.php          # Lista de protocolos
├── ViewComponent.php          # Modal de visualização
├── ActionsComponent.php       # Ações (receber, fechar, tramitar)
├── TestComponent.php          # Componente de teste/debug
└── README.md                  # Esta documentação
```

## Templates Correspondentes

```
resources/views/livewire/protocolo/
├── main-component.blade.php   # Template principal
├── list-component.blade.php   # Template da lista
├── view-component.blade.php   # Template de visualização
├── actions-component.blade.php # Template de ações
└── test-component.blade.php   # Template de teste
```

## Componentes

### MainComponent
- **Responsabilidade**: Orquestrar a exibição dos outros componentes
- **Funcionalidades**: Controlar exibição de formulário vs lista
- **Linhas**: ~25

### ListComponent
- **Responsabilidade**: Exibir lista de protocolos com paginação
- **Funcionalidades**: Busca, paginação, visualização
- **Linhas**: ~50

### ViewComponent
- **Responsabilidade**: Modal de visualização detalhada
- **Funcionalidades**: Exibir dados do protocolo, tramitações, permissões
- **Linhas**: ~150

### ActionsComponent
- **Responsabilidade**: Ações sobre o protocolo
- **Funcionalidades**: Receber, fechar, tramitar protocolo
- **Linhas**: ~200

### TestComponent
- **Responsabilidade**: Testes e debug
- **Funcionalidades**: Testar funcionalidade de receber protocolo
- **Linhas**: ~100

## Benefícios da Refatoração

1. **Componentes Menores**: Cada componente tem uma responsabilidade específica
2. **Melhor Organização**: Todos os componentes relacionados em uma pasta
3. **Facilita Manutenção**: Mudanças isoladas não afetam outros componentes
4. **Reutilização**: Componentes podem ser usados em outras telas
5. **Debug Mais Fácil**: Problemas isolados em componentes específicos

## Como Usar

Para usar o sistema refatorado, substitua o componente antigo:

```php
// Antes
@livewire('protocolo-component')

// Depois
@livewire('protocolo.main-component')
```

## Comunicação Entre Componentes

Os componentes se comunicam através de eventos Livewire:

- `visualizarProtocolo` - Abrir modal de visualização
- `protocoloUpdated` - Atualizar lista após mudanças
- `showNewForm` / `hideForm` - Controlar exibição do formulário
