Este documento descreve as especificações técnicas, endpoints e padrões de arquitetura do Microserviço de Impressão. O sistema é projetado para o processamento assíncrono de documentos e integração com hardware de impressão local.
1.**API REST**: Interface para recepção de requisições de impressão.
2.**BullMQ (Redis)**: Engine de mensageria para gestão de filas e persistência temporária de tarefas (jobs).
3.**Queue Worker (PrinterProcessor)**: Componente responsável por consumir a fila, realizar a renderização de documentos via Puppeteer e comunicar-se com os drivers do sistema operacional.
4.**Persistência (Oracle)**: Integração via TypeORM para registro de dados operacionais em base de dados corporativa.
### Fluxo de Operação
1. A API recebe uma solicitação de impressão via HTTP.
2. A tarefa é registrada na fila `printer` gerenciada pelo BullMQ.
3. O `PrinterProcessor` (WorkerHost) processa a tarefa, converte o conteúdo HTML em PDF e envia para o spooler de impressão.
---
## Configurações do Sistema
### Variáveis de Ambiente
O serviço utiliza as seguintes definições no arquivo `.env`:
O projeto é construído sobre o framework NestJS, utilizando `@nestjs/bullmq` para a gestão de filas. O processador de impressão é injetado como um provider global no `AppModule` para garantir a execução contínua do worker dentro do contexto da aplicação.