# Instalação — Plataforma de Orçamentos Labcenter V2.5 (PHP/MySQL)

## Estrutura correta do pacote

Não envie os arquivos todos misturados para a raiz pública. A pasta `public/` é a ÚNICA pasta que deve ser publicada na internet.

```text
Instalacao_Labcenter_Orcamentos_V2_5/
├── app/                    # privado
├── config/                 # privado
│   └── config.example.php
├── database/               # privado
│   ├── schema.sql
│   └── exames_particular_referencia.csv
├── storage/                # privado e gravável, se necessário
├── vendor/                 # será criado pelo Composer
├── composer.json
├── .htaccess               # proteção adicional
└── public/                 # raiz pública do subdomínio
    ├── index.php
    ├── .htaccess
    └── assets/
        └── style.css
```

## 1. Preparar a pasta privada

1. No cPanel, abra **Gerenciador de Arquivos**.
2. Entre na pasta inicial da conta, normalmente `/home/USUARIO_CPANEL/`.
3. Crie a pasta `labcenter_orcamentos`.
4. Envie para dentro dela as pastas/arquivos privados deste ZIP: `app`, `config`, `database`, `storage`, `composer.json` e `.htaccess`.
5. Envie também a pasta `public` para dentro de `labcenter_orcamentos`.

O resultado deve ser `/home/USUARIO_CPANEL/labcenter_orcamentos/public/index.php`, com `app`, `config` e `database` ao lado de `public` — nunca dentro de `public`.

## 2. Apontar o subdomínio para a pasta public

No cPanel, abra **Domínios** e edite/localize:

`orcamento.laboratoriolabcenter.com`

Defina a **Raiz do documento (Document Root)** exatamente para:

`/home/USUARIO_CPANEL/labcenter_orcamentos/public`

Substitua `USUARIO_CPANEL` pelo nome real da conta cPanel. Não use literalmente esse texto.

Se o cPanel não permitir alterar a raiz do subdomínio existente, não apague o subdomínio. Solicite ao suporte da hospedagem a alteração do Document Root para esse caminho.

## 3. Configurar o banco

1. No cPanel, abra **Bancos de dados MySQL** e confirme o nome completo do banco e do usuário. Em muitas contas cPanel há um prefixo automático.
2. Confirme que o usuário está associado ao banco com **TODOS OS PRIVILÉGIOS**.
3. Em `labcenter_orcamentos/config/`, faça uma cópia de `config.example.php` e renomeie a cópia para `config.php`.
4. Edite `config.php` e preencha `db.name`, `db.user` e `db.pass` com os dados exatos exibidos no cPanel.
5. Mantenha `db.host` como `localhost`, salvo orientação diferente da hospedagem.
6. Troque `setup_token` por uma sequência longa, aleatória e exclusiva. Não compartilhe esse token.
7. O endereço configurado é `https://orcamento.laboratoriolabcenter.com`.

**Importante:** não coloque `config.php` dentro de `public/` e não envie credenciais em prints ou mensagens.

## 4. Instalar a dependência de leitura de PDF

O projeto utiliza Composer e a biblioteca `smalot/pdfparser`.

No Terminal do cPanel, se disponível, execute:

```bash
cd /home/USUARIO_CPANEL/labcenter_orcamentos
composer install --no-dev --optimize-autoloader
```

Se o Terminal/Composer não estiver disponível, peça à hospedagem a disponibilidade do Composer/PHP CLI ou instale as dependências localmente em ambiente compatível e envie a pasta `vendor/` completa para `labcenter_orcamentos/vendor/`.

Requisitos: PHP 8.1 ou superior, extensões PDO, pdo_mysql, mbstring e fileinfo.

## 5. Importar as tabelas

1. Abra **phpMyAdmin** no cPanel.
2. Selecione o banco de dados correto.
3. Importe o arquivo `database/schema.sql`.
4. Confirme que as tabelas foram criadas.

Não importe novamente o schema se já houver dados de produção sem antes fazer backup e conferir o conteúdo.

## 6. Permissões e SSL

- Pastas normalmente: `755`.
- Arquivos normalmente: `644`.
- `config/config.php`: `640` ou `644`, conforme as permissões suportadas pela hospedagem; permanece fora da raiz pública.
- Ative o certificado SSL/AutoSSL do subdomínio e use HTTPS.
- Não use permissões `777`.

## 7. Testar a instalação

1. Abra `https://orcamento.laboratoriolabcenter.com/health`.
2. Se a configuração estiver correta, a resposta será `{"status":"ok"}`.
3. Abra `https://orcamento.laboratoriolabcenter.com/setup`.
4. Informe o `setup_token` definido em `config/config.php`, crie o primeiro usuário gestor e uma senha forte (mínimo de 12 caracteres).
5. Entre em `/login`.

A tela `/setup` deixa de funcionar depois que o primeiro usuário é criado.

## 8. Se ainda aparecer erro 403

Confira, nesta ordem:

1. O Document Root aponta para `.../labcenter_orcamentos/public`?
2. Existe `index.php` diretamente nessa pasta?
3. O arquivo `public/index.php` está com permissão `644`?
4. A pasta `public` está com permissão `755`?
5. O `.htaccess` dentro de `public/` foi enviado?
6. O domínio está apontando para essa mesma pasta no cPanel?

Se continuar, envie um print da tela **Domínios** mostrando o Document Root e outro do conteúdo da pasta `public`. Não altere permissões para `777`.

## Observações importantes

- Este pacote é a versão PHP/MySQL V2.5 convertida a partir da V2.4. Ele cria uma nova estrutura de banco; não migra automaticamente os registros do sistema Python V2.4.
- A extração dos campos do PDF precisa ser validada com PDFs de teste sem dados pessoais. PDFs digitalizados como imagem podem exigir OCR e não são garantidos nesta versão.
- Antes de inserir dados reais de pacientes, faça homologação técnica e avaliação de segurança/LGPD, incluindo backups testados, controle de acesso, política de retenção e procedimentos de incidente.
