/** * GET /api/instances/:id/status * Get instance connection status */ import { query } from '../../../utils/database' import { baileysManager } from '../../../services/baileys/manager' export default defineEventHandler(async (event) => { const username = getHeader(event, 'x-authentik-username') if (!username) { throw createError({ statusCode: 401, message: 'Unauthorized' }) } const id = getRouterParam(event, 'id') // Check if instance exists const result = await query<{ id: string; status: string; phone_number: string | null }>( 'SELECT id, status, phone_number FROM instances WHERE id = $1', [id] ) if (result.rows.length === 0) { throw createError({ statusCode: 404, message: 'Instance not found' }) } const instance = result.rows[0] const liveStatus = baileysManager.getStatus(id!) return { instanceId: id, status: liveStatus?.status || instance.status, phoneNumber: liveStatus?.phoneNumber || instance.phone_number, hasQR: !!liveStatus?.qrCode, hasPairingCode: !!liveStatus?.pairingCode } })