1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64033],{64033:function(e,i,a){a.r(i),a.d(i,{generateAffiliateCode:function(){return n},generateAffiliateCouponCode:function(){return o},provisionAffiliateProfile:function(){return l}});var t=a(96621);async function o(e){let i=e.normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-zA-Z\s]/g,"").replace(/\b(de|da|do|dos|das|e)\b/gi,"").replace(/\s+/g," ").trim().toUpperCase().split(" ").filter(Boolean),a=i[0]||"USER",o=i.length>1?i[i.length-1]:"",n=i.slice(1,-1).map(e=>e[0]).join(""),l=[];for(let e of(l.push("".concat(a,"10")),o&&l.push("".concat(a).concat(o[0],"10")),o&&o.length>=2&&l.push("".concat(a).concat(o.slice(0,2),"10")),o&&l.push("".concat(a).concat(o,"10")),n&&l.push("".concat(a).concat(n).concat((null==o?void 0:o[0])||"","10")),l)){let i=e.slice(0,20);if(!await t.prisma.coupon.findFirst({where:{code:{equals:i,mode:"insensitive"}}}))return i}let c=0;for(;;){c++;let e="".concat(a).concat(c,"10").slice(0,20);if(!await t.prisma.coupon.findFirst({where:{code:{equals:e,mode:"insensitive"}}}))return e;if(c>100){let e=Math.random().toString(36).slice(2,6).toUpperCase();return"".concat(a).concat(e,"10").slice(0,20)}}}async function n(e){let i=e.normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-zA-Z\s]/g,"").replace(/\s+/g," ").trim().toLowerCase().split(" ").filter(Boolean),a=i[0]||"USER",o=i.length>1?i[i.length-1]:"",n=[];for(let e of(o&&n.push("".concat(a).concat(o)),n.push(a),o&&n.push("".concat(a).concat(o[0])),n)){let i=e.slice(0,16);if(!await t.prisma.affiliateProfile.findFirst({where:{affiliateCode:{equals:i,mode:"insensitive"}}}))return i}let l=(a+((null==o?void 0:o[0])||"")).slice(0,12),c=0;for(;;){c++;let e=Math.random().toString(36).slice(2,6),i="".concat(l).concat(e).slice(0,16);if(!await t.prisma.affiliateProfile.findFirst({where:{affiliateCode:{equals:i,mode:"insensitive"}}}))return i;if(c>50)return"".concat(l).concat(Date.now().toString(36)).slice(0,16)}}async function l(e,i){let a=await t.prisma.affiliateProfile.findUnique({where:{userId:e},select:{id:!0,affiliateCode:!0,autoCouponCode:!0}});if(null==a?void 0:a.autoCouponCode)return{profileId:a.id,affiliateCode:a.affiliateCode,couponCode:a.autoCouponCode};let l=(null==a?void 0:a.affiliateCode)||await n(i),c=await o(i);if(a)return await t.prisma.coupon.create({data:{code:c,discount:10,type:"PERCENT",active:!0,isAffiliateAuto:!0,isGlobal:!0,maxUses:0,affiliateProfileId:a.id,affiliateCode:a.affiliateCode}}),await t.prisma.affiliateProfile.update({where:{id:a.id},data:{autoCouponCode:c}}),{profileId:a.id,affiliateCode:a.affiliateCode,couponCode:c};let r=await t.prisma.affiliateProfile.create({data:{userId:e,affiliateCode:l,autoCouponCode:c,commissionRate:10,status:"ACTIVE"}});return await t.prisma.coupon.create({data:{code:c,discount:10,type:"PERCENT",active:!0,isAffiliateAuto:!0,isGlobal:!0,maxUses:0,affiliateProfileId:r.id,affiliateCode:l}}),await t.prisma.user.update({where:{id:e},data:{isAffiliate:!0}}).catch(()=>{}),{profileId:r.id,affiliateCode:l,couponCode:c}}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.