Edit: /tmp/tsx-0/17887-6545c5dbfd392e28cde1014d1fd1e5f374628372 (13492B)
{"code":"__filename=\"/opt/canhelp/apps/api/src/routes/fomo.ts\";(()=>{\n\"use strict\";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var fomo_exports={};__export(fomo_exports,{default:()=>fomo_default});module.exports=__toCommonJS(fomo_exports);var import_hono=require(\"hono\");var import_auth=require(\"../middleware/auth.js\");var import_plan=require(\"../middleware/plan.js\");var import_fomo=require(\"../lib/fomo.js\");var import_db=require(\"../db.js\");var import_db2=require(\"@canhelp/db\");var import_drizzle_orm=require(\"drizzle-orm\");var import_helper_capability=require(\"../lib/helper-capability.js\");const app=new import_hono.Hono;app.get(\"/specialist\",import_auth.requireAuth,import_plan.withPlan,async c=>{const user=c.get(\"user\");const isHelperReady=await(0,import_helper_capability.getHelperCapability)(user.id);if(!isHelperReady){return c.json({error:\"Specialists only\"},403)}const plan=c.get(\"plan\");const dashboard=await(0,import_fomo.getSpecialistFomoDashboard)(user.id);const tier=plan?.tier??\"free\";let fomoMessage=null;if(tier===\"free\"){if(dashboard.today.missedTotal>0){fomoMessage=`\\u03A3\\u03AE\\u03BC\\u03B5\\u03C1\\u03B1 \\u03C7\\u03AC\\u03C3\\u03B1\\u03C4\\u03B5 ${dashboard.today.missedTotal} \\u03C0\\u03B1\\u03C1\\u03B1\\u03B3\\u03B3\\u03B5\\u03BB\\u03AF\\u03B5\\u03C2 (~\\u20AC${dashboard.today.missedRevenue}). ${dashboard.today.missedByPro>0?`${dashboard.today.missedByPro} \\u03C0\\u03AE\\u03B3\\u03B1\\u03BD \\u03C3\\u03B5 PRO \\u03B5\\u03B9\\u03B4\\u03B9\\u03BA\\u03BF\\u03CD\\u03C2.`:\"\"} \\u0391\\u03BD\\u03B1\\u03B2\\u03B1\\u03B8\\u03BC\\u03AF\\u03C3\\u03C4\\u03B5 \\u03B3\\u03B9\\u03B1 \\u03BD\\u03B1 \\u03BC\\u03B7\\u03BD \\u03C7\\u03AC\\u03BD\\u03B5\\u03C4\\u03B5!`}}else if(tier===\"pro\"){if(dashboard.today.receivedOrders>0){fomoMessage=`\\u039A\\u03B1\\u03BB\\u03AC \\u03C0\\u03AC\\u03C4\\u03B5! ${dashboard.today.receivedOrders} \\u03C0\\u03B1\\u03C1\\u03B1\\u03B3\\u03B3\\u03B5\\u03BB\\u03AF\\u03B5\\u03C2 \\u03C3\\u03AE\\u03BC\\u03B5\\u03C1\\u03B1. \\u039A\\u03AC\\u03BB\\u03C5\\u03C8\\u03B7: ${dashboard.today.coveragePercent}%.`}}else if(tier===\"ultimate\"){if(dashboard.today.receivedOrders>0||dashboard.today.missedTotal>0){fomoMessage=`\\u03A3\\u03C4\\u03B1\\u03C4\\u03B9\\u03C3\\u03C4\\u03B9\\u03BA\\u03AC: ${dashboard.today.receivedOrders} \\u03BB\\u03B7\\u03C6\\u03B8\\u03B5\\u03AF\\u03C3\\u03B5\\u03C2, ${dashboard.today.missedTotal} \\u03C7\\u03B1\\u03BC\\u03AD\\u03BD\\u03B5\\u03C2. \\u039A\\u03AC\\u03BB\\u03C5\\u03C8\\u03B7: ${dashboard.today.coveragePercent}%.`}}return c.json({...dashboard,fomoMessage,tier})});app.get(\"/customer\",import_auth.requireAuth,import_plan.withPlan,async c=>{const user=c.get(\"user\");const isHelperReady=await(0,import_helper_capability.getHelperCapability)(user.id);if(isHelperReady){return c.json({error:\"Customers only\"},403)}const plan=c.get(\"plan\");const tier=plan?.tier??\"free\";const dashboard=await(0,import_fomo.getCustomerDashboard)(user.id);let conversionMessage=null;if(tier===\"free\"){const totalOffers=dashboard.activeTasks.reduce((sum,t)=>sum+t.totalOffers,0);const totalViews=dashboard.activeTasks.reduce((sum,t)=>sum+t.totalViews,0);if(totalViews>0||totalOffers>0){conversionMessage=`\\u03A4\\u03B1 tasks \\u03C3\\u03B1\\u03C2 \\u03B5\\u03AF\\u03B4\\u03B1\\u03BD ${totalViews} \\u03B5\\u03B9\\u03B4\\u03B9\\u03BA\\u03BF\\u03AF \\u03BA\\u03B1\\u03B9 \\u03BB\\u03AC\\u03B2\\u03B1\\u03C4\\u03B5 ${totalOffers} \\u03C0\\u03C1\\u03BF\\u03C3\\u03C6\\u03BF\\u03C1\\u03AD\\u03C2. \\u039C\\u03B5 PRO \\u03B8\\u03B1 \\u03B2\\u03BB\\u03AD\\u03C0\\u03B5\\u03C4\\u03B5 \\u03C0\\u03BF\\u03B9\\u03BF\\u03B9 \\u03B5\\u03AF\\u03B4\\u03B1\\u03BD \\u03C4\\u03B1 tasks \\u03C3\\u03B1\\u03C2!`}}else if(tier===\"pro\"||tier===\"ultimate\"){const proViews=dashboard.activeTasks.reduce((sum,t)=>sum+t.proViews,0);if(proViews>0){conversionMessage=`${proViews} PRO \\u03B5\\u03B9\\u03B4\\u03B9\\u03BA\\u03BF\\u03AF \\u03B5\\u03AF\\u03B4\\u03B1\\u03BD \\u03C4\\u03B1 tasks \\u03C3\\u03B1\\u03C2.`}}return c.json({...dashboard,conversionMessage,tier})});app.get(\"/recommendations\",import_auth.requireAuth,import_plan.withPlan,async c=>{const user=c.get(\"user\");const plan=c.get(\"plan\");const tier=plan?.tier??\"free\";const recommendations=[];const isHelperReady=await(0,import_helper_capability.getHelperCapability)(user.id);if(isHelperReady){if(tier===\"free\"){recommendations.push({key:\"upgrade_pro\",title:\"\\u0391\\u03BD\\u03B1\\u03B2\\u03B1\\u03B8\\u03BC\\u03AF\\u03C3\\u03C4\\u03B5 \\u03C3\\u03B5 Pro\",description:\"\\u039B\\u03AC\\u03B2\\u03B5\\u03C4\\u03B5 \\u03C0\\u03B5\\u03C1\\u03B9\\u03C3\\u03C3\\u03CC\\u03C4\\u03B5\\u03C1\\u03BF\\u03C5\\u03C2 \\u03C0\\u03B5\\u03BB\\u03AC\\u03C4\\u03B5\\u03C2, \\u03B4\\u03B5\\u03AF\\u03BE\\u03C4\\u03B5 \\u03C4\\u03B1 \\u03C3\\u03C4\\u03BF\\u03B9\\u03C7\\u03B5\\u03AF\\u03B1 \\u03B5\\u03C0\\u03B9\\u03BA\\u03BF\\u03B9\\u03BD\\u03C9\\u03BD\\u03AF\\u03B1\\u03C2 \\u03BA\\u03B1\\u03B9 \\u03C0\\u03C1\\u03BF\\u03B2\\u03BB\\u03B7\\u03B8\\u03B5\\u03AF\\u03C4\\u03B5 \\u03C8\\u03B7\\u03BB\\u03CC\\u03C4\\u03B5\\u03C1\\u03B1 \\u03C3\\u03C4\\u03B7\\u03BD \\u03B1\\u03BD\\u03B1\\u03B6\\u03AE\\u03C4\\u03B7\\u03C3\\u03B7.\",action:\"/plans\"},{key:\"add_portfolio\",title:\"\\u03A0\\u03C1\\u03BF\\u03C3\\u03B8\\u03AD\\u03C3\\u03C4\\u03B5 portfolio\",description:\"\\u039F\\u03B9 \\u03B5\\u03B9\\u03B4\\u03B9\\u03BA\\u03BF\\u03AF \\u03BC\\u03B5 portfolio \\u03BB\\u03B1\\u03BC\\u03B2\\u03AC\\u03BD\\u03BF\\u03C5\\u03BD 3x \\u03C0\\u03B5\\u03C1\\u03B9\\u03C3\\u03C3\\u03CC\\u03C4\\u03B5\\u03C1\\u03B1 \\u03B1\\u03B9\\u03C4\\u03AE\\u03BC\\u03B1\\u03C4\\u03B1.\",action:\"/portfolio\"})}else if(tier===\"pro\"){recommendations.push({key:\"upgrade_ultimate\",title:\"\\u0391\\u03BD\\u03B1\\u03B2\\u03B1\\u03B8\\u03BC\\u03AF\\u03C3\\u03C4\\u03B5 \\u03C3\\u03B5 Ultimate\",description:\"\\u0395\\u03BD\\u03B5\\u03C1\\u03B3\\u03BF\\u03C0\\u03BF\\u03B9\\u03AE\\u03C3\\u03C4\\u03B5 \\u03B1\\u03C5\\u03C4\\u03CC\\u03BC\\u03B1\\u03C4\\u03B7 \\u03B1\\u03C0\\u03CC\\u03BA\\u03C1\\u03B9\\u03C3\\u03B7, badge \\u03B5\\u03C0\\u03B1\\u03BB\\u03AE\\u03B8\\u03B5\\u03C5\\u03C3\\u03B7\\u03C2 \\u03BA\\u03B1\\u03B9 \\u03B1\\u03C0\\u03B5\\u03C1\\u03B9\\u03CC\\u03C1\\u03B9\\u03C3\\u03C4\\u03B5\\u03C2 \\u03B4\\u03B5\\u03BE\\u03B9\\u03CC\\u03C4\\u03B7\\u03C4\\u03B5\\u03C2.\",action:\"/plans\"});if(!plan?.hasGoogleCalendar){recommendations.push({key:\"enable_calendar\",title:\"\\u03A3\\u03C5\\u03BD\\u03B4\\u03AD\\u03C3\\u03C4\\u03B5 Google Calendar\",description:\"\\u03A3\\u03C5\\u03B3\\u03C7\\u03C1\\u03BF\\u03BD\\u03AF\\u03C3\\u03C4\\u03B5 \\u03C4\\u03BF \\u03C0\\u03C1\\u03CC\\u03B3\\u03C1\\u03B1\\u03BC\\u03BC\\u03AC \\u03C3\\u03B1\\u03C2 \\u03B1\\u03C5\\u03C4\\u03CC\\u03BC\\u03B1\\u03C4\\u03B1.\",action:\"/schedule\"})}}else if(tier===\"ultimate\"){const[autoResp]=await import_db.db.select({isEnabled:import_db2.autoResponseSettings.isEnabled}).from(import_db2.autoResponseSettings).where((0,import_drizzle_orm.eq)(import_db2.autoResponseSettings.specialistId,user.id));if(!autoResp?.isEnabled){recommendations.push({key:\"enable_auto_response\",title:\"\\u0395\\u03BD\\u03B5\\u03C1\\u03B3\\u03BF\\u03C0\\u03BF\\u03B9\\u03AE\\u03C3\\u03C4\\u03B5 \\u03B1\\u03C5\\u03C4\\u03CC\\u03BC\\u03B1\\u03C4\\u03B7 \\u03B1\\u03C0\\u03CC\\u03BA\\u03C1\\u03B9\\u03C3\\u03B7\",description:\"\\u039C\\u03B7\\u03BD \\u03C7\\u03AC\\u03BD\\u03B5\\u03C4\\u03B5 \\u03C0\\u03B1\\u03C1\\u03B1\\u03B3\\u03B3\\u03B5\\u03BB\\u03AF\\u03B5\\u03C2 \\u2014 \\u03B1\\u03C0\\u03B1\\u03BD\\u03C4\\u03AE\\u03C3\\u03C4\\u03B5 \\u03B1\\u03C5\\u03C4\\u03CC\\u03BC\\u03B1\\u03C4\\u03B1 \\u03C3\\u03B5 \\u03BA\\u03B1\\u03C4\\u03AC\\u03BB\\u03BB\\u03B7\\u03BB\\u03B1 \\u03B1\\u03B9\\u03C4\\u03AE\\u03BC\\u03B1\\u03C4\\u03B1.\",action:\"/auto-response\"})}}}else{if(tier===\"free\"){recommendations.push({key:\"upgrade_pro\",title:\"\\u0391\\u03BD\\u03B1\\u03B2\\u03B1\\u03B8\\u03BC\\u03AF\\u03C3\\u03C4\\u03B5 \\u03C3\\u03B5 Pro\",description:\"\\u0395\\u03C0\\u03B9\\u03BA\\u03BF\\u03B9\\u03BD\\u03C9\\u03BD\\u03AE\\u03C3\\u03C4\\u03B5 \\u03BC\\u03B5 \\u03CC\\u03BB\\u03BF\\u03C5\\u03C2 \\u03C4\\u03BF\\u03C5\\u03C2 \\u03B5\\u03B9\\u03B4\\u03B9\\u03BA\\u03BF\\u03CD\\u03C2 \\u03BA\\u03B1\\u03B9 \\u03B4\\u03B5\\u03AF\\u03C4\\u03B5 \\u03C3\\u03C4\\u03B1\\u03C4\\u03B9\\u03C3\\u03C4\\u03B9\\u03BA\\u03AC \\u03B1\\u03BD\\u03B1\\u03B6\\u03AE\\u03C4\\u03B7\\u03C3\\u03B7\\u03C2.\",action:\"/plans\"})}else if(tier===\"pro\"){recommendations.push({key:\"upgrade_ultimate\",title:\"\\u0391\\u03BD\\u03B1\\u03B2\\u03B1\\u03B8\\u03BC\\u03AF\\u03C3\\u03C4\\u03B5 \\u03C3\\u03B5 Ultimate\",description:\"\\u0391\\u03C5\\u03C4\\u03CC\\u03BC\\u03B1\\u03C4\\u03BF\\u03C2 \\u03B1\\u03BD\\u03C4\\u03B9\\u03C3\\u03C4\\u03BF\\u03AF\\u03C7\\u03B9\\u03C3\\u03B7 \\u03BC\\u03B5 \\u03C4\\u03BF\\u03BD \\u03BA\\u03B1\\u03BB\\u03CD\\u03C4\\u03B5\\u03C1\\u03BF \\u03B5\\u03B9\\u03B4\\u03B9\\u03BA\\u03CC \\u03B3\\u03B9\\u03B1 \\u03BA\\u03AC\\u03B8\\u03B5 \\u03B5\\u03C1\\u03B3\\u03B1\\u03C3\\u03AF\\u03B1.\",action:\"/plans\"})}else if(tier===\"ultimate\"){recommendations.push({key:\"try_auto_match\",title:\"\\u0394\\u03BF\\u03BA\\u03B9\\u03BC\\u03AC\\u03C3\\u03C4\\u03B5 \\u03B1\\u03C5\\u03C4\\u03CC\\u03BC\\u03B1\\u03C4\\u03B7 \\u03B1\\u03BD\\u03C4\\u03B9\\u03C3\\u03C4\\u03BF\\u03AF\\u03C7\\u03B9\\u03C3\\u03B7\",description:\"\\u0392\\u03C1\\u03B5\\u03AF\\u03C4\\u03B5 \\u03C4\\u03BF\\u03BD \\u03C4\\u03AD\\u03BB\\u03B5\\u03B9\\u03BF \\u03B5\\u03B9\\u03B4\\u03B9\\u03BA\\u03CC \\u03B1\\u03C5\\u03C4\\u03CC\\u03BC\\u03B1\\u03C4\\u03B1 \\u03B2\\u03AC\\u03C3\\u03B5\\u03B9 \\u03B2\\u03B1\\u03B8\\u03BC\\u03BF\\u03BB\\u03BF\\u03B3\\u03AF\\u03B1\\u03C2 \\u03BA\\u03B1\\u03B9 \\u03B5\\u03BC\\u03C0\\u03B5\\u03B9\\u03C1\\u03AF\\u03B1\\u03C2.\",action:\"/auto-match\"})}}return c.json({tier,recommendations})});var fomo_default=app;\n})()\n","warnings":[],"map":{"version":3,"mappings":"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","names":["import_db"],"ignoreList":[],"sources":["/opt/canhelp/apps/api/src/routes/fomo.ts"],"sourcesContent":[null]}}