![]() 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/user/ |
"use strict";(()=>{var e={};e.id=8188,e.ids=[8188],e.modules={8667:(e,r)=>{Object.defineProperty(r,"A",{enumerable:!0,get:function(){return i}});var i=function(e){return e.PAGES="PAGES",e.PAGES_API="PAGES_API",e.APP_PAGE="APP_PAGE",e.APP_ROUTE="APP_ROUTE",e.IMAGE="IMAGE",e}({})},15806:e=>{e.exports=require("next-auth/next")},16382:e=>{e.exports=require("next-auth/providers/credentials")},33480:(e,r,i)=>{e.exports=i(75600)},39767:e=>{e.exports=import("stripe")},41822:(e,r,i)=>{i.d(r,{N:()=>o});var t=i(16382),a=i.n(t),s=i(74729),n=i(76760);let o={providers:[a()({name:"Credentials",credentials:{email:{label:"Email",type:"email"},password:{label:"Password",type:"password"}},async authorize(e){if(!e?.email||!e?.password)return null;try{let r=await n.z.user.findUnique({where:{email:e.email},select:{id:!0,email:!0,password:!0,role:!0,name:!0,isVerified:!0,verificationStatus:!0}});if(!r||!await (0,s.compare)(e.password,r.password))return null;let{password:i,...t}=r;return{...t,name:t.name||t.email}}catch(e){return console.error("Auth error:",e),null}}})],session:{strategy:"jwt",maxAge:2592e3},cookies:{sessionToken:{name:"__Secure-next-auth.session-token",options:{httpOnly:!0,sameSite:"lax",path:"/",secure:!0,domain:process.env.COOKIE_DOMAIN}}},pages:{signIn:"/auth/login",signOut:"/auth/login",error:"/auth/error"},callbacks:{async jwt({token:e,user:r,trigger:i}){try{if(console.log("JWT Callback - trigger:",i),console.log("JWT Callback - user:",r?{id:r.id,email:r.email,role:r.role}:null),r)e.id=r.id,e.role=r.role,e.email=r.email,e.name=r.name||r.email,e.profilePicture=r.profilePicture||void 0,e.username=r.username||void 0,e.isVerified=r.isVerified||!1,e.verificationStatus=r.verificationStatus||"PENDING",e.isImpersonating=r.isImpersonating||!1,e.originalUser=r.originalUser||void 0,console.log("JWT Callback - Updated token from user:",{id:e.id,role:e.role,isImpersonating:e.isImpersonating});else if(e.id)try{console.log("JWT Callback - Checking for impersonation sessions...");let r=await n.z.impersonationSession.findFirst({where:{originalUserId:e.id,isActive:!0,expiresAt:{gt:new Date}},include:{impersonatedUser:{select:{id:!0,email:!0,name:!0,role:!0,profilePicture:!0,username:!0}},originalUser:{select:{id:!0,email:!0,name:!0,role:!0,profilePicture:!0,username:!0}}}});if(r){let i=r.impersonatedUser;e.id=i.id,e.email=i.email,e.name=i.name||i.email,e.role=i.role,e.profilePicture=i.profilePicture||void 0,e.username=i.username||void 0,e.isImpersonating=!0,e.originalUser={id:r.originalUser.id,email:r.originalUser.email,name:r.originalUser.name||r.originalUser.email,role:r.originalUser.role,profilePicture:r.originalUser.profilePicture||void 0,username:r.originalUser.username||void 0},console.log("JWT Callback - Applied impersonation:",{originalId:e.originalUser.id,impersonatedId:e.id,originalRole:e.originalUser.role,impersonatedRole:e.role})}else e.isImpersonating&&(e.originalUser&&(console.log("JWT Callback - Restoring original user from token"),e.id=e.originalUser.id,e.email=e.originalUser.email,e.name=e.originalUser.name||e.originalUser.email,e.role=e.originalUser.role,e.profilePicture=e.originalUser.profilePicture||void 0,e.username=e.originalUser.username||void 0),e.isImpersonating=!1,e.originalUser=void 0,console.log("JWT Callback - Cleared impersonation state"))}catch(r){console.error("JWT Callback - Database error:",r),e.isImpersonating&&e.originalUser&&(console.log("JWT Callback - Error occurred, restoring original user"),e.id=e.originalUser.id,e.email=e.originalUser.email,e.name=e.originalUser.name||e.originalUser.email,e.role=e.originalUser.role,e.profilePicture=e.originalUser.profilePicture||void 0,e.username=e.originalUser.username||void 0,e.isImpersonating=!1,e.originalUser=void 0)}return console.log("JWT Callback - Final token:",{id:e.id,email:e.email,role:e.role,isImpersonating:e.isImpersonating}),e}catch(r){return console.error("JWT Callback - Error:",r),e}},async session({session:e,token:r}){try{return console.log("Session Callback - token:",{id:r.id,email:r.email,role:r.role,isImpersonating:r.isImpersonating}),console.log("Session Callback - session before:",e),r&&e.user&&(e.user.id=r.id,e.user.role=r.role,e.user.email=r.email,e.user.name=r.name,e.user.profilePicture=r.profilePicture,e.user.username=r.username,e.user.isVerified=r.isVerified,e.user.verificationStatus=r.verificationStatus,e.user.isImpersonating=r.isImpersonating,e.user.originalUser=r.originalUser),console.log("Session Callback - session after:",e),console.log("Session Callback - Final user ID:",e.user?.id),e}catch(r){return console.error("Session Callback - Error:",r),e}},redirect:async({url:e,baseUrl:r})=>e===r||e===`${r}/`||e.endsWith("/auth/login")?r:e.startsWith("/")?`${r}${e}`:e.startsWith(r)?e:r},secret:process.env.NEXTAUTH_SECRET||"3560f921b7bbf968e64fbc2835960840d184fcb95977e960a2124de6bbbed2d3",debug:!1}},48054:(e,r,i)=>{i.a(e,async(e,t)=>{try{i.r(r),i.d(r,{default:()=>d});var a=i(15806),s=i(41822),n=i(76760),o=i(59055),l=e([o]);async function d(e,r){let i=await (0,a.getServerSession)(e,r,s.N);if(!i?.user)return r.status(401).json({message:"Unauthorized"});if("GET"===e.method)try{r.status(200).json({paymentMethods:[{id:"pm_1",type:"card",last4:"4242",brand:"visa",expMonth:12,expYear:2025,isDefault:!0,country:"CA",fingerprint:"abc123"},{id:"pm_2",type:"card",last4:"5555",brand:"mastercard",expMonth:8,expYear:2026,isDefault:!1,country:"CA",fingerprint:"def456"}]})}catch(e){console.error("Error fetching payment methods:",e),r.status(500).json({message:"Error fetching payment methods"})}else if("POST"===e.method)try{let{paymentMethodId:t}=e.body;if(!t)return r.status(400).json({message:"Payment method ID is required"});let a=await u(i.user.id,i.user.email);await o._4.paymentMethods.attach(t,{customer:a.id});let s=await o._4.paymentMethods.list({customer:a.id,type:"card"});1===s.data.length&&await o._4.customers.update(a.id,{invoice_settings:{default_payment_method:t}});let n=await o._4.paymentMethods.retrieve(t),l={id:n.id,type:n.type,last4:n.card?.last4||"",brand:n.card?.brand||"",expMonth:n.card?.exp_month||0,expYear:n.card?.exp_year||0,isDefault:1===s.data.length,country:n.card?.country||"",fingerprint:n.card?.fingerprint||""};r.status(200).json({paymentMethod:l})}catch(e){console.error("Error adding payment method:",e),r.status(500).json({message:"Error adding payment method"})}else r.status(405).json({message:"Method not allowed"})}async function u(e,r){let i=await n.z.userSubscription.findFirst({where:{userId:e},select:{id:!0,stripeCustomerId:!0}});if(i?.stripeCustomerId)return await o._4.customers.retrieve(i.stripeCustomerId);let t=await o._4.customers.create({email:r,metadata:{userId:e}});return i?await n.z.userSubscription.update({where:{id:i.id},data:{stripeCustomerId:t.id}}):await n.z.userSubscription.create({data:{userId:e,planId:"default",status:"ACTIVE",stripeCustomerId:t.id,currentPeriodStart:new Date,currentPeriodEnd:new Date}}),t}o=(l.then?(await l)():l)[0],t()}catch(e){t(e)}})},59055:(e,r,i)=>{i.a(e,async(e,t)=>{try{i.d(r,{Vv:()=>n,_4:()=>l,uY:()=>o});var a=i(39767),s=e([a]);let l=new(a=(s.then?(await s)():s)[0]).default(process.env.STRIPE_SECRET_KEY||""),d=[{name:"Apprentice",minXp:0,minDegrees:0,platformFeeDiscount:0,discountedRate:.1,benefits:["Basic platform access","Standard support"]},{name:"Fellow",minXp:100,minDegrees:1,platformFeeDiscount:.05,discountedRate:.09,benefits:["5% platform fee discount","Priority support","Access to Fellow resources"]},{name:"Brother",minXp:500,minDegrees:2,platformFeeDiscount:.1,discountedRate:.08,benefits:["10% platform fee discount","Exclusive Brother resources","Mentorship opportunities"]},{name:"Master",minXp:1e3,minDegrees:3,platformFeeDiscount:.15,discountedRate:.07,benefits:["15% platform fee discount","Master-level resources","Leadership opportunities"]},{name:"Grand Master",minXp:2500,minDegrees:4,platformFeeDiscount:.2,discountedRate:.06,benefits:["20% platform fee discount","Grand Master privileges","System governance rights"]},{name:"Sovereign",minXp:5e3,minDegrees:5,platformFeeDiscount:.25,discountedRate:.05,benefits:["25% platform fee discount","Sovereign privileges","Full system access"]}];function n(e=[],r=0){let i=e.filter(e=>e.ceremonyCompleted).length;for(let e=d.length-1;e>=0;e--){let t=d[e];if(r>=t.minXp&&i>=t.minDegrees)return t}return null}function o(e,r){let i=e*parseFloat(process.env.DEFAULT_PLATFORM_FEE||"0.10");return r?i*r.platformFeeDiscount:0}t()}catch(e){t(e)}})},74729:e=>{e.exports=require("bcryptjs")},75600:e=>{e.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},76760:(e,r,i)=>{i.d(r,{z:()=>a});var t=i(96330);let a=globalThis.prisma??new t.PrismaClient({log:["error"]})},86435:(e,r)=>{Object.defineProperty(r,"M",{enumerable:!0,get:function(){return function e(r,i){return i in r?r[i]:"then"in r&&"function"==typeof r.then?r.then(r=>e(r,i)):"function"==typeof r&&"default"===i?r:void 0}}})},96057:(e,r,i)=>{i.a(e,async(e,t)=>{try{i.r(r),i.d(r,{config:()=>u,default:()=>d,routeModule:()=>m});var a=i(33480),s=i(8667),n=i(86435),o=i(48054),l=e([o]);o=(l.then?(await l)():l)[0];let d=(0,n.M)(o,"default"),u=(0,n.M)(o,"config"),m=new a.PagesAPIRouteModule({definition:{kind:s.A.PAGES_API,page:"/api/user/payment-methods",pathname:"/api/user/payment-methods",bundlePath:"",filename:""},userland:o});t()}catch(e){t(e)}})},96330:e=>{e.exports=require("@prisma/client")}};var r=require("../../../webpack-api-runtime.js");r.C(e);var i=r(r.s=96057);module.exports=i})();