import{j as r}from"./main.84523976.js";const s="capture-jobs",$=async(e={})=>(await r.get(s,{params:e})).data,D=async()=>(await r.get(`${s}/resumen`)).data,A=async(e={})=>(await r.get(`${s}/agente/estado`,{params:e})).data,L=async(e={})=>(await r.post(s,e)).data,M=async e=>(await r.get(`${s}/${e}`)).data,F=async e=>(await r.post(`${s}/${e}/cancelar`)).data,T=800,b=45e3,j=12e3;class x extends Error{constructor(t="El agente local de Macuspana no est\xE1 en l\xEDnea."){super(t),this.name="AgenteCapturaOfflineError"}}async function S(){var t;const e=await A();return(t=e==null?void 0:e.data)!=null?t:e}async function u(){var e;try{const t=await S();return Boolean((e=t==null?void 0:t.resumen)==null?void 0:e.alguno_en_linea)}catch{return!1}}async function O(){const e=await u();if(e||!window.Swal)return e;if(!(await window.Swal.fire({icon:"warning",title:"Agente local sin conexi\xF3n",html:'El <strong>print-agent</strong> en Macuspana no responde. Inicie <code>print-agent\\run.bat</code> en la PC de caseta. <br><a href="/impresion/cola?tab=estado-agente">Ver estado del agente</a>',confirmButtonText:"Continuar de todos modos",showCancelButton:!0,cancelButtonText:"Cancelar"})).isConfirmed)throw new x("Captura cancelada: agente local sin conexi\xF3n.");return!1}async function R({usoCamara:e,contexto:t="general",tipo:_="captura_operacion",timeoutMs:g=b,verificarAgente:E=!0,onProgress:n}){var p,w,f,d,m;E&&await O();const o=await L({uso_camara:e,contexto:t,tipo:_}),c=(w=o==null?void 0:o.capture_job_id)!=null?w:(p=o==null?void 0:o.data)==null?void 0:p.id;if(!c)throw new Error(((d=(f=o==null?void 0:o.errors)==null?void 0:f.capture)==null?void 0:d[0])||"No se pudo encolar la captura.");n==null||n({estado:"pending",capture_job_id:c});const C=Date.now()+g,h=Date.now();let l=!1;for(;Date.now()<C;){await B(T);const i=await M(c),a=(m=i==null?void 0:i.data)!=null?m:i;if(n==null||n(a),(a==null?void 0:a.estado)==="completed"&&(a==null?void 0:a.foto_url))return{capture_job_id:c,foto_ruta:a.foto_ruta,foto_url:a.foto_url,metodo_captura:a.metodo_captura};if((a==null?void 0:a.estado)==="failed")throw new Error((a==null?void 0:a.error_mensaje)||"La captura fall\xF3 en el agente local.");if((a==null?void 0:a.estado)==="cancelled")throw new Error((a==null?void 0:a.error_mensaje)||"La captura fue cancelada.");!l&&Date.now()-h>j&&((a==null?void 0:a.estado)==="pending"||(a==null?void 0:a.estado)==="processing")&&(await u()||(l=!0,n==null||n({...a,agente_offline:!0})))}const y=await u();throw new Error(y?"Tiempo de espera agotado. Revise la cola de captura o el NVR.":"Tiempo de espera agotado. El agente local (print-agent) no est\xE1 activo en Macuspana.")}function v(e,t="Captura exitosa"){!e||!window.Swal||window.Swal.fire({title:t,imageUrl:e,imageAlt:"Foto capturada",imageWidth:640,confirmButtonText:"Cerrar"})}function B(e){return new Promise(t=>setTimeout(t,e))}export{$ as a,M as b,F as c,D as d,A as g,v as m,R as s};
