"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7192],{77192:(e,t,n)=>{n.r(t),n.d(t,{S3_CONFIG:()=>u,createUserFolderStructure:()=>w,deleteObject:()=>f,getObjectContent:()=>y,getPublicUrl:()=>b,listUserObjects:()=>h,putObject:()=>p,s3Client:()=>d,uploadMissionFile:()=>k});var c=n(34232),a=n(98939),r=n(95104),o=n(65677),s=n(43933),i=n(49509),l=n(44134).hp;let u={endpoint:"https://dome-api.slm-lab.net",region:"us-east-1",bucket:i.env.S3_BUCKET||"pages",accessKey:"4aBT4CMb7JIMMyUtp4Pl",secretKey:"HGn39XhCIlqOjmDVzRK9MED2Fci2rYvDDgbLFElg"},d=new c.Y({region:u.region,endpoint:u.endpoint,credentials:{accessKeyId:u.accessKey,secretAccessKey:u.secretKey},forcePathStyle:!0});async function p(e,t,n){let c=new a.w({Bucket:u.bucket,Key:e,Body:"string"==typeof t?l.from(t,"utf-8"):t,ContentType:n||"text/plain"});return await d.send(c),{key:e}}async function y(e){try{let t=new r.j({Bucket:u.bucket,Key:e}),n=await d.send(t);if(!n.Body)return null;let c=[];for await(let e of n.Body)c.push(e);return l.concat(c).toString("utf-8")}catch(e){return console.error("Error getting object content:",e),null}}async function f(e){let t=new o.k({Bucket:u.bucket,Key:e});await d.send(t)}async function h(e,t){let n="user-".concat(e,"/").concat(t,"/"),c=new s.u({Bucket:u.bucket,Prefix:n,Delimiter:"/"});return((await d.send(c)).Contents||[]).filter(e=>e.Key&&!e.Key.endsWith("/")&&!e.Key.includes(".placeholder")).map(e=>({key:e.Key,name:e.Key.split("/").pop()||e.Key,size:e.Size,lastModified:e.LastModified}))}function b(e,t){var n;if(!e)return"";if(e.startsWith("http"))return e;let c=e.startsWith("/")?e.substring(1):e,a=null==(n=u.endpoint)?void 0:n.replace(/\/$/,""),r=t||u.bucket;return a?"".concat(a,"/").concat(r,"/").concat(c):c}async function w(e){for(let t of["notes","diary","health","contacts"])try{let n="user-".concat(e,"/").concat(t,"/");await p(n,"","application/x-directory");let c="user-".concat(e,"/").concat(t,"/.placeholder");await p(c,"Folder placeholder","text/plain"),console.log("Created folder: ".concat(n))}catch(n){console.error("Error creating folder ".concat(t," for user ").concat(e,":"),n)}}async function k(e){let{missionId:t,file:n,type:c}=e,a=new FormData;a.append("missionId",t),a.append("type",c),a.append("file",n);let r=await fetch("/api/missions/upload",{method:"POST",body:a});return r.ok?{success:!0,data:await r.json()}:{success:!1,error:(await r.json().catch(()=>({}))).error||"Upload failed"}}}}]);