Edit: /tmp/tsx-0/17887-677e8fbdf8d002f4152286b2e4e9685ec740eb17 (7509B)
{"code":"__filename=\"/opt/canhelp/apps/api/src/lib/daily-limits.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,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 daily_limits_exports={};__export(daily_limits_exports,{checkMessageLimit:()=>checkMessageLimit,checkOrderLimit:()=>checkOrderLimit,getDailyUsageSummary:()=>getDailyUsageSummary,incrementMessages:()=>incrementMessages,incrementOrders:()=>incrementOrders});module.exports=__toCommonJS(daily_limits_exports);var import_drizzle_orm=require(\"drizzle-orm\");var import_db=require(\"../db.js\");var import_db2=require(\"@canhelp/db\");function todayDate(){return new Date().toLocaleDateString(\"sv-SE\",{timeZone:\"Europe/Athens\"})}__name(todayDate,\"todayDate\");async function getOrCreateUsage(userId){const date=todayDate();const[existing]=await import_db.db.select().from(import_db2.dailyUsage).where((0,import_drizzle_orm.and)((0,import_drizzle_orm.eq)(import_db2.dailyUsage.userId,userId),(0,import_drizzle_orm.eq)(import_db2.dailyUsage.date,date)));if(existing)return existing;const[created]=await import_db.db.insert(import_db2.dailyUsage).values({userId,date,messagesSent:0,ordersMade:0}).onConflictDoNothing().returning();if(!created){const[retry]=await import_db.db.select().from(import_db2.dailyUsage).where((0,import_drizzle_orm.and)((0,import_drizzle_orm.eq)(import_db2.dailyUsage.userId,userId),(0,import_drizzle_orm.eq)(import_db2.dailyUsage.date,date)));return retry}return created}__name(getOrCreateUsage,\"getOrCreateUsage\");async function getUserPlan(userId){const[user]=await import_db.db.select({planId:import_db2.users.planId}).from(import_db2.users).where((0,import_drizzle_orm.eq)(import_db2.users.id,userId));if(!user?.planId)return null;const[plan]=await import_db.db.select().from(import_db2.plans).where((0,import_drizzle_orm.eq)(import_db2.plans.id,user.planId));return plan??null}__name(getUserPlan,\"getUserPlan\");async function checkMessageLimit(userId,plan){const userPlan=plan??await getUserPlan(userId);const limit=userPlan?.maxMessagesPerDay??null;if(limit===null){return{allowed:true,current:0,limit:null,remaining:null}}const usage=await getOrCreateUsage(userId);const current=usage.messagesSent;const remaining=Math.max(0,limit-current);return{allowed:current