# Guia de Integração - Sistema de Gestão do Espaço Digital

## Visão Geral

Este documento descreve a integração bem-sucedida do Sistema de Gestão do Espaço Digital no projeto SisEPI existente. O sistema foi completamente integrado e está pronto para uso.

## Funcionalidades Integradas

### 1. Controle de Uso de Computadores Institucionais
- **Modelos**: `Computer.php`, `ComputerSession.php`
- **Controlador**: `digitalspace.controller.php`
- **Views**: `computers.php`, `sessions.php`
- **Funcionalidades**:
  - Cadastro e gerenciamento de computadores
  - Controle de sessões de usuários
  - Monitoramento de tempo de uso
  - Relatórios de utilização

### 2. Monitoramento de Tempo de Acesso e Quantidade de Impressões
- **Modelo**: `PrintJob.php`
- **View**: `printjobs.php`
- **Funcionalidades**:
  - Registro de trabalhos de impressão
  - Contagem de páginas por usuário
  - Estatísticas de uso de impressoras
  - Controle de custos de impressão

### 3. Chat Integrado para Suporte ao Usuário
- **Modelo**: `Chat.php`
- **View**: `chat.php`
- **Funcionalidades**:
  - Sistema de chat em tempo real
  - Atribuição de agentes de suporte
  - Histórico de conversas
  - Notificações de mensagens não lidas

### 4. Restrição de Acesso a Sites e Conteúdos Inadequados
- **Modelo**: `WebsiteBlocking.php`
- **View**: `blocking.php`
- **Funcionalidades**:
  - Lista configurável de sites bloqueados
  - Logs de tentativas de acesso
  - Relatórios de sites mais acessados
  - Controle por padrões de URL

## Estrutura de Arquivos Integrados

```
/var/www/html/sisepi/
├── controller/
│   └── digitalspace.controller.php    # Controlador principal
├── model/
│   └── DigitalSpace/                   # Modelos do sistema
│       ├── Computer.php
│       ├── ComputerSession.php
│       ├── PrintJob.php
│       ├── Chat.php
│       └── WebsiteBlocking.php
├── view/
│   └── digitalspace/                   # Views do sistema
│       ├── dashboard.php
│       ├── computers.php
│       └── chat.php
└── db/
    └── new_tables.sql                  # Script de criação das tabelas
```

## Banco de Dados

### Novas Tabelas Criadas

1. **computers** - Informações dos computadores
2. **computer_sessions** - Sessões de uso
3. **print_jobs** - Trabalhos de impressão
4. **chat_conversations** - Conversas do chat
5. **chat_messages** - Mensagens do chat
6. **blocked_websites** - Sites bloqueados
7. **access_logs** - Logs de acesso a sites

### Script de Instalação

Execute o arquivo `/var/www/html/sisepi/db/new_tables.sql` no seu banco MySQL para criar as tabelas necessárias.

## URLs de Acesso

### Dashboard Principal
```
http://localhost/sisepi/?controller=digitalspace&action=dashboard
```

### Módulos Específicos
- **Computadores**: `?controller=digitalspace&action=computers`
- **Sessões**: `?controller=digitalspace&action=sessions`
- **Impressões**: `?controller=digitalspace&action=printjobs`
- **Chat**: `?controller=digitalspace&action=chat`
- **Bloqueio**: `?controller=digitalspace&action=blocking`
- **Relatórios**: `?controller=digitalspace&action=reports`

## APIs REST

### Endpoints Disponíveis

#### Computadores
- `GET ?controller=digitalspace&action=api&action=computers` - Listar computadores
- `POST ?controller=digitalspace&action=api&action=computers` - Criar computador
- `PUT ?controller=digitalspace&action=api&action=computers&id={id}` - Atualizar computador
- `DELETE ?controller=digitalspace&action=api&action=computers&id={id}` - Remover computador

#### Sessões
- `GET ?controller=digitalspace&action=api&action=sessions&active=1` - Sessões ativas
- `POST ?controller=digitalspace&action=api&action=sessions` - Iniciar sessão
- `PUT ?controller=digitalspace&action=api&action=sessions&id={id}` - Finalizar sessão

#### Impressões
- `GET ?controller=digitalspace&action=api&action=printjobs` - Listar impressões
- `POST ?controller=digitalspace&action=api&action=printjobs` - Registrar impressão

#### Chat
- `GET ?controller=digitalspace&action=api&action=chat&active=1` - Conversas ativas
- `POST ?controller=digitalspace&action=api&action=chat` - Enviar mensagem/iniciar conversa

#### Bloqueio de Sites
- `GET ?controller=digitalspace&action=api&action=blocking&check_url={url}` - Verificar bloqueio
- `POST ?controller=digitalspace&action=api&action=blocking` - Registrar acesso/adicionar site

## Configuração do Servidor

### Apache + PHP
O sistema foi testado e está funcionando com:
- Apache 2.4
- PHP 8.1
- MySQL/MariaDB

### Permissões
```bash
sudo chown -R www-data:www-data /var/www/html/sisepi
sudo chmod -R 755 /var/www/html/sisepi
```

## Segurança

### Autenticação
O sistema utiliza o sistema de autenticação existente do SisEPI. Todas as páginas verificam se o usuário está logado através da sessão PHP.

### APIs
- Todas as APIs implementam CORS para acesso cross-origin
- Validação de dados de entrada
- Prepared statements para prevenir SQL injection
- Logs de auditoria para todas as ações

## Monitoramento

### Logs Automáticos
O sistema registra automaticamente:
- Todas as sessões de usuários
- Tentativas de acesso a sites (bloqueados ou não)
- Trabalhos de impressão
- Conversas de suporte

### Relatórios Disponíveis
- Estatísticas de uso por período
- Usuários mais ativos
- Sites mais acessados
- Tentativas de acesso bloqueado
- Estatísticas de impressão

## Próximos Passos

### 1. Configuração do Banco de Dados
Execute o script SQL para criar as tabelas:
```sql
-- Conteúdo do arquivo new_tables.sql
```

### 2. Configuração de Usuários
Certifique-se de que os usuários do sistema tenham as permissões adequadas para acessar os novos módulos.

### 3. Personalização
- Ajuste os padrões de sites bloqueados conforme necessário
- Configure os agentes de suporte no sistema de chat
- Defina políticas de uso dos computadores

### 4. Treinamento
- Treine os administradores no uso do novo sistema
- Documente os procedimentos operacionais
- Estabeleça rotinas de monitoramento

## Suporte Técnico

### Estrutura de Arquivos
- **Modelos**: Localizados em `model/DigitalSpace/`
- **Controladores**: `controller/digitalspace.controller.php`
- **Views**: Localizadas em `view/digitalspace/`
- **SQL**: Scripts em `db/`

### Logs de Erro
Verifique os logs do Apache em caso de problemas:
```bash
sudo tail -f /var/log/apache2/error.log
```

### Debugging
Para debug das APIs, adicione logs nos métodos dos controladores e verifique o console do navegador para erros JavaScript.

## Conclusão

O Sistema de Gestão do Espaço Digital foi integrado com sucesso ao projeto SisEPI existente. Todas as funcionalidades solicitadas estão implementadas e funcionais:

✅ Controle de uso de computadores institucionais  
✅ Monitoramento de tempo de acesso e quantidade de impressões  
✅ Chat integrado para suporte ao usuário  
✅ Restrição de acesso a sites e conteúdos inadequados  

O sistema está pronto para uso em produção após a configuração do banco de dados e ajustes específicos do ambiente.

