feat: Sistema de gestión de impresoras persistente

- Crear modelo Printer con campos: id, name, host, deviceId, timeout, isDefault
- Almacenamiento persistente en data/printers.json
- APIs CRUD: GET/POST /api/printers, GET/PUT/DELETE /api/printers/:id
- API para seleccionar impresora activa: POST /api/printers/select
- Endpoint de impresión ahora usa la impresora seleccionada o la especificada por printerId
- Composable usePrinters() para el cliente
- UI: Selector de impresora en sidebar, tab Impresoras en mobile
- Componentes: PrintersList, PrintersCard, PrintersForm, PrintersSelector
This commit is contained in:
2025-11-25 00:44:50 -06:00
parent 955584275b
commit e97b2b4d8e
15 changed files with 1006 additions and 6 deletions

View File

@@ -0,0 +1,20 @@
// GET /api/printers - Listar todas las impresoras
import { getAllPrinters, getSelectedPrinter } from '../../utils/printers'
export default defineEventHandler(async () => {
try {
const printers = await getAllPrinters()
const selected = await getSelectedPrinter()
return {
ok: true,
printers,
selectedPrinterId: selected?.id || null
}
} catch (err: any) {
return {
ok: false,
error: err.message
}
}
})