diff --git a/API_CONTRACTS.md b/API_CONTRACTS.md
index d3f041d..8211e10 100644
--- a/API_CONTRACTS.md
+++ b/API_CONTRACTS.md
@@ -37,33 +37,35 @@ Retorna a lista de impressoras instaladas no servidor onde a API está rodando.
### 2. Imprimir HTML (Etiquetas/Layouts)
-Converte um código HTML (com suporte a Tailwind CSS) para PDF e imprime na impressora selecionada. Ideal para etiquetas.
+Converte um código HTML (com suporte a Tailwind CSS) para PDF e imprime na impressora selecionada via Fila de Processamento (BullMQ).
- **Método:** `POST`
-- **Rota:** `/printer/print-html`
+- **Rota:** `/printer/print-html` ou `/printer/:printerName/print-html`
- **Corpo da Requisição (JSON):**
```json
{
"html": "
Minha Etiqueta
...",
- "printerName": "POS-80", // Nome exato da impressora (conforme retornado na listagem)
+ "printerName": "POS-80", // Opcional se passado na URL
"width": "60mm", // Opcional. Largura do papel/etiqueta. Default: 80mm
- "height": "40mm" // Opcional. Altura da etiqueta. Default: auto
+ "height": "40mm", // Opcional. Altura da etiqueta. Default: auto
+ "jobId": "meu-id-unico-123" // Opcional. ID para idempotência na fila.
}
```
- **Detalhes:**
- O backend injeta automaticamente o script do Tailwind CSS.
- O HTML é renderizado via Puppeteer (Chrome headless).
+ - Tarefas são processadas de forma assíncrona via Redis/BullMQ.
---
### 3. Imprimir Texto Simples (ESC/POS)
-Envia comandos de texto diretamente para a impressora. Ideal para cupons simples e rápidos, sem formatação complexa.
+Envia comandos de texto diretamente para a impressora. Ideal para cupons simples e rápidos.
- **Método:** `POST`
-- **Rota:** `/printer/print`
+- **Rota:** `/printer/print` ou `/printer/:printerName/print`
- **Corpo da Requisição (JSON):**
```json
@@ -76,7 +78,7 @@ Envia comandos de texto diretamente para a impressora. Ideal para cupons simples
],
"alignment": "center", // "left", "center", "right". Default: left
"upsideDown": false, // Se true, imprime de cabeça para baixo
- "printerInterface": "POS-80" // Pode ser nome da impressora (USB) ou "tcp://192.168.1.100" (Rede)
+ "printerInterface": "POS-80" // Opcional se passado na URL. Suporta "tcp://192.168.1.100" ou nome da impressora.
}
```
@@ -98,6 +100,7 @@ export interface PrintHtmlPayload {
printerName: string;
width?: string;
height?: string;
+ jobId?: string;
}
export interface PrintTextPayload {
@@ -107,3 +110,7 @@ export interface PrintTextPayload {
printerInterface?: string;
}
```
+
+## Swagger
+
+A documentação interativa completa (OpenAPI) está disponível em `/api`. Lá você pode testar todos os endpoints e ver os esquemas detalhados de cada DTO.