module.exports = { config: { name: "inbox", version: "1.0.1", author: "HR ID OY", countDown: 3, role: 0, shortDescription: "View FCA inbox", longDescription: "View the connected HRIDOY-FCA inbox.", category: "system", guide: { en: "{pn} | {pn} unread | {pn} requests | {pn} view | {pn} health" } }, onStart: async function ({ api, event, args, message }) { const fca = global.hridoyFCA || api; const send = text => message && typeof message.reply === "function" ? message.reply(text) : new Promise((resolve,reject)=>api.sendMessage(text,event.threadID,e=>e?reject(e):resolve())); try { if (!fca) return send("āŒ FCA is not connected."); const sub=String(args?.[0]||"").toLowerCase(); if (sub==="health" && typeof fca.getHealth==="function") { const h=fca.getHealth()||{}; return send(`šŸ“” FCA HEALTH\n\nā¤ļø Score: ${h.score??"N/A"}\nšŸ”Œ Connected: ${h.connected??"unknown"}\nšŸ’“ Heartbeat: ${h.heartbeatOk??"unknown"}`); } if (sub==="unread" && typeof fca.getUnreadCount==="function") return send(`šŸ”“ Unread: ${fca.getUnreadCount()}`); if (sub==="requests" && typeof fca.getMessageRequests==="function") { const rows=await Promise.resolve(fca.getMessageRequests(10)); return send(rows?.length ? "šŸ“Ø MESSAGE REQUESTS\n\n"+rows.map((x,i)=>`${i+1}. ${x.name||x.threadName||"Unknown"}\nšŸ†” ${x.threadID||x.id||"?"}`).join("\n\n") : "šŸ“­ No message requests."); } if (sub==="view") { const tid=args?.[1]; if (!tid) return send("āš ļø Use: inbox view "); if (typeof fca.getThreadHistoryPaged!=="function") return send("āŒ FCA history API is unavailable."); const r=await fca.getThreadHistoryPaged(tid,{amount:20,pages:1}); const items=r?.items||[]; return send(items.length ? `šŸ“Ø ${tid}\n\n`+items.map(m=>`šŸ‘¤ ${m.senderName||m.senderID||"Unknown"}: ${String(m.body||m.message||m.text||"(attachment)").slice(0,180)}`).join("\n") : "šŸ“­ No history found."); } if (typeof fca.getUnifiedInbox!=="function") return send("āŒ FCA unified inbox API is unavailable."); const limit=Math.min(30,Math.max(1,Number(sub)||10)); const rows=await fca.getUnifiedInbox(limit); if (!rows?.length) return send("šŸ“­ Inbox is empty."); return send("šŸ“„ HRIDOY-FCA INBOX\n\n"+rows.map((t,i)=>`${i+1}. ${t.name||t.threadName||"(unnamed)"}\nšŸ†” ${t.threadID||t.id||"?"}${Number(t.unreadCount)?`\nšŸ”“ Unread: ${t.unreadCount}`:""}${t.snippet||t.lastMessage?.body?`\nšŸ’¬ ${String(t.snippet||t.lastMessage.body).slice(0,120)}`:""}`).join("\n\n")); } catch (e) { return send(`āŒ Inbox error [${e?.code||"UNKNOWN_ERROR"}]\n${String(e?.message||e).slice(0,240)}`); } } };