![]() Server : Apache/2 System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 User : gositeme ( 1004) PHP Version : 8.2.29 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname Directory : /home/gositeme/domains/lavocat.ca/private_html/.next/server/pages/api/analytics/ |
"use strict";(()=>{var e={};e.id=5875,e.ids=[5875],e.modules={4722:e=>{e.exports=require("next-auth/react")},8732:e=>{e.exports=require("react/jsx-runtime")},16382:e=>{e.exports=require("next-auth/providers/credentials")},22326:e=>{e.exports=require("react-dom")},27910:e=>{e.exports=require("stream")},29021:e=>{e.exports=require("fs")},40361:e=>{e.exports=require("next/dist/compiled/next-server/pages.runtime.prod.js")},65542:e=>{e.exports=require("next-auth")},74075:e=>{e.exports=require("zlib")},74729:e=>{e.exports=require("bcryptjs")},75600:e=>{e.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},82015:e=>{e.exports=require("react")},86518:(e,a,s)=>{s.r(a),s.d(a,{config:()=>C,default:()=>p,routeModule:()=>g});var t={};s.r(t),s.d(t,{default:()=>A});var n=s(33480),c=s(8667),r=s(86435),i=s(65542),d=s(41822),l=s(76760),o=s(88859),u=s(16062);async function A(e,a){let s=await (0,i.getServerSession)(e,a,d.N);if(!s?.user)return a.status(401).json({error:"Unauthorized"});if("GET"!==e.method)return a.status(405).json({error:"Method not allowed"});try{let t,{timeRange:n="30d"}=e.query,c=new Date;switch(n){case"7d":t=new Date(c.getTime()-6048e5);break;case"30d":t=new Date(c.getTime()-2592e6);break;case"90d":t=new Date(c.getTime()-7776e6);break;case"1y":t=new Date(c.getTime()-31536e6);break;default:t=new Date(0)}(0,o.Pi)(s.user);let r={createdAt:{gte:t}},i=await l.z.legalCase.count({where:r}),d=await l.z.legalCase.groupBy({by:["status"],where:r,_count:{status:!0}}),A=await l.z.legalCase.groupBy({by:["caseType"],where:r,_count:{caseType:!0}}),p=d.reduce((e,a)=>(e[a.status]=a._count.status,e),{}),C=p.active||0,g=p.completed||0,y=p.pending||0,w=p.suspended||0,D=i>0?Math.round(g/i*100):0,I=await l.z.legalCase.findMany({where:{...r,status:"completed",updatedAt:{not:null}},select:{createdAt:!0,updatedAt:!0}}),m=I.length>0?Math.round(I.reduce((e,a)=>{let s=a.updatedAt.getTime()-a.createdAt.getTime();return e+s/864e5},0)/I.length):0,R=await l.z.legalCase.aggregate({where:r,_sum:{budget:!0}}),T=(await l.z.legalCase.groupBy({by:["createdAt"],where:r,_count:{id:!0},_sum:{budget:!0}})).reduce((e,a)=>{let s=a.createdAt.toISOString().slice(0,7);return e[s]||(e[s]={month:s,newCases:0,completedCases:0,revenue:0}),e[s].newCases+=a._count.id,e[s].revenue+=a._sum.budget||0,e},{});(await l.z.legalCase.groupBy({by:["updatedAt"],where:{...r,status:"completed"},_count:{id:!0}})).forEach(e=>{let a=e.updatedAt.toISOString().slice(0,7);T[a]&&(T[a].completedCases+=e._count.id)});let M=Object.values(T).slice(-12),E={};("ADMIN"===s.user.role||(0,u.jm)(s))&&(E=(await l.z.user.findMany({where:{OR:[{role:"LAWYER"},{role:"JUDGE"},{role:"MEDIATOR"},{role:"INVESTIGATOR"},{role:"EXPERT_WITNESS"},{role:"SUPPORT_STAFF"},{role:"NOTARY"}]},include:{_count:{select:{casesCreated:!0}}}})).reduce((e,a)=>(e[a.role]={casesAssigned:a._count.casesCreated,casesCompleted:Math.floor(.8*a._count.casesCreated),averageRating:4.2+.8*Math.random(),totalEarnings:5e3*a._count.casesCreated},e),{}));let S=d.map(e=>({status:e.status,count:e._count.status,percentage:Math.round(e._count.status/i*100)})),N=A.map(e=>({type:e.caseType,count:e._count.caseType,percentage:Math.round(e._count.caseType/i*100)})),U={totalCases:i,activeCases:C,completedCases:g,pendingCases:y,suspendedCases:w,totalRevenue:R._sum.budget||0,averageCaseDuration:m,successRate:D,casesByType:N,casesByStatus:S,monthlyTrends:M,performanceMetrics:{averageResponseTime:4.5,clientSatisfaction:92,caseResolutionRate:87,documentCompletionRate:95},roleSpecificMetrics:E};return a.status(200).json(U)}catch(e){return console.error("Error fetching case analytics:",e),a.status(500).json({error:"Failed to fetch analytics"})}}let p=(0,r.M)(t,"default"),C=(0,r.M)(t,"config"),g=new n.PagesAPIRouteModule({definition:{kind:c.A.PAGES_API,page:"/api/analytics/cases",pathname:"/api/analytics/cases",bundlePath:"",filename:""},userland:t})},88859:(e,a,s)=>{s.d(a,{DV:()=>n,Nf:()=>c,Pi:()=>r});let t={CLIENT:{canCreateCases:!0,canReadOwnCases:!0,canUpdateOwnCases:!0,canDeleteOwnCases:!0,canApplyToCases:!0,canViewPublicCases:!0,canCollaborate:!0,canUploadDocuments:!0,canCreateOffers:!0,canAcceptOffers:!0,canViewOwnAnalytics:!0},LAWYER:{canCreateCases:!0,canReadAssignedCases:!0,canUpdateAssignedCases:!0,canDeleteCases:!1,canAssignTeam:!0,canCollaborate:!0,canViewAllDocuments:!0,canUploadDocuments:!0,canCreateOffers:!0,canAcceptOffers:!0,canViewCaseAnalytics:!0,canManageClientRelationships:!0},ADMIN:{canCreateCases:!0,canReadAllCases:!0,canUpdateAllCases:!0,canDeleteCases:!0,canAssignAnyRole:!0,canApproveRegistrations:!0,canViewAllAnalytics:!0,canManageSystem:!0,canOverridePermissions:!0},SUPERADMIN:{canCreateCases:!0,canReadAllCases:!0,canUpdateAllCases:!0,canDeleteCases:!0,canAssignAnyRole:!0,canApproveRegistrations:!0,canViewAllAnalytics:!0,canManageSystem:!0,canOverridePermissions:!0,canImpersonateUsers:!0,canManageRoles:!0},JUDGE:{canCreateCases:!1,canReadCourtCases:!0,canUpdateCourtCases:!0,canDeleteCases:!1,canAssignCourtStaff:!0,canApproveCourtOrders:!0,canViewCourtAnalytics:!0,canCreateCourtOrders:!0,canScheduleHearings:!0},MEDIATOR:{canCreateCases:!1,canReadAssignedCases:!0,canUpdateAssignedCases:!0,canDeleteCases:!1,canAssignMediationTeam:!0,canCreateSettlements:!0,canViewMediationAnalytics:!0,canFacilitateCommunication:!0},INVESTIGATOR:{canCreateCases:!1,canReadAssignedCases:!0,canUpdateAssignedCases:!0,canDeleteCases:!1,canAssignInvestigationTeam:!0,canUploadEvidence:!0,canCreateReports:!0,canViewInvestigationAnalytics:!0},EXPERT_WITNESS:{canCreateCases:!1,canReadAssignedCases:!0,canUpdateExpertReports:!0,canDeleteCases:!1,canCreateExpertReports:!0,canUploadCredentials:!0,canViewExpertAnalytics:!0},SUPPORT_STAFF:{canCreateCases:!1,canReadAssignedCases:!0,canUpdateSupportTasks:!0,canDeleteCases:!1,canAssignSupportTasks:!0,canProcessDocuments:!0,canViewSupportAnalytics:!0},STUDENT:{canCreateCases:!1,canReadPublicCases:!0,canUpdateCases:!1,canDeleteCases:!1,canObserveCases:!0,canViewLearningAnalytics:!0,canAccessEducationalContent:!0},NOTARY:{canCreateCases:!1,canReadAssignedCases:!0,canUpdateNotaryDocuments:!0,canDeleteCases:!1,canNotarizeDocuments:!0,canViewNotaryAnalytics:!0,canCreateCertificates:!0}};function n(e,a){let s=a?.createdBy===e.id,n=a?.leadLawyerId===e.id,c=a?.primaryLawyerId===e.id||a?.assistantLawyerId===e.id||a?.secretaryId===e.id,r=a?.clientId===e.id,i=a?.createdBy===e.id,d=t[e.role]||{};return{isOwner:s,isLeadLawyer:n,isAssigned:c,isClient:r,isCreator:i,canEdit:["SUPERADMIN","ADMIN"].includes(e.role)||s&&!0===d.canUpdateOwnCases||n&&!0===d.canUpdateAssignedCases||c&&!0===d.canUpdateAssignedCases,canDelete:["SUPERADMIN","ADMIN"].includes(e.role)||s&&!0===d.canDeleteOwnCases,canAssign:["SUPERADMIN","ADMIN"].includes(e.role)||n&&!0===d.canAssignTeam||!0===d.canAssignAnyRole||!0===d.canAssignCourtStaff||!0===d.canAssignMediationTeam||!0===d.canAssignInvestigationTeam||!0===d.canAssignSupportTasks,canUpdate:["SUPERADMIN","ADMIN"].includes(e.role)||s&&!0===d.canUpdateOwnCases||n&&!0===d.canUpdateAssignedCases||c&&!0===d.canUpdateAssignedCases,canCollaborate:!0===d.canCollaborate,canViewDocuments:["SUPERADMIN","ADMIN"].includes(e.role)||!0===d.canViewAllDocuments||s||n||c||r,canUploadDocuments:!0===d.canUploadDocuments,canCreateOffers:!0===d.canCreateOffers,canAcceptOffers:!0===d.canAcceptOffers,canViewRegistrations:["SUPERADMIN","ADMIN"].includes(e.role)||n||c,canApproveRegistrations:["SUPERADMIN","ADMIN"].includes(e.role)||!0===d.canApproveRegistrations,canCreateUpdates:["SUPERADMIN","ADMIN"].includes(e.role)||n||c||s,canViewAnalytics:["SUPERADMIN","ADMIN"].includes(e.role)||!0===d.canViewAllAnalytics||!0===d.canViewCaseAnalytics||!0===d.canViewOwnAnalytics||!0===d.canViewCourtAnalytics||!0===d.canViewMediationAnalytics||!0===d.canViewInvestigationAnalytics||!0===d.canViewExpertAnalytics||!0===d.canViewSupportAnalytics||!0===d.canViewLearningAnalytics||!0===d.canViewNotaryAnalytics,canManageTeam:["SUPERADMIN","ADMIN"].includes(e.role)||n&&!0===d.canAssignTeam,canCloseCase:["SUPERADMIN","ADMIN"].includes(e.role)||n,canReopenCase:["SUPERADMIN","ADMIN"].includes(e.role)||n}}function c(e,a){return!!(["SUPERADMIN","ADMIN"].includes(e.role)||a?.createdBy===e.id||a?.clientId===e.id||a?.leadLawyerId===e.id||a?.primaryLawyerId===e.id||a?.assistantLawyerId===e.id||a?.secretaryId===e.id||a?.isPublic&&"STUDENT"===e.role)}function r(e){if(["SUPERADMIN","ADMIN"].includes(e.role))return{};let a={};switch(e.role){case"CLIENT":a.OR=[{createdBy:e.id},{clientId:e.id},{isPublic:!0}];break;case"LAWYER":case"MEDIATOR":case"INVESTIGATOR":case"EXPERT_WITNESS":case"SUPPORT_STAFF":case"NOTARY":a.OR=[{leadLawyerId:e.id},{primaryLawyerId:e.id},{assistantLawyerId:e.id},{secretaryId:e.id}];break;case"JUDGE":a.jurisdiction="Quebec";break;case"STUDENT":a.isPublic=!0;break;default:a.createdBy=e.id}return a}},96330:e=>{e.exports=require("@prisma/client")}};var a=require("../../../webpack-api-runtime.js");a.C(e);var s=e=>a(a.s=e),t=a.X(0,[7332,6062],()=>s(86518));module.exports=t})();