Edit: /tmp/tsx-0/17887-6a7b12e5059aca61abd1ff122f77940975208611 (9292B)
{"code":"__filename=\"/opt/canhelp/apps/api/src/routes/dashboard.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 dashboard_exports={};__export(dashboard_exports,{default:()=>dashboard_default});module.exports=__toCommonJS(dashboard_exports);var import_hono=require(\"hono\");var import_drizzle_orm=require(\"drizzle-orm\");var import_db=require(\"../db.js\");var import_db2=require(\"@canhelp/db\");var import_auth=require(\"../middleware/auth.js\");var import_daily_limits=require(\"../lib/daily-limits.js\");var import_google_oauth=require(\"../lib/google-oauth.js\");var import_helper_capability=require(\"../lib/helper-capability.js\");const app=new import_hono.Hono;app.get(\"/me\",import_auth.requireAuth,async c=>{const authUser=c.get(\"user\");const[user]=await import_db.db.select().from(import_db2.users).where((0,import_drizzle_orm.eq)(import_db2.users.id,authUser.id));if(!user)return c.json({error:\"User not found\"},404);let plan=null;if(user.planId){const[p]=await import_db.db.select().from(import_db2.plans).where((0,import_drizzle_orm.eq)(import_db2.plans.id,user.planId));plan=p??null}const usage=await(0,import_daily_limits.getDailyUsageSummary)(authUser.id,plan);const isHelperReady=await(0,import_helper_capability.getHelperCapability)(user.id);let stats={};const[unreadNotifications]=await import_db.db.select({total:(0,import_drizzle_orm.count)()}).from(import_db2.notifications).where((0,import_drizzle_orm.and)((0,import_drizzle_orm.eq)(import_db2.notifications.recipientId,user.id),(0,import_drizzle_orm.eq)(import_db2.notifications.isRead,false)));if(isHelperReady){const[cardCount]=await import_db.db.select({total:(0,import_drizzle_orm.count)()}).from(import_db2.specialistCards).where((0,import_drizzle_orm.and)((0,import_drizzle_orm.eq)(import_db2.specialistCards.specialistId,user.id),(0,import_drizzle_orm.eq)(import_db2.specialistCards.isActive,true)));const[totalCardCount]=await import_db.db.select({total:(0,import_drizzle_orm.count)()}).from(import_db2.specialistCards).where((0,import_drizzle_orm.eq)(import_db2.specialistCards.specialistId,user.id));const[portfolioCount]=await import_db.db.select({total:(0,import_drizzle_orm.count)()}).from(import_db2.portfolioItems).where((0,import_drizzle_orm.eq)(import_db2.portfolioItems.specialistId,user.id));const[offerCount]=await import_db.db.select({total:(0,import_drizzle_orm.count)()}).from(import_db2.offers).where((0,import_drizzle_orm.and)((0,import_drizzle_orm.eq)(import_db2.offers.specialistId,user.id),(0,import_drizzle_orm.eq)(import_db2.offers.status,\"pending\")));const[reviewCount]=await import_db.db.select({total:(0,import_drizzle_orm.count)()}).from(import_db2.reviews).where((0,import_drizzle_orm.eq)(import_db2.reviews.targetId,user.id));stats={cards:cardCount?.total??0,totalCards:totalCardCount?.total??0,maxCards:plan?.maxCards??1,portfolioItems:portfolioCount?.total??0,maxPortfolioItems:plan?.maxPortfolioItems??5,activeOffers:offerCount?.total??0,reviewsReceived:reviewCount?.total??0,unreadNotifications:unreadNotifications?.total??0}}else{const[activeTaskCount]=await import_db.db.select({total:(0,import_drizzle_orm.count)()}).from(import_db2.tasks).where((0,import_drizzle_orm.and)((0,import_drizzle_orm.eq)(import_db2.tasks.customerId,user.id),(0,import_drizzle_orm.eq)(import_db2.tasks.status,\"open\")));const[completedTaskCount]=await import_db.db.select({total:(0,import_drizzle_orm.count)()}).from(import_db2.tasks).where((0,import_drizzle_orm.and)((0,import_drizzle_orm.eq)(import_db2.tasks.customerId,user.id),(0,import_drizzle_orm.eq)(import_db2.tasks.status,\"completed\")));stats={activeTasks:activeTaskCount?.total??0,completedTasks:completedTaskCount?.total??0,unreadNotifications:unreadNotifications?.total??0}}let googleCalendar=null;if(isHelperReady&&plan?.hasGoogleCalendar){try{googleCalendar=await(0,import_google_oauth.getCalendarStatus)(user.id)}catch{googleCalendar={connected:false}}}const planExpiration=user.planExpiresAt?{expiresAt:user.planExpiresAt,daysLeft:Math.max(0,Math.ceil((new Date(user.planExpiresAt).getTime()-Date.now())/(1e3*60*60*24)))}:null;const features=plan?{canContactFreePlan:plan.canContactFreePlan,canContactProPlan:plan.canContactProPlan,canContactAll:plan.canContactAll,canShowContactInfo:plan.canShowContactInfo,canViewPhone:plan.canViewPhone,canUploadVideo:plan.canUploadVideo,hasFavorites:plan.hasFavorites,hasGoogleCalendar:plan.hasGoogleCalendar,hasVerifiedBadge:plan.hasVerifiedBadge,hasPersonalSite:plan.hasPersonalSite,hasCanHelpNowStatus:plan.hasCanHelpNowStatus,hasNeedHelpStatus:plan.hasNeedHelpStatus,hasAutoResponse:plan.hasAutoResponse,hasAutoMatch:plan.hasAutoMatch,hasPriceList:plan.hasPriceList,highlightedReviews:plan.highlightedReviews,searchBoost:plan.searchBoost,notifyNewTasks:plan.notifyNewTasks}:null;const[showPricingSetting]=await import_db.db.select({value:import_db2.settings.value}).from(import_db2.settings).where((0,import_drizzle_orm.eq)(import_db2.settings.key,\"general.showPricing\"));return c.json({plan:plan?{id:plan.id,name:plan.name,role:plan.role,tier:plan.tier,price:plan.price}:null,planExpiration,usage,stats,features,showPricing:showPricingSetting?.value!==\"false\",googleCalendar,personalSiteSlug:user.personalSiteSlug})});var dashboard_default=app;\n})()\n","warnings":[],"map":{"version":3,"mappings":"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","names":["import_db","settingsTable"],"ignoreList":[],"sources":["/opt/canhelp/apps/api/src/routes/dashboard.ts"],"sourcesContent":[null]}}