"use strict";exports.id=149,exports.ids=[149],exports.modules={40149:(a,b,c)=>{c.d(b,{etatJeuxDemo:()=>g,purgerJeuxDemo:()=>h});var d=c(95725);function e(a){try{let b=JSON.parse(a);return Array.isArray(b)?b.filter(a=>"string"==typeof a):[]}catch{return[]}}async function f(a,b){let c,d=await a.importDemo.findMany({orderBy:{horodatage:"desc"}}),f=new Set,g=new Set,h=new Set;for(let a of d){for(let b of e(a.tenants))f.add(b);for(let b of e(a.utilisateurs))g.add(b);for(let b of e(a.fournisseurs))h.add(b)}let i=d.length>0?"trace":"detection",j=new Map;for(let a of b?.interventions??[]){let b=j.get(a.client)??[];b.push(a.numero),j.set(a.client,b)}let k=new Set(b?.clients.map(a=>a.code)??[]),l=new Map((b?.clients??[]).map(a=>[a.code,a.nom]));c="trace"===i?[...f]:(await a.tenant.findMany({where:{code:{in:[...k]}},select:{code:!0,nom:!0}})).filter(a=>l.get(a.code)===a.nom).map(a=>a.code);let m=[...k].filter(a=>!c.includes(a)),n=[];for(let b of c){let c=await a.tenant.findUnique({where:{code:b},select:{code:!0,nom:!0}});c&&n.push({code:c.code,nom:c.nom,interventions:await a.ticket.count({where:{tenant:{code:b}}})})}let o=[];for(let b of m){let c=j.get(b)??[];if(!c.length)continue;let d=await a.tenant.findUnique({where:{code:b},select:{id:!0,code:!0,nom:!0}});if(!d)continue;let e=await a.ticket.count({where:{tenantId:d.id,numero:{in:c}}});e>0&&o.push({code:d.code,nom:d.nom,interventions:e})}let p=[...(b?.techniciens??[]).map(a=>a.email),...(b?.exploitants??[]).map(a=>a.email),...(b?.clients??[]).flatMap(a=>a.contacts.map(a=>a.email))],q="trace"===i?[...g]:p,r="trace"===i?[...h]:(b?.fournisseurs??[]).map(a=>a.nom);return{mode:i,imports:d,organisationsSupprimees:n,organisationsConservees:o,emails:q,nomsFournisseurs:r,numerosParCode:j}}async function g(a,b=null){let c=await f(a,b),[d,e]=await Promise.all([c.emails.length?a.user.count({where:{email:{in:c.emails}}}):0,c.nomsFournisseurs.length?a.fournisseur.count({where:{nom:{in:c.nomsFournisseurs}}}):0]),h=c.organisationsSupprimees.reduce((a,b)=>a+b.interventions,0)+c.organisationsConservees.reduce((a,b)=>a+b.interventions,0);return{present:c.organisationsSupprimees.length>0||c.organisationsConservees.length>0||d>0||e>0,mode:c.mode,imports:c.imports.map(a=>({id:a.id,libelle:a.libelle,genereLe:a.genereLe,horodatage:a.horodatage,auteurNom:a.auteurNom})),organisationsSupprimees:c.organisationsSupprimees,organisationsConservees:c.organisationsConservees,interventions:h,comptes:d,fournisseurs:e}}async function h(a,{protegerId:b,reference:c=null}){let e={organisations:0,interventionsSeules:0,interventions:0,comptes:0,fournisseurs:0,fichiers:0,avertissements:[]},g=await f(a,c),h=g.organisationsSupprimees.map(a=>a.code);async function i(b){for(let c of(await a.livrable.findMany({where:b,select:{cheminStockage:!0}})))try{await (0,d.Sg)(c.cheminStockage),e.fichiers+=1}catch{}}for(let b of(h.length&&(await i({tenant:{code:{in:h}}}),e.interventions+=g.organisationsSupprimees.reduce((a,b)=>a+b.interventions,0),e.organisations=(await a.tenant.deleteMany({where:{code:{in:h}}})).count),g.organisationsConservees)){let c=g.numerosParCode.get(b.code)??[],d=await a.tenant.findUnique({where:{code:b.code},select:{id:!0}});if(!d||!c.length)continue;let f=(await a.ticket.findMany({where:{tenantId:d.id,numero:{in:c}},select:{id:!0}})).map(a=>a.id);if(!f.length)continue;await i({ticketId:{in:f}}),await a.lienOptique.deleteMany({where:{ticketId:{in:f}}}),await a.journalEvenement.deleteMany({where:{entite:"Ticket",entiteId:{in:f}}});let h=await a.ticket.deleteMany({where:{id:{in:f}}});e.interventionsSeules+=h.count,e.interventions+=h.count}if(g.emails.length&&(e.comptes=(await a.user.deleteMany({where:{email:{in:g.emails},id:{not:b}}})).count),g.nomsFournisseurs.length){let b=await a.pieceRemplacee.count({where:{fournisseur:{nom:{in:g.nomsFournisseurs}}}});b>0&&e.avertissements.push(`${b} pi\xe8ce(s) d'interventions conserv\xe9es r\xe9f\xe9ren\xe7aient un fournisseur de d\xe9monstration : la r\xe9f\xe9rence a \xe9t\xe9 retir\xe9e, la pi\xe8ce est intacte.`),e.fournisseurs=(await a.fournisseur.deleteMany({where:{nom:{in:g.nomsFournisseurs}}})).count}return await a.importDemo.deleteMany({}),e}}};