# Relatorio para homologacao no VPS

Destino do commit:

- Homologacao

## Objetivo

Publicar em ambiente de homologacao as actions do `gpros_hub_api` que permitem ao SaaS aprovar a foto do primeiro acesso do colaborador ou exigir que ele refaca o novo registro no app.

## Escopo desta entrega

Esta entrega adiciona apenas:

- action `liberarAcesso`
- action `refazerNovoRegistro`
- registro das duas actions no roteador `work/action.php`

Nao faz parte desta entrega:

- migration de banco
- alteracao de schema
- alteracao da `main`
- persistencia de `usuario_aprovacao_pk`

## Branch para homologacao

- `feature/aprovacao-foto-primeiro-acesso`

## Regra funcional implementada

Identificacao da solicitacao:

- por `ds_cpf`

Comportamento:

- `liberarAcesso`: localiza o registro mais recente em `dados_colaborador_liberacao` pelo CPF, grava `ic_status = 1` e preenche `dt_liberacao`
- `refazerNovoRegistro`: localiza o registro mais recente pelo CPF e exclui o registro da tabela `dados_colaborador_liberacao`

## Contrato de retorno

Sucesso:

```json
{
  "status": true,
  "result": true,
  "message": "...",
  "data": { ... }
}
```

Erro:

```json
{
  "status": false,
  "result": false,
  "message": "...",
  "data": null
}
```

## Arquivos alterados

- `actions/liberar_acesso.php`
- `actions/refazer_novo_registro.php`
- `work/action.php`

## Procedimento no VPS

1. Nao atualizar a `main`.
2. Baixar a branch `feature/aprovacao-foto-primeiro-acesso`.
3. Publicar esta branch apenas em ambiente de homologacao.
4. Reiniciar a aplicacao conforme o modo atual de deploy do VPS.
5. Validar os dois endpoints apos a publicacao.

## Exemplos de chamada

### Aprovar acesso

```bash
curl -X POST "https://webservice.gepros6.com.br/work/action.php?action=liberarAcesso" \
  -H "Content-Type: application/json" \
  -d '{"ds_cpf":"460.127.358-71","ic_status":1,"usuario_aprovacao_pk":45,"ds_link":"https://app.cliente.com.br"}'
```

### Solicitar novo registro

```bash
curl -X POST "https://webservice.gepros6.com.br/work/action.php?action=refazerNovoRegistro" \
  -H "Content-Type: application/json" \
  -d '{"ds_cpf":"460.127.358-71","ic_status":3,"usuario_aprovacao_pk":45}'
```

## Resultado esperado

- `liberarAcesso` nao pode responder `Action 'liberarAcesso' não reconhecida`
- `refazerNovoRegistro` nao pode responder `Action 'refazerNovoRegistro' não reconhecida`
- ambos devem retornar JSON valido com `status` e `result`
- na aprovacao, deve voltar `dt_liberacao`
- no refazer, o registro do primeiro acesso deve deixar de existir para aquele CPF

## Validacao final a informar

Ao final da homologacao, informar:

- branch publicada
- commit publicado
- metodo de restart
- JSON retornado no teste de `liberarAcesso`
- JSON retornado no teste de `refazerNovoRegistro`
