# TimeCloud MMBackOffice — Automação de Processamento

Automação do processamento diário de assiduidade no TimeCloud MMBackOffice usando Selenium.

## 🚀 O que faz

1. Faz login na aplicação TimeCloud
2. Navega para **Processar → Processamento**
3. Ativa "Reprocessar resultados validados"
4. Seleciona os últimos **N dias** na grelha (configurável, default: 15)
5. Clica em **Processar** e aguarda conclusão
6. Regista tudo em ficheiros de log

## 📋 Requisitos

- Python 3.9+
- Google Chrome ou Chromium
- ChromeDriver (instalado automaticamente via `webdriver-manager`)

## 🔧 Instalação

### 1. Clonar/copiar o projeto

```bash
cd /opt/timecloud-automation  # ou outro diretório à escolha
```

### 2. Instalar dependências Python

```bash
pip3 install -r requirements.txt
```

### 3. Configurar credenciais

```bash
cp .env.example .env
nano .env  # editar com as suas credenciais
chmod 600 .env  # proteger ficheiro de credenciais
```

## 🏃 Utilização

### Execução normal
```bash
python3 timecloud_process.py
```

### Modo dry-run (não executa, apenas mostra o que faria)
```bash
python3 timecloud_process.py --dry-run
```

### Modo visual (para debug)
```bash
python3 timecloud_process.py --no-headless
```

### Combinar opções
```bash
python3 timecloud_process.py --dry-run --no-headless
```

## ⚙️ Configuração (`.env`)

| Variável | Default | Descrição |
|---|---|---|
| `TC_CLOUD_NAME` | `Protek` | Nome da cloud/organização |
| `TC_USERNAME` | — | Nome de utilizador |
| `TC_PASSWORD` | — | Password |
| `TC_URL` | `https://software.mmconnect.pt/...` | URL da aplicação |
| `TC_LOOKBACK_DAYS` | `15` | Dias para trás a processar |
| `TC_TIMEOUT_MINUTES` | `30` | Timeout máximo (minutos) |

## 🐧 Deploy no Proxmox CT

Usar o script de setup:

```bash
chmod +x setup_proxmox.sh
./setup_proxmox.sh
```

Ou manualmente:

```bash
# Instalar dependências
apt update && apt install -y python3 python3-pip chromium chromium-driver

# Instalar Python packages
pip3 install -r requirements.txt

# Configurar credenciais
cp .env.example .env
nano .env
chmod 600 .env
```

### Cron job (execução diária às 6h da manhã)

```bash
crontab -e
# Adicionar:
0 6 * * * cd /opt/timecloud-automation && python3 timecloud_process.py >> /var/log/timecloud.log 2>&1
```

## 📂 Estrutura

```
timecloud-automation/
├── timecloud_process.py   # Script principal
├── .env.example           # Template de configuração
├── .env                   # Configuração (não incluído no git)
├── requirements.txt       # Dependências Python
├── setup_proxmox.sh       # Script de setup para Proxmox
├── README.md              # Este ficheiro
└── logs/                  # Logs de execução (criado automaticamente)
    └── timecloud_YYYYMMDD_HHMMSS.log
```

## 🐛 Troubleshooting

- **Erro no login**: Verificar credenciais no `.env`
- **Elementos não encontrados**: Os IDs da app Telerik podem mudar — verificar com DevTools
- **Chrome não inicia**: Verificar se `chromium` está instalado (`which chromium`)
- **Timeout**: Aumentar `TC_TIMEOUT_MINUTES` no `.env`
- **Screenshots de erro**: Guardados automaticamente em `logs/` quando ocorre um erro
