# Comando de Normalização de Program Names

## Descrição

Este comando normaliza os `program_name` nos registros de `employee_programs` e `care_statuses` para garantir consistência no banco de dados. Ele converte variações como "Saúde 360°", "saúde 360", "saude 360" para o formato padronizado "saude_360".

## Uso

### 1. Modo Dry-Run (Visualização)

Primeiro, execute o comando no modo dry-run para ver quais registros serão alterados **SEM fazer alterações reais**:

```bash
php artisan health:normalize-program-names --dry-run
```

Este comando mostrará:
- Quantos registros em `employee_programs` precisam ser normalizados
- Quantos registros em `care_statuses` precisam ser normalizados
- Uma tabela com os valores originais e os valores normalizados

### 2. Execução Real

Após revisar o que será alterado, execute o comando sem o `--dry-run` para aplicar as alterações:

```bash
php artisan health:normalize-program-names
```

## Exemplo de Saída

```
🚀 Iniciando normalização dos program_name...

📋 Normalizando employee_programs...
   Encontrados 3 registros de employee_programs que precisam ser normalizados:
   +----+------------+------------------+--------------+
   | ID | UUID       | Original         | Normalizado  |
   +----+------------+------------------+--------------+
   | 21 | fed96834...| Saúde 360°       | saude_360    |
   | 22 | a1b2c3d4...| saúde 360        | saude_360    |
   | 23 | b2c3d4e5...| AcolheMente      | acolhemente  |
   +----+------------+------------------+--------------+
   ✅ 3 registros atualizados com sucesso!

📋 Normalizando care_statuses...
   ✅ Todos os registros de care_statuses já estão normalizados.

✅ Normalização concluída! Total de registros atualizados: 3
```

## Programas Suportados

O comando normaliza os seguintes programas:

- **Saúde 360** → `saude_360`
  - Variações: "Saúde 360°", "saúde 360", "saude 360", etc.

- **AcolheMente** → `acolhemente`
  - Variações: "AcolheMente", "acolhemente", etc.

- **High Users** → `high_users`
  - Variações: "High Users", "high users", "highusers", etc.

- **Gestantes** → `gestantes`
  - Variações: "Gestantes", "gestantes", etc.

## Segurança

- O comando usa transações do banco de dados para garantir integridade
- Sempre execute primeiro com `--dry-run` para revisar as alterações
- O comando mostra claramente quais registros serão alterados antes de aplicar

## Notas Importantes

1. **Backup**: É recomendável fazer backup do banco de dados antes de executar o comando pela primeira vez
2. **Produção**: Execute primeiro em ambiente de desenvolvimento/staging para validar
3. **Registros Existentes**: O comando afeta apenas registros que estão em formato diferente do padrão

## Solução de Problemas

Se o comando não aparecer na listagem de comandos do Artisan, verifique:

1. O arquivo está em `app/Console/Commands/NormalizeProgramNames.php`
2. O namespace está correto: `App\Console\Commands`
3. A classe estende `Illuminate\Console\Command`
4. O Laravel foi configurado para descobrir comandos automaticamente (Laravel 11+)

Para listar todos os comandos disponíveis:

```bash
php artisan list
```











