import{u as We}from"./useFormAutoSave-Jaawgo91.js";import{r as n,aX as M,c as v,aP as u,aY as N,aZ as L,a_ as K,a$ as Y,b0 as Pe,b1 as De}from"./index-BUdRbiwj.js";import{C as G,P as W,S as P,W as Ae,a as Ce}from"./workOrder-jNxj_kjQ.js";function je(){const l=n(!1),o=n(null),d=n([]),s=n(null),D=n({currentPage:0,pageSize:10,totalElements:0,totalPages:0}),w=M({...G}),{hasUnsavedChanges:V,lastSaveTime:X,saveNow:Z,restoreFormData:q,clearSavedData:H,hasSavedData:J,getSavedDataInfo:Q,markUserInteraction:ee,finishInitialization:te}=We(w,{storageKey:"work-order-form-auto-save",saveInterval:3e3,excludeFields:["id","createdAt","updatedAt","createdBy"],onRestore:e=>{console.log("Work order form data restored:",e.timestamp)},onSave:e=>{console.log("Work order form auto-saved")}}),p=M({filterFields:[],searchFields:["title","description"],searchValue:"",page:0,size:10,direction:"DESC",sortBy:"createdAt"}),f=n([]),h=n([]),O=n([]),F=n([]),k=n([]),b=n(!1),g=n(0),R=async(e={})=>{try{l.value=!0,o.value=null;const t={...p,...e},a=await u.search(t);return d.value=a.content||a,D.value={currentPage:a.currentPage||0,pageSize:a.pageSize||10,totalElements:a.totalElements||a.length||0,totalPages:a.totalPages||Math.ceil((a.totalElements||a.length||0)/(a.pageSize||10))},a}catch(t){throw o.value=t.message||"Failed to search work orders",t}finally{l.value=!1}},ae=async e=>{try{l.value=!0,o.value=null;const t=await u.getById(e);return s.value=t,t}catch(t){throw o.value=t.message||"Failed to get work order",t}finally{l.value=!1}},re=async(e=w)=>{try{l.value=!0,o.value=null;const t=await u.create(e);return d.value.unshift(t),A(),t}catch(t){throw o.value=t.message||"Failed to create work order",t}finally{l.value=!1}},oe=async(e,t)=>{var a;try{l.value=!0,o.value=null;const r=await u.update(e,t),c=d.value.findIndex(i=>i.id===e);return c!==-1&&(d.value[c]=r),((a=s.value)==null?void 0:a.id)===e&&(s.value=r),r}catch(r){throw o.value=r.message||"Failed to update work order",r}finally{l.value=!1}},le=async e=>{var t;try{return l.value=!0,o.value=null,await u.delete(e),d.value=d.value.filter(a=>a.id!==e),((t=s.value)==null?void 0:t.id)===e&&(s.value=null),!0}catch(a){throw o.value=a.message||"Failed to delete work order",a}finally{l.value=!1}},se=async(e,t,a="",r=null)=>{var c;try{l.value=!0,o.value=null;const i=await u.changeStatus(e,t,a,r),m=d.value.findIndex(y=>y.id===e);return m!==-1&&(d.value[m]=i),((c=s.value)==null?void 0:c.id)===e&&(s.value=i),i}catch(i){throw o.value=i.message||"Failed to change work order status",i}finally{l.value=!1}},ne=async(e,t)=>{var a;try{b.value=!0,g.value=0,o.value=null;const r=await De.upload(t,"work-orders");g.value=50;const c=await u.addFiles(e,r);return g.value=100,((a=s.value)==null?void 0:a.id)===e&&(s.value=c),r}catch(r){throw o.value=r.message||"Failed to upload files",r}finally{b.value=!1,g.value=0}},ie=async(e,t)=>{var a;try{l.value=!0,o.value=null;const r=await u.removeFile(e,t);return((a=s.value)==null?void 0:a.id)===e&&(s.value=r),r}catch(r){throw o.value=r.message||"Failed to remove file",r}finally{l.value=!1}},ue=async()=>{var e,t,a,r,c,i,m,y,I,T,U,z,B,E,_,j,x,$;try{const[S,ke,be,Re,Se]=await Promise.all([((t=(e=N).getMini)==null?void 0:t.call(e))||((r=(a=N).getAll)==null?void 0:r.call(a))||[],((i=(c=L).getMini)==null?void 0:i.call(c))||((y=(m=L).getAll)==null?void 0:y.call(m))||[],((T=(I=K).getMini)==null?void 0:T.call(I))||((z=(U=K).getAll)==null?void 0:z.call(U))||[],((E=(B=Y).getMini)==null?void 0:E.call(B))||((j=(_=Y).getAll)==null?void 0:j.call(_))||[],(($=(x=Pe).getAll)==null?void 0:$.call(x))||[]]);f.value=S,h.value=ke,O.value=be,F.value=Re,k.value=Se}catch(S){console.error("Failed to load dropdown options:",S)}},A=()=>{Object.assign(w,G)},ce=e=>(Object.assign(p,e),R()),de=()=>(p.filterFields=[],p.searchValue="",R()),ve=async()=>{try{return await u.getUrgentCount()}catch(e){return console.error("Failed to get urgent count:",e),0}},C=async(e,t={})=>{try{l.value=!0;const a=await u.generateReport(e,t),r=window.URL.createObjectURL(a);return{blob:a,url:r,size:a.size,type:a.type}}catch(a){throw o.value=a.message||"Failed to generate report",a}finally{l.value=!1}},pe=async(e,t={},a=null)=>{try{l.value=!0;const r=await u.downloadReport(e,t,a);return r&&console.log("Report downloaded successfully"),r}catch(r){throw o.value=r.message||"Failed to download report",r}finally{l.value=!1}},ge=async(e,t={})=>{try{const a=await C(e,t);if(!window.open(a.url,"_blank"))throw new Error("Popup blocked. Please allow popups for this site to preview reports.");return setTimeout(()=>{window.URL.revokeObjectURL(a.url)},3e4),a}catch(a){throw o.value=a.message||"Failed to preview report",a}},me=v(()=>Object.entries(W).map(([e,t])=>({value:e,title:t.label,badge:t.badge}))),we=v(()=>Object.entries(P).map(([e,t])=>({value:e,title:t.label,badge:t.badge}))),ye=v(()=>f.value.map(e=>{var t;return{value:e.id,title:`${e.name}${e.model?` (${e.model})`:""}`,subtitle:(t=e.location)==null?void 0:t.name}})),fe=v(()=>h.value.map(e=>({value:e.id,title:e.name,subtitle:e.address}))),he=v(()=>O.value.map(e=>({value:e.id,title:`${e.firstName} ${e.lastName}`,subtitle:e.jobTitle||e.email}))),Oe=v(()=>F.value.map(e=>({value:e.id,title:e.name,subtitle:e.description}))),Fe=v(()=>k.value.map(e=>({value:e.id,title:e.name,subtitle:e.description})));return{loading:l,error:o,workOrders:d,currentWorkOrder:s,pagination:D,workOrderForm:w,searchCriteria:p,uploadingFiles:b,uploadProgress:g,assets:f,locations:h,users:O,teams:F,categories:k,searchWorkOrders:R,getWorkOrder:ae,createWorkOrder:re,updateWorkOrder:oe,deleteWorkOrder:le,changeStatus:se,uploadFiles:ne,removeFile:ie,loadDropdownOptions:ue,resetForm:A,applyFilters:ce,clearFilters:de,getUrgentCount:ve,generateReport:C,downloadReport:pe,previewReport:ge,hasUnsavedChanges:V,lastSaveTime:X,saveNow:Z,restoreFormData:q,clearSavedData:H,hasSavedData:J,getSavedDataInfo:Q,markUserInteraction:ee,finishInitialization:te,priorityOptions:me,statusOptions:we,assetOptions:ye,locationOptions:fe,userOptions:he,teamOptions:Oe,categoryOptions:Fe,formatPriority:e=>{var t;return((t=W[e])==null?void 0:t.label)||e},formatStatus:e=>{var t;return((t=P[e])==null?void 0:t.label)||e},getPriorityBadge:e=>{var t;return((t=W[e])==null?void 0:t.badge)||"secondary"},getStatusBadge:e=>{var t;return((t=P[e])==null?void 0:t.badge)||"secondary"},WORK_ORDER_PRIORITY:Ce,WORK_ORDER_STATUS:Ae}}export{je as u};