# 🔍 Remote-Select Debug - Instruções de Teste

## 🎯 Problema Identificado
O `remote-select` recebe o valor inicial corretamente, mas alguma coisa está limpando o campo depois.

## 🚀 Logs Implementados

Agora temos logs detalhados em:

### 1. **GenericTabForm** 
- `🔍 [GenericTabForm-DEBUG] initForm chamado`
- `🔍 [GenericTabForm-DEBUG] ngOnChanges chamado`  
- `🔍 [GenericTabForm-DEBUG] updateFormData chamado`
- `🔍 [GenericTabForm-DEBUG] resetForm chamado`
- `🔍 [GenericTabForm-DEBUG] getProcessedRemoteConfig chamado`

### 2. **RemoteSelect**
- `🔍 [RemoteSelect-DEBUG] config setter chamado`
- `🔍 [RemoteSelect-DEBUG] ngOnInit chamado`
- `🔍 [RemoteSelect-DEBUG] writeValue chamado`

## 📋 Passos para Teste

### 1. **Abrir DevTools**
```
F12 → Console → Limpar console
```

### 2. **Reproduzir o Problema**
1. Abrir um veículo que tenha `company_id` e `company_name`
2. Observar a sequência de logs no console
3. Procurar por padrões que indicam quando o campo é limpo

### 3. **Filtrar Logs Específicos**
No console, filtrar por:
```
[RemoteSelect-DEBUG]
[GenericTabForm-DEBUG]
```

## 🕵️ O que Procurar

### ✅ **Sequência Normal (Esperada):**
```
🔍 [GenericTabForm-DEBUG] getProcessedRemoteConfig chamado para field: company_id
🚀 [GenericTabForm] Auto-injetando initialValue para company_id: Empresa ABC
🔍 [RemoteSelect-DEBUG] config setter chamado
🔍 [RemoteSelect-DEBUG] ngOnInit chamado
🔍 [RemoteSelect-DEBUG] writeValue chamado: { value: 123 }
🚀 [RemoteSelect] Usando initialValue: Empresa ABC (sem chamada ao backend)
```

### ❌ **Sequências Problemáticas (Suspeitas):**

#### Múltiplas chamadas de writeValue:
```
🔍 [RemoteSelect-DEBUG] writeValue chamado: { value: 123 }
🚀 [RemoteSelect] Usando initialValue: Empresa ABC
🔍 [RemoteSelect-DEBUG] writeValue chamado: { value: null } ← ⚠️ PROBLEMA!
🧹 [RemoteSelect] Limpando campo
```

#### Form sendo recriado:
```
🔍 [GenericTabForm-DEBUG] initForm chamado ← ⚠️ Se aparecer múltiplas vezes
🔍 [GenericTabForm-DEBUG] ngOnChanges chamado ← ⚠️ Verificar mudanças
```

#### Config sendo alterado:
```
🔍 [RemoteSelect-DEBUG] config setter chamado ← ⚠️ Se aparecer múltiplas vezes
```

#### updateFormData limpando:
```
🔍 [GenericTabForm-DEBUG] updateFormData chamado: { data: {...} } ← ⚠️ Verificar data
```

## 🎯 Cenários Específicos para Testar

### Cenário 1: **Abertura de Formulário**
1. Abrir lista de veículos
2. Clicar em um veículo 
3. Verificar se o campo aparece preenchido e se mantém

### Cenário 2: **Mudança de Aba**
1. Abrir veículo
2. Trocar entre abas (dados → localização → fotos)
3. Voltar para aba dados
4. Verificar se campo mantém valor

### Cenário 3: **Modo de Edição**
1. Abrir veículo
2. Clicar em "Editar"
3. Verificar se campo mantém valor

### Cenário 4: **Após Salvar**
1. Fazer uma pequena alteração
2. Salvar
3. Verificar se campo mantém valor

## 📊 Relatório Esperado

Colete os logs e identifique:

1. **Quantas vezes `writeValue` é chamado?**
2. **Qual valor é passado em cada chamada?**
3. **Há alguma chamada com `value: null` ou `value: undefined`?**
4. **O `initForm` é chamado múltiplas vezes?**
5. **O `config` é alterado múltiplas vezes?**
6. **Há chamadas de `updateFormData` ou `resetForm`?**

## 🚀 Próximos Passos

Com base nos logs coletados, identificaremos:

1. **Se o problema é no FormControl** (múltiplas chamadas writeValue)
2. **Se o problema é na recreação do form** (initForm múltiplo)
3. **Se o problema é na mudança de config** (config setter múltiplo)
4. **Se o problema é timing** (ordem incorreta de inicialização)

Execute os testes e me envie os logs mais relevantes! 🕵️‍♂️ 