Edit: /tmp/tsx-0/17887-0561f75984050d8215eb1ecf84c19919a5119ae3 (50041B)
{"code":"__filename=\"/opt/canhelp/apps/api/src/routes/tasks.ts\";(()=>{\n\"use strict\";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,\"name\",{value,configurable:true});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc2)=>{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:!(desc2=__getOwnPropDesc(from,key))||desc2.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var tasks_exports={};__export(tasks_exports,{default:()=>tasks_default});module.exports=__toCommonJS(tasks_exports);var import_hono=require(\"hono\");var import_zod_validator=require(\"@hono/zod-validator\");var import_zod=require(\"zod\");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_translate=require(\"../translate.js\");var import_email=require(\"../lib/email.js\");var import_notif=require(\"../lib/notif.js\");var import_telegram=require(\"../lib/telegram.js\");var import_nameUtils=require(\"../lib/nameUtils.js\");var import_turnstile=require(\"../lib/turnstile.js\");var import_daily_limits=require(\"../lib/daily-limits.js\");var import_fomo=require(\"../lib/fomo.js\");var import_auto_response=require(\"./auto-response.js\");var import_helper_capability=require(\"../lib/helper-capability.js\");const app=new import_hono.Hono;function shouldBypassTaskCaptcha(c){const origin=c.req.header(\"Origin\")??\"\";const userAgent=(c.req.header(\"User-Agent\")??\"\").toLowerCase();if(origin)return false;return userAgent.includes(\"dart\")||userAgent.includes(\"flutter\")||userAgent.includes(\"cfnetwork\")||userAgent.includes(\"okhttp\")}__name(shouldBypassTaskCaptcha,\"shouldBypassTaskCaptcha\");async function expandCategorySlugs(slug){const parent=await import_db.db.select({id:import_db2.categories.id}).from(import_db2.categories).where((0,import_drizzle_orm.eq)(import_db2.categories.slug,slug)).limit(1);if(!parent.length)return[slug];const children=await import_db.db.select({slug:import_db2.categories.slug}).from(import_db2.categories).where((0,import_drizzle_orm.eq)(import_db2.categories.parentId,parent[0].id));return children.length>0?[slug,...children.map(c=>c.slug)]:[slug]}__name(expandCategorySlugs,\"expandCategorySlugs\");async function expandLocationSlugs(slug){const parent=await import_db.db.select({id:import_db2.locations.id}).from(import_db2.locations).where((0,import_drizzle_orm.eq)(import_db2.locations.slug,slug)).limit(1);if(!parent.length)return[slug];const children=await import_db.db.select({slug:import_db2.locations.slug}).from(import_db2.locations).where((0,import_drizzle_orm.eq)(import_db2.locations.parentId,parent[0].id));if(!children.length)return[slug];return[slug,...children.map(c=>c.slug)]}__name(expandLocationSlugs,\"expandLocationSlugs\");const createTaskSchema=import_zod.z.object({title:import_zod.z.string().min(5).max(200),description:import_zod.z.string().min(20),budget:import_zod.z.number().positive().optional(),budgetNegotiable:import_zod.z.boolean().default(false),category:import_zod.z.string().optional(),location:import_zod.z.string().optional(),district:import_zod.z.string().optional(),street:import_zod.z.string().optional(),houseNumber:import_zod.z.string().optional(),timeSlot:import_zod.z.string().optional(),confidentialNote:import_zod.z.string().optional(),images:import_zod.z.array(import_zod.z.string().url()).optional(),deadline:import_zod.z.string().datetime().optional(),expiresAt:import_zod.z.string().datetime().optional(),status:import_zod.z.enum([\"draft\",\"open\"]).default(\"open\"),locale:import_zod.z.enum([\"el\",\"en\",\"uk\",\"ru\"]).default(\"el\"),captchaToken:import_zod.z.string().optional(),inviteSpecialistIds:import_zod.z.array(import_zod.z.string().min(1).max(64)).max(10).optional()});app.get(\"/budget-range\",async c=>{const q=c.req.query(\"q\");const category=c.req.query(\"category\");const location=c.req.query(\"location\");const conditions=[(0,import_drizzle_orm.eq)(import_db2.tasks.status,\"open\"),import_drizzle_orm.sql`${import_db2.tasks.budget} IS NOT NULL`];if(q)conditions.push((0,import_drizzle_orm.or)((0,import_drizzle_orm.ilike)(import_db2.tasks.title,`%${q}%`),(0,import_drizzle_orm.ilike)(import_db2.tasks.description,`%${q}%`)));if(category){const catSlugs=await expandCategorySlugs(category);conditions.push(catSlugs.length>1?(0,import_drizzle_orm.inArray)(import_db2.tasks.category,catSlugs):(0,import_drizzle_orm.eq)(import_db2.tasks.category,catSlugs[0]))}if(location){const slugs=await expandLocationSlugs(location);const locFilter=slugs.length>1?(0,import_drizzle_orm.inArray)(import_db2.tasks.location,slugs):(0,import_drizzle_orm.eq)(import_db2.tasks.location,slugs[0]);conditions.push((0,import_drizzle_orm.or)(locFilter,(0,import_drizzle_orm.isNull)(import_db2.tasks.location)))}const[result]=await import_db.db.select({min:(0,import_drizzle_orm.min)(import_drizzle_orm.sql`CAST(${import_db2.tasks.budget} AS numeric)`),max:(0,import_drizzle_orm.max)(import_drizzle_orm.sql`CAST(${import_db2.tasks.budget} AS numeric)`)}).from(import_db2.tasks).where((0,import_drizzle_orm.and)(...conditions));return c.json({min:result?.min?Math.floor(Number(result.min)):0,max:result?.max?Math.ceil(Number(result.max)):0})});app.get(\"/\",async c=>{const page=Number(c.req.query(\"page\")||1);const limit=Math.min(Number(c.req.query(\"limit\")||20),100);const offset=(page-1)*limit;const q=c.req.query(\"q\");const category=c.req.query(\"category\");const location=c.req.query(\"location\");const budgetMin=c.req.query(\"budgetMin\");const budgetMax=c.req.query(\"budgetMax\");const conditions=[(0,import_drizzle_orm.eq)(import_db2.tasks.status,\"open\")];if(q)conditions.push((0,import_drizzle_orm.or)((0,import_drizzle_orm.ilike)(import_db2.tasks.title,`%${q}%`),(0,import_drizzle_orm.ilike)(import_db2.tasks.description,`%${q}%`),(0,import_drizzle_orm.ilike)(import_db2.tasks.titleEl,`%${q}%`),(0,import_drizzle_orm.ilike)(import_db2.tasks.titleEn,`%${q}%`),(0,import_drizzle_orm.ilike)(import_db2.tasks.titleRu,`%${q}%`),(0,import_drizzle_orm.ilike)(import_db2.tasks.titleUk,`%${q}%`)));if(category){const catSlugs=await expandCategorySlugs(category);conditions.push(catSlugs.length>1?(0,import_drizzle_orm.inArray)(import_db2.tasks.category,catSlugs):(0,import_drizzle_orm.eq)(import_db2.tasks.category,catSlugs[0]))}if(location){const slugs=await expandLocationSlugs(location);const locFilter=slugs.length>1?(0,import_drizzle_orm.inArray)(import_db2.tasks.location,slugs):(0,import_drizzle_orm.eq)(import_db2.tasks.location,slugs[0]);conditions.push((0,import_drizzle_orm.or)(locFilter,(0,import_drizzle_orm.isNull)(import_db2.tasks.location)))}if(budgetMin)conditions.push((0,import_drizzle_orm.gte)(import_drizzle_orm.sql`CAST(${import_db2.tasks.budget} AS numeric)`,Number(budgetMin)));if(budgetMax)conditions.push((0,import_drizzle_orm.lte)(import_drizzle_orm.sql`CAST(${import_db2.tasks.budget} AS numeric)`,Number(budgetMax)));const where=(0,import_drizzle_orm.and)(...conditions);const[rows,[{total}]]=await Promise.all([import_db.db.select({task:import_db2.tasks,customer:{id:import_db2.users.id,name:import_db2.users.name,firstName:import_db2.users.firstName,lastName:import_db2.users.lastName,image:import_db2.users.image,rating:import_drizzle_orm.sql`(SELECT ROUND(AVG(r.rating)::numeric, 1) FROM reviews r WHERE r.target_id = ${import_db2.users.id})`}}).from(import_db2.tasks).leftJoin(import_db2.users,(0,import_drizzle_orm.eq)(import_db2.tasks.customerId,import_db2.users.id)).where(where).orderBy((0,import_drizzle_orm.desc)(import_db2.tasks.createdAt)).limit(limit).offset(offset),import_db.db.select({total:(0,import_drizzle_orm.count)()}).from(import_db2.tasks).where(where)]);return c.json({data:rows,total,page,limit})});app.get(\"/search\",async c=>{const q=c.req.query(\"q\")||\"\";const category=c.req.query(\"category\");const location=c.req.query(\"location\");const page=Number(c.req.query(\"page\")||1);const limit=Math.min(Number(c.req.query(\"limit\")||20),100);const offset=(page-1)*limit;const conditions=[(0,import_drizzle_orm.eq)(import_db2.tasks.status,\"open\")];if(q)conditions.push((0,import_drizzle_orm.or)((0,import_drizzle_orm.ilike)(import_db2.tasks.title,`%${q}%`),(0,import_drizzle_orm.ilike)(import_db2.tasks.description,`%${q}%`),(0,import_drizzle_orm.ilike)(import_db2.tasks.titleEl,`%${q}%`),(0,import_drizzle_orm.ilike)(import_db2.tasks.titleEn,`%${q}%`),(0,import_drizzle_orm.ilike)(import_db2.tasks.titleRu,`%${q}%`),(0,import_drizzle_orm.ilike)(import_db2.tasks.titleUk,`%${q}%`)));if(category){const catSlugs=await expandCategorySlugs(category);conditions.push(catSlugs.length>1?(0,import_drizzle_orm.inArray)(import_db2.tasks.category,catSlugs):(0,import_drizzle_orm.eq)(import_db2.tasks.category,catSlugs[0]))}if(location){const slugs=await expandLocationSlugs(location);const locFilter=slugs.length>1?(0,import_drizzle_orm.inArray)(import_db2.tasks.location,slugs):(0,import_drizzle_orm.eq)(import_db2.tasks.location,slugs[0]);conditions.push((0,import_drizzle_orm.or)(locFilter,(0,import_drizzle_orm.isNull)(import_db2.tasks.location)))}const rows=await import_db.db.select().from(import_db2.tasks).where((0,import_drizzle_orm.and)(...conditions)).orderBy((0,import_drizzle_orm.desc)(import_db2.tasks.createdAt)).limit(limit).offset(offset);const[{total}]=await import_db.db.select({total:(0,import_drizzle_orm.count)()}).from(import_db2.tasks).where((0,import_drizzle_orm.and)(...conditions));return c.json({data:rows,total,page,limit})});app.get(\"/counts-by-category\",async c=>{const conditions=[(0,import_drizzle_orm.eq)(import_db2.tasks.status,\"open\"),import_drizzle_orm.sql`${import_db2.tasks.category} IS NOT NULL`];const locationsParam=c.req.query(\"locations\");if(locationsParam){const locationSlugs=locationsParam.split(\",\");const allExpanded=[];for(const slug of locationSlugs){const expanded=await expandLocationSlugs(slug.trim());allExpanded.push(...expanded)}const unique=[...new Set(allExpanded)];if(unique.length>0)conditions.push((0,import_drizzle_orm.inArray)(import_db2.tasks.location,unique))}const categoriesParam=c.req.query(\"categories\");if(categoriesParam){const cats=categoriesParam.split(\",\").map(s=>s.trim()).filter(Boolean);if(cats.length>0)conditions.push((0,import_drizzle_orm.inArray)(import_db2.tasks.category,cats))}const rows=await import_db.db.select({category:import_db2.tasks.category,cnt:(0,import_drizzle_orm.count)()}).from(import_db2.tasks).where((0,import_drizzle_orm.and)(...conditions)).groupBy(import_db2.tasks.category);const result={};for(const row of rows){if(row.category)result[row.category]=Number(row.cnt)}return c.json(result)});app.get(\"/for-me\",import_auth.requireAuth,async c=>{const user=c.get(\"user\");const isHelperReady=(0,import_helper_capability.isAdminRole)(user.role)?true:await(0,import_helper_capability.getHelperCapability)(user.id);if(!isHelperReady){return c.json({error:\"Only specialists can use this endpoint\"},403)}const cards=await import_db.db.select({categories:import_db2.specialistCards.categories,locations:import_db2.specialistCards.locations}).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)));if(!cards.length){return c.json({noCards:true,data:[],total:0,page:1,limit:20})}const myCategories=[...new Set(cards.flatMap(c2=>c2.categories??[]))];const myLocations=[...new Set(cards.flatMap(c2=>c2.locations??[]))];const page=Number(c.req.query(\"page\")||1);const limit=Math.min(Number(c.req.query(\"limit\")||20),100);const offset=(page-1)*limit;const q=c.req.query(\"q\");const categoryFilter=c.req.query(\"category\");const locationFilter=c.req.query(\"location\");const budgetMin=c.req.query(\"budgetMin\");const budgetMax=c.req.query(\"budgetMax\");const conditions=[(0,import_drizzle_orm.eq)(import_db2.tasks.status,\"open\")];if(categoryFilter){const catSlugs=await expandCategorySlugs(categoryFilter);const catFilter=catSlugs.length>1?(0,import_drizzle_orm.inArray)(import_db2.tasks.category,catSlugs):(0,import_drizzle_orm.eq)(import_db2.tasks.category,catSlugs[0]);conditions.push((0,import_drizzle_orm.or)(catFilter,(0,import_drizzle_orm.isNull)(import_db2.tasks.category)))}else if(myCategories.length>0){conditions.push((0,import_drizzle_orm.or)((0,import_drizzle_orm.inArray)(import_db2.tasks.category,myCategories),(0,import_drizzle_orm.isNull)(import_db2.tasks.category)))}if(locationFilter){const slugs=await expandLocationSlugs(locationFilter);const locFilter=slugs.length>1?(0,import_drizzle_orm.inArray)(import_db2.tasks.location,slugs):(0,import_drizzle_orm.eq)(import_db2.tasks.location,slugs[0]);conditions.push((0,import_drizzle_orm.or)(locFilter,(0,import_drizzle_orm.isNull)(import_db2.tasks.location)))}else if(myLocations.length>0){const allSlugs=[];for(const loc of myLocations){const expanded=await expandLocationSlugs(loc);allSlugs.push(...expanded)}const unique=[...new Set(allSlugs)];if(unique.length>0)conditions.push((0,import_drizzle_orm.or)((0,import_drizzle_orm.inArray)(import_db2.tasks.location,unique),(0,import_drizzle_orm.isNull)(import_db2.tasks.location)))}if(q)conditions.push((0,import_drizzle_orm.or)((0,import_drizzle_orm.ilike)(import_db2.tasks.title,`%${q}%`),(0,import_drizzle_orm.ilike)(import_db2.tasks.description,`%${q}%`),(0,import_drizzle_orm.ilike)(import_db2.tasks.titleEl,`%${q}%`),(0,import_drizzle_orm.ilike)(import_db2.tasks.titleEn,`%${q}%`),(0,import_drizzle_orm.ilike)(import_db2.tasks.titleRu,`%${q}%`),(0,import_drizzle_orm.ilike)(import_db2.tasks.titleUk,`%${q}%`)));if(budgetMin)conditions.push((0,import_drizzle_orm.gte)(import_drizzle_orm.sql`CAST(${import_db2.tasks.budget} AS numeric)`,Number(budgetMin)));if(budgetMax)conditions.push((0,import_drizzle_orm.lte)(import_drizzle_orm.sql`CAST(${import_db2.tasks.budget} AS numeric)`,Number(budgetMax)));const where=(0,import_drizzle_orm.and)(...conditions);const[rows,[{total}]]=await Promise.all([import_db.db.select({task:import_db2.tasks,customer:{id:import_db2.users.id,name:import_db2.users.name,firstName:import_db2.users.firstName,lastName:import_db2.users.lastName,image:import_db2.users.image,rating:import_drizzle_orm.sql`(SELECT ROUND(AVG(r.rating)::numeric, 1) FROM reviews r WHERE r.target_id = ${import_db2.users.id})`}}).from(import_db2.tasks).leftJoin(import_db2.users,(0,import_drizzle_orm.eq)(import_db2.tasks.customerId,import_db2.users.id)).where(where).orderBy((0,import_drizzle_orm.desc)(import_db2.tasks.createdAt)).limit(limit).offset(offset),import_db.db.select({total:(0,import_drizzle_orm.count)()}).from(import_db2.tasks).where(where)]);const taskIds=rows.map(r=>r.task.id);const existingOffers=taskIds.length?await import_db.db.select({taskId:import_db2.offers.taskId}).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.inArray)(import_db2.offers.taskId,taskIds))):[];const offeredSet=new Set(existingOffers.map(o=>o.taskId));const data=rows.map(r=>({...r,alreadyOffered:offeredSet.has(r.task.id)}));return c.json({data,total:Number(total),page,limit})});app.get(\"/my\",import_auth.requireAuth,async c=>{const user=c.get(\"user\");const rows=await import_db.db.select().from(import_db2.tasks).where((0,import_drizzle_orm.eq)(import_db2.tasks.customerId,user.id)).orderBy((0,import_drizzle_orm.desc)(import_db2.tasks.createdAt));if(rows.length===0)return c.json([]);const taskIds=rows.map(r=>r.id);const offerCounts=await import_db.db.select({taskId:import_db2.offers.taskId,total:(0,import_drizzle_orm.count)(),declined:(0,import_drizzle_orm.count)(import_drizzle_orm.sql`CASE WHEN ${import_db2.offers.status} = 'declined' THEN 1 END`)}).from(import_db2.offers).where((0,import_drizzle_orm.inArray)(import_db2.offers.taskId,taskIds)).groupBy(import_db2.offers.taskId);const countMap={};for(const row of offerCounts){if(row.taskId)countMap[row.taskId]={total:Number(row.total),declined:Number(row.declined)}}return c.json(rows.map(t=>({...t,offerCount:countMap[t.id]?.total??0,declinedCount:countMap[t.id]?.declined??0})))});app.get(\"/:id\",async c=>{const[row]=await import_db.db.select({task:import_db2.tasks,customer:{id:import_db2.users.id,name:import_db2.users.name,firstName:import_db2.users.firstName,lastName:import_db2.users.lastName,image:import_db2.users.image,rating:import_drizzle_orm.sql`(SELECT ROUND(AVG(r.rating)::numeric, 1) FROM reviews r WHERE r.target_id = ${import_db2.users.id})`}}).from(import_db2.tasks).leftJoin(import_db2.users,(0,import_drizzle_orm.eq)(import_db2.tasks.customerId,import_db2.users.id)).where((0,import_drizzle_orm.eq)(import_db2.tasks.id,c.req.param(\"id\")));if(!row)return c.json({error:\"Not found\"},404);const requestingUserId=c.var.user?.id??null;const isOwner=requestingUserId===row.task.customerId;let isAcceptedSpecialist=false;if(requestingUserId&&!isOwner){const[acceptedOffer]=await import_db.db.select({specialistId:import_db2.offers.specialistId}).from(import_db2.offers).where((0,import_drizzle_orm.and)((0,import_drizzle_orm.eq)(import_db2.offers.taskId,row.task.id),(0,import_drizzle_orm.eq)(import_db2.offers.specialistId,requestingUserId),(0,import_drizzle_orm.eq)(import_db2.offers.status,\"accepted\"))).limit(1);isAcceptedSpecialist=!!acceptedOffer}const canSeeConfidential=isOwner||isAcceptedSpecialist;const taskData=canSeeConfidential?row.task:{...row.task,confidentialNote:null,street:null,houseNumber:null};return c.json({...row,task:taskData})});async function notifySpecialistsAboutNewTask(task,customer){if(!task.category)return;let customerTier=\"free\";const[custUser]=await import_db.db.select({planId:import_db2.users.planId}).from(import_db2.users).where((0,import_drizzle_orm.eq)(import_db2.users.id,customer.id));if(custUser?.planId){const[custPlan]=await import_db.db.select({tier:import_db2.plans.tier}).from(import_db2.plans).where((0,import_drizzle_orm.eq)(import_db2.plans.id,custUser.planId));customerTier=custPlan?.tier??\"free\"}const matchingCards=await import_db.db.select({specialistId:import_db2.specialistCards.specialistId}).from(import_db2.specialistCards).where((0,import_drizzle_orm.and)((0,import_drizzle_orm.eq)(import_db2.specialistCards.isActive,true),import_drizzle_orm.sql`${task.category} = ANY(${import_db2.specialistCards.categories})`));if(!matchingCards.length)return;const specialistIds=[...new Set(matchingCards.map(c=>c.specialistId))].filter(id=>id!==task.customerId);if(!specialistIds.length)return;const dispatchCondition=customerTier===\"free\"?(0,import_drizzle_orm.eq)(import_db2.plans.receiveInstantDispatchFree,true):customerTier===\"pro\"?(0,import_drizzle_orm.eq)(import_db2.plans.receiveInstantDispatchPro,true):(0,import_drizzle_orm.eq)(import_db2.plans.notifyNewTasks,true);const specialists=await import_db.db.select({id:import_db2.users.id,email:import_db2.users.email,firstName:import_db2.users.firstName,lastName:import_db2.users.lastName,locale:import_db2.users.locale}).from(import_db2.users).leftJoin(import_db2.plans,(0,import_drizzle_orm.eq)(import_db2.users.planId,import_db2.plans.id)).where((0,import_drizzle_orm.and)((0,import_drizzle_orm.inArray)(import_db2.users.id,specialistIds),(0,import_drizzle_orm.eq)(import_db2.users.notifyNewTasks,true),dispatchCondition));const customerName=(0,import_nameUtils.abbrevName)(customer.firstName,customer.lastName,customer.name);for(const specialist of specialists){const specialistName=(0,import_nameUtils.abbrevName)(specialist.firstName,specialist.lastName,specialist.email);const specLocale=specialist.locale||\"el\";(0,import_notif.notifyTaskInvite)(specialist.id,task.title,task.id).catch(()=>{});(0,import_email.emailNewTask)({to:specialist.email,specialistName,taskTitle:task.title,taskId:task.id,customerName,locale:specLocale}).catch(e=>console.error(`[notify] email to ${specialist.email} failed:`,e))}}__name(notifySpecialistsAboutNewTask,\"notifySpecialistsAboutNewTask\");app.post(\"/\",import_auth.requireAuth,(0,import_zod_validator.zValidator)(\"json\",createTaskSchema),async c=>{const user=c.get(\"user\");const{locale,captchaToken,inviteSpecialistIds,...body}=c.req.valid(\"json\");const skipCaptcha=shouldBypassTaskCaptcha(c);const ok=skipCaptcha||await(0,import_turnstile.verifyTurnstile)(captchaToken,c.req.header(\"CF-Connecting-IP\"));if(!ok)return c.json({error:\"CAPTCHA verification failed. Please try again.\"},400);const orderCheck=await(0,import_daily_limits.checkOrderLimit)(user.id);if(!orderCheck.allowed){return c.json({error:\"Daily task creation limit reached\",code:\"DAILY_LIMIT_REACHED\",limit:orderCheck.limit,current:orderCheck.current},429)}const[task]=await import_db.db.insert(import_db2.tasks).values({...body,budget:body.budget?.toString(),deadline:body.deadline?new Date(body.deadline):null,expiresAt:body.expiresAt?new Date(body.expiresAt):null,customerId:user.id,originalLocale:locale,titleEl:locale===\"el\"?body.title:null,titleEn:locale===\"en\"?body.title:null,titleRu:locale===\"ru\"?body.title:null,titleUk:locale===\"uk\"?body.title:null,descriptionEl:locale===\"el\"?body.description:null,descriptionEn:locale===\"en\"?body.description:null,descriptionRu:locale===\"ru\"?body.description:null,descriptionUk:locale===\"uk\"?body.description:null}).returning();(0,import_translate.translateTaskAllLocales)(body.title,body.description,locale).then(async translations=>{const patch={};if(translations.el&&locale!==\"el\"){patch.titleEl=translations.el.title;patch.descriptionEl=translations.el.description}if(translations.en&&locale!==\"en\"){patch.titleEn=translations.en.title;patch.descriptionEn=translations.en.description}if(translations.ru&&locale!==\"ru\"){patch.titleRu=translations.ru.title;patch.descriptionRu=translations.ru.description}if(translations.uk&&locale!==\"uk\"){patch.titleUk=translations.uk.title;patch.descriptionUk=translations.uk.description}if(Object.keys(patch).length>0){await import_db.db.update(import_db2.tasks).set(patch).where((0,import_drizzle_orm.eq)(import_db2.tasks.id,task.id)).catch(e=>console.error(\"[translate] DB update failed:\",e))}if(task.status===\"open\"){const enabled=await(0,import_telegram.isNewTaskPostEnabled)().catch(()=>false);if(enabled){const siteUrl=process.env.WEB_URL||process.env.NEXT_PUBLIC_APP_URL||\"https://canhelp.gr\";const taskWithTranslations={...task,...patch};await(0,import_telegram.postTaskToChannels)(taskWithTranslations,siteUrl).catch(()=>{})}}}).catch(e=>console.error(\"[translate] background job failed:\",e));if(task.status===\"open\"&&task.category){notifySpecialistsAboutNewTask(task,user).catch(e=>console.error(\"[notify] background job failed:\",e))}if(task.status===\"open\"&&inviteSpecialistIds&&inviteSpecialistIds.length>0){const inviteIds=inviteSpecialistIds.filter(id=>id!==user.id);Promise.all(inviteIds.map(specialistId=>(0,import_notif.notifyTaskInvite)(specialistId,task.title,task.id).catch(e=>console.error(\"[invite] notify failed for\",specialistId,e)))).catch(()=>{})}if(task.status===\"open\"){(0,import_auto_response.triggerAutoResponses)({id:task.id,title:task.title,category:task.category,location:task.location,budget:task.budget,customerId:task.customerId}).catch(e=>console.error(\"[auto-response] trigger failed:\",e))}(0,import_daily_limits.incrementOrders)(user.id).catch(()=>{});return c.json(task,201)});app.patch(\"/:id\",import_auth.requireAuth,(0,import_zod_validator.zValidator)(\"json\",import_zod.z.object({title:import_zod.z.string().min(5).max(200).optional(),description:import_zod.z.string().min(20).optional(),budget:import_zod.z.number().positive().optional(),budgetNegotiable:import_zod.z.boolean().optional(),category:import_zod.z.string().optional(),location:import_zod.z.string().optional(),district:import_zod.z.string().optional(),street:import_zod.z.string().optional(),houseNumber:import_zod.z.string().optional(),timeSlot:import_zod.z.string().optional(),confidentialNote:import_zod.z.string().optional(),images:import_zod.z.array(import_zod.z.string().url()).optional(),deadline:import_zod.z.string().datetime().optional(),expiresAt:import_zod.z.string().datetime().optional(),status:import_zod.z.enum([\"draft\",\"open\"]).optional()})),async c=>{const user=c.get(\"user\");const[task]=await import_db.db.select().from(import_db2.tasks).where((0,import_drizzle_orm.eq)(import_db2.tasks.id,c.req.param(\"id\")));if(!task)return c.json({error:\"Not found\"},404);if(task.customerId!==user.id)return c.json({error:\"Forbidden\"},403);if(![\"draft\",\"open\"].includes(task.status)){return c.json({error:\"Task cannot be edited in its current status\"},400)}const body=c.req.valid(\"json\");const titleChanged=body.title!==void 0&&body.title!==task.title;const descChanged=body.description!==void 0&&body.description!==task.description;const retranslate=titleChanged||descChanged;const[updated]=await import_db.db.update(import_db2.tasks).set({...body,budget:body.budget?.toString(),deadline:body.deadline?new Date(body.deadline):void 0,expiresAt:body.expiresAt?new Date(body.expiresAt):void 0,updatedAt:new Date,...retranslate?{titleEl:null,titleEn:null,titleRu:null,titleUk:null,descriptionEl:null,descriptionEn:null,descriptionRu:null,descriptionUk:null}:{}}).where((0,import_drizzle_orm.eq)(import_db2.tasks.id,task.id)).returning();if(retranslate){const newTitle=body.title??task.title;const newDesc=body.description??task.description;const fromLocale=task.originalLocale??\"el\";(0,import_translate.translateTaskAllLocales)(newTitle,newDesc,fromLocale).then(async translations=>{const patch={};for(const lang of[\"el\",\"en\",\"ru\",\"uk\"]){const cap=__name(s=>s.charAt(0).toUpperCase()+s.slice(1),\"cap\");if(translations[lang]){patch[`title${cap(lang)}`]=translations[lang].title;patch[`description${cap(lang)}`]=translations[lang].description}}if(Object.keys(patch).length>0){await import_db.db.update(import_db2.tasks).set(patch).where((0,import_drizzle_orm.eq)(import_db2.tasks.id,task.id)).catch(e=>console.error(\"[translate] PATCH DB update failed:\",e))}}).catch(e=>console.error(\"[translate] PATCH background job failed:\",e))}if(updated.status===\"open\"){import_db.db.select({specialistId:import_db2.offers.specialistId}).from(import_db2.offers).where((0,import_drizzle_orm.and)((0,import_drizzle_orm.eq)(import_db2.offers.taskId,task.id),(0,import_drizzle_orm.eq)(import_db2.offers.status,\"pending\"))).then(async pendingOffers=>{for(const po of pendingOffers){(0,import_notif.notifyTaskUpdated)(po.specialistId,updated.title,task.id).catch(()=>{});const[sp]=await import_db.db.select().from(import_db2.users).where((0,import_drizzle_orm.eq)(import_db2.users.id,po.specialistId));if(sp?.email){(0,import_email.emailTaskUpdated)({to:sp.email,specialistName:sp.firstName||sp.name||\"\\u0395\\u03B9\\u03B4\\u03B9\\u03BA\\u03AD\",taskTitle:updated.title,taskId:task.id,locale:sp.locale||\"el\"}).catch(()=>{})}}}).catch(()=>{})}return c.json(updated)});app.patch(\"/:id/complete\",import_auth.requireAuth,async c=>{const user=c.get(\"user\");const[task]=await import_db.db.select().from(import_db2.tasks).where((0,import_drizzle_orm.eq)(import_db2.tasks.id,c.req.param(\"id\")));if(!task)return c.json({error:\"Not found\"},404);if(task.customerId!==user.id)return c.json({error:\"Forbidden\"},403);if(task.status!==\"in_progress\")return c.json({error:\"Task is not in progress\"},400);const[updated]=await import_db.db.update(import_db2.tasks).set({status:\"completed\",updatedAt:new Date}).where((0,import_drizzle_orm.eq)(import_db2.tasks.id,task.id)).returning();return c.json(updated)});app.patch(\"/:id/cancel\",import_auth.requireAuth,async c=>{const user=c.get(\"user\");const[task]=await import_db.db.select().from(import_db2.tasks).where((0,import_drizzle_orm.eq)(import_db2.tasks.id,c.req.param(\"id\")));if(!task)return c.json({error:\"Not found\"},404);if(task.customerId!==user.id)return c.json({error:\"Forbidden\"},403);if(![\"open\",\"in_progress\"].includes(task.status)){return c.json({error:\"Cannot cancel task in current status\"},400)}const[updated]=await import_db.db.update(import_db2.tasks).set({status:\"cancelled\",updatedAt:new Date}).where((0,import_drizzle_orm.eq)(import_db2.tasks.id,task.id)).returning();return c.json(updated)});app.post(\"/:id/view\",import_auth.requireAuth,async c=>{const user=c.get(\"user\");const taskId=c.req.param(\"id\");const[task]=await import_db.db.select({id:import_db2.tasks.id}).from(import_db2.tasks).where((0,import_drizzle_orm.eq)(import_db2.tasks.id,taskId));if(!task)return c.json({error:\"Not found\"},404);const stats=await(0,import_fomo.recordTaskView)(taskId,user.id);return c.json(stats)});app.get(\"/:id/stats\",import_auth.requireAuth,async c=>{const taskId=c.req.param(\"id\");const stats=await(0,import_fomo.getTaskStats)(taskId);return c.json(stats)});var tasks_default=app;\n})()\n","warnings":[],"map":{"version":3,"mappings":"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","names":["import_db","c"],"ignoreList":[],"sources":["/opt/canhelp/apps/api/src/routes/tasks.ts"],"sourcesContent":[null]}}