# ENG-1534 — Observação da manutenção na solicitação de compra

## Objetivo

Propagar para a solicitação de compra no Senior a observação recebida da manutenção (`obsEme`), preservando também a observação manual informada na geração.

## Decisão

Alterar somente o backend, no serviço que monta o payload da solicitação de compra. Para cada item, o campo `obsSol` será formado pelas partes não vazias, separadas por `; `, nesta ordem:

1. observação manual do item;
2. observação manual geral da solicitação, quando o item não possuir observação própria;
3. observação da manutenção importada do Senior (`stockIOProduct.integration.parameters.obsEme`).

Não haverá alteração de banco, contrato da API ou frontend. A regra permanece no backend para que toda chamada ao endpoint tenha o mesmo resultado e para evitar duplicação ou desatualização da observação importada.

## Fluxo de dados

```text
Senior (obsEme) → integração do item da requisição → geração da solicitação → obsSol no payload SOAP
                                  + observação manual do endpoint
```

## Casos de borda

- Valores `null`, vazios ou compostos apenas por espaços serão ignorados.
- Quando houver apenas uma fonte de observação, `obsSol` terá somente esse valor.
- Quando não houver observação manual nem de manutenção, `obsSol` continuará vazio.
- A observação manual específica do item mantém a prioridade sobre a observação manual geral, como ocorre hoje.

## Testes

Expandir o teste de feature de geração da solicitação de compra para inspecionar o payload enviado ao SOAP e cobrir:

- somente `obsEme`;
- observação manual mais `obsEme`, concatenadas na ordem definida;
- ausência das duas observações.

O teste de sincronização que persiste `obsEme` no item continua como cobertura da origem do dado.
