import{j as e,m as g}from"./vendor-animation-0s3FMHwK.js";import{h as G,g as Q,u as V,r as i,L as z}from"./vendor-react-BVs3cwbi.js";import{a as X,u as ee,F as l,A as B,C as se,c as u}from"./index-CNxd7jIT.js";import{F as ae}from"./Forbidden-D25jV3Oq.js";import"./vendor-utils-Dyr8OjFr.js";const h="/api/admin",te={aktivni:"Aktivní",dokonceny:"Dokončený",zruseny:"Zrušený"};function ne(d){if(!d)return"";const a=new Date(d),f=a.getDate(),N=a.getMonth()+1,p=a.getFullYear(),x=String(a.getHours()).padStart(2,"0"),b=String(a.getMinutes()).padStart(2,"0");return`${f}. ${N}. ${p} ${x}:${b}`}function ce(){const{id:d}=G(),a=X(),{hasPermission:f,isAdmin:N}=ee(),p=Q(),x=V(),[b,M]=i.useState(!0),[C,$]=i.useState(!1),[t,O]=i.useState(null),[o,D]=i.useState({name:"",status:"aktivni",start_date:"",end_date:"",responsible_user_id:""}),[R,U]=i.useState([]),[I,P]=i.useState(!1),[W,A]=i.useState(!1),[k,w]=i.useState([]),[_,H]=i.useState(!0),[y,E]=i.useState(""),[L,T]=i.useState(!1),[S,F]=i.useState(null);i.useEffect(()=>{x.state?.created&&(a.success("Projekt byl vytvořen"),p(x.pathname,{replace:!0,state:{}}))},[x.state]);const q=async()=>{try{const s=await u(`${h}/projects.php?action=notes&id=${d}`);if(s.status===401)return;const n=await s.json();n.success&&w(n.data.notes||[])}catch{}finally{H(!1)}};if(i.useEffect(()=>{const s=async()=>{try{const r=await u(`${h}/projects.php?action=detail&id=${d}`);if(r.status===401)return;const c=await r.json();if(c.success){const m=c.data;O(m),D({name:m.name||"",status:m.status||"aktivni",start_date:(m.start_date||"").substring(0,10),end_date:(m.end_date||"").substring(0,10),responsible_user_id:m.responsible_user_id||""})}else a.error(c.error||"Nepodařilo se načíst projekt"),p("/projects")}catch{a.error("Chyba připojení"),p("/projects")}finally{M(!1)}},n=async()=>{try{const r=await u(`${h}/projects.php?action=users`);if(r.status===401)return;const c=await r.json();c.success&&U(c.data.users||[])}catch{}};s(),q(),n()},[d,a,p]),!f("projects.view"))return e.jsx(ae,{});const v=(s,n)=>D(r=>({...r,[s]:n})),J=async()=>{if(!o.name.trim()){a.error("Název projektu je povinný");return}$(!0);try{const n=await(await u(`${h}/projects.php?id=${d}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:o.name,status:o.status,start_date:o.start_date||null,end_date:o.end_date||null,responsible_user_id:o.responsible_user_id||null})})).json();n.success?a.success(n.message||"Projekt byl aktualizován"):a.error(n.error||"Nepodařilo se uložit projekt")}catch{a.error("Chyba připojení")}finally{$(!1)}},K=async()=>{A(!0);try{const n=await(await u(`${h}/projects.php?id=${d}`,{method:"DELETE"})).json();n.success?(p("/projects"),setTimeout(()=>a.success("Projekt byl smazán"),300)):a.error(n.error||"Nepodařilo se smazat projekt")}catch{a.error("Chyba připojení")}finally{A(!1)}},Z=async()=>{if(y.trim()){T(!0);try{const n=await(await u(`${h}/projects.php?action=add_note&id=${d}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:y.trim()})})).json();n.success?(w(r=>[n.data.note,...r]),E(""),a.success("Poznámka byla přidána")):a.error(n.error||"Nepodařilo se přidat poznámku")}catch{a.error("Chyba připojení")}finally{T(!1)}}},Y=async s=>{F(s);try{const r=await(await u(`${h}/projects.php?action=delete_note¬eId=${s}`,{method:"DELETE"})).json();r.success?(w(c=>c.filter(m=>m.id!==s)),a.success("Poznámka byla smazána")):a.error(r.error||"Nepodařilo se smazat poznámku")}catch{a.error("Chyba připojení")}finally{F(null)}};if(b)return e.jsxs("div",{className:"admin-skeleton",style:{padding:0,gap:"1.5rem"},children:[e.jsxs("div",{className:"admin-skeleton-row",style:{justifyContent:"space-between"},children:[e.jsxs("div",{className:"flex-row-gap",children:[e.jsx("div",{className:"admin-skeleton-line",style:{width:"32px",height:"32px",borderRadius:"8px"}}),e.jsx("div",{className:"admin-skeleton-line h-8",style:{width:"200px"}})]}),e.jsxs("div",{className:"admin-skeleton-row",style:{gap:"0.5rem"},children:[e.jsx("div",{className:"admin-skeleton-line h-10",style:{width:"100px",borderRadius:"8px"}}),e.jsx("div",{className:"admin-skeleton-line h-10",style:{width:"100px",borderRadius:"8px"}})]})]}),e.jsx("div",{className:"admin-card",children:e.jsx("div",{className:"admin-skeleton",style:{gap:"1.25rem"},children:[0,1,2,3].map(s=>e.jsxs("div",{className:"admin-skeleton-row",children:[e.jsx("div",{className:"admin-skeleton-line w-1/4"}),e.jsx("div",{className:"admin-skeleton-line w-1/2"})]},s))})}),e.jsx("div",{className:"admin-card",children:e.jsx("div",{className:"admin-skeleton",style:{gap:"1.25rem"},children:[0,1,2].map(s=>e.jsxs("div",{className:"admin-skeleton-row",children:[e.jsx("div",{className:"admin-skeleton-line w-1/3",style:{marginBottom:"0.5rem"}}),e.jsx("div",{className:"admin-skeleton-line w-full"})]},s))})})]});if(!t)return null;const j=f("projects.edit");return e.jsxs("div",{children:[e.jsxs(g.div,{className:"admin-page-header",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.4},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"1rem"},children:[e.jsx(z,{to:"/projects",className:"admin-btn-icon",title:"Zpět","aria-label":"Zpět",children:e.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:e.jsx("path",{d:"M19 12H5M12 19l-7-7 7-7"})})}),e.jsx("div",{children:e.jsxs("h1",{className:"admin-page-title",children:["Projekt ",t.project_number]})})]}),j&&e.jsxs("div",{className:"admin-page-actions",children:[e.jsx("button",{onClick:J,className:"admin-btn admin-btn-primary",disabled:C,children:C?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"admin-spinner admin-spinner-sm"}),"Ukládání..."]}):"Uložit"}),!t.order_id&&e.jsx("button",{onClick:()=>P(!0),className:"admin-btn admin-btn-primary",children:"Smazat"})]})]}),e.jsx(g.div,{className:"admin-card",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.4,delay:.1},children:e.jsxs("div",{className:"admin-card-body",children:[e.jsx("h3",{className:"admin-card-title",children:"Základní údaje"}),e.jsxs("div",{className:"admin-form",children:[e.jsxs("div",{className:"admin-form-row",children:[e.jsx(l,{label:"Číslo projektu",children:e.jsx("input",{type:"text",value:t.project_number,className:"admin-form-input",readOnly:!0,style:{backgroundColor:"var(--bg-secondary)",cursor:"default"}})}),e.jsx(l,{label:"Název",children:e.jsx("input",{type:"text",value:o.name,onChange:s=>v("name",s.target.value),className:"admin-form-input",placeholder:"Název projektu",disabled:!j})})]}),e.jsxs("div",{className:"admin-form-row",children:[e.jsx(l,{label:"Zákazník",children:e.jsx("input",{type:"text",value:t.customer_name||"—",className:"admin-form-input",readOnly:!0,style:{backgroundColor:"var(--bg-secondary)",cursor:"default"}})}),e.jsx(l,{label:"Zodpovědná osoba",children:e.jsxs("select",{value:o.responsible_user_id,onChange:s=>v("responsible_user_id",s.target.value),className:"admin-form-select",disabled:!j,children:[e.jsx("option",{value:"",children:"— Nevybráno —"}),R.map(s=>e.jsx("option",{value:s.id,children:s.name},s.id))]})})]}),e.jsxs("div",{className:"admin-form-row admin-form-row-3",children:[e.jsx(l,{label:"Stav",children:e.jsxs("select",{value:o.status,onChange:s=>v("status",s.target.value),className:"admin-form-select",disabled:!j,children:[e.jsx("option",{value:"aktivni",children:"Aktivní"}),e.jsx("option",{value:"dokonceny",children:"Dokončený"}),e.jsx("option",{value:"zruseny",children:"Zrušený"})]})}),e.jsx(l,{label:"Datum zahájení",children:e.jsx(B,{mode:"date",value:o.start_date,onChange:s=>v("start_date",s),disabled:!j})}),e.jsx(l,{label:"Datum ukončení",children:e.jsx(B,{mode:"date",value:o.end_date,onChange:s=>v("end_date",s),disabled:!j})})]})]})]})}),e.jsx(g.div,{className:"admin-card",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.4,delay:.15},children:e.jsxs("div",{className:"admin-card-body",children:[e.jsx("h3",{className:"admin-card-title",children:"Poznámky"}),e.jsxs("div",{className:"mb-4",children:[e.jsx("textarea",{value:y,onChange:s=>E(s.target.value),className:"admin-form-input",rows:2,placeholder:"Napište poznámku...",style:{resize:"vertical",width:"100%"},onKeyDown:s=>{s.key==="Enter"&&s.ctrlKey&&y.trim()&&Z()}}),e.jsx("div",{className:"mt-2",children:e.jsx("button",{onClick:Z,className:"admin-btn admin-btn-secondary admin-btn-sm",disabled:L||!y.trim(),children:L?e.jsx("div",{className:"admin-spinner admin-spinner-sm"}):"Přidat poznámku"})})]}),t.notes&&e.jsxs("div",{style:{padding:"0.75rem",background:"var(--bg-secondary)",borderRadius:"0.5rem",marginBottom:"0.5rem",fontSize:"0.85rem",color:"var(--text-secondary)"},children:[e.jsx("div",{style:{fontSize:"0.75rem",color:"var(--text-tertiary)",marginBottom:"0.25rem"},children:"Starší poznámka (před zavedením systému)"}),e.jsx("div",{style:{whiteSpace:"pre-wrap"},children:t.notes})]}),_&&e.jsx("div",{className:"admin-skeleton",style:{gap:"0.75rem"},children:[0,1,2].map(s=>e.jsx("div",{className:"admin-skeleton-line",style:{height:"52px",borderRadius:"8px"}},s))}),!_&&k.length===0&&!t.notes&&e.jsx("div",{style:{color:"var(--text-tertiary)",fontSize:"0.875rem",textAlign:"center",padding:"1rem 0"},children:"Zatím žádné poznámky"}),!_&&(k.length>0||t.notes)&&e.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem"},children:k.map(s=>e.jsx("div",{style:{padding:"0.75rem",background:"var(--bg-secondary)",borderRadius:"0.5rem",position:"relative"},children:e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:"0.5rem"},children:[e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem",marginBottom:"0.25rem"},children:[e.jsx("span",{style:{fontWeight:600,fontSize:"0.85rem"},children:s.user_name}),e.jsx("span",{style:{color:"var(--text-tertiary)",fontSize:"0.75rem"},children:ne(s.created_at)})]}),e.jsx("div",{style:{whiteSpace:"pre-wrap",fontSize:"0.875rem",lineHeight:1.5},children:s.content})]}),N&&e.jsx("button",{onClick:()=>Y(s.id),className:"admin-btn-icon",title:"Smazat poznámku",disabled:S===s.id,style:{flexShrink:0,opacity:S===s.id?.5:1},children:S===s.id?e.jsx("div",{className:"admin-spinner",style:{width:14,height:14,borderWidth:2}}):e.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("polyline",{points:"3 6 5 6 21 6"}),e.jsx("path",{d:"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"}),e.jsx("path",{d:"M10 11v6M14 11v6"})]})})]})},s.id))})]})}),e.jsx(g.div,{className:"admin-card",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.4,delay:.2},children:e.jsxs("div",{className:"admin-card-body",children:[e.jsx("h3",{className:"admin-card-title",children:"Propojení"}),e.jsxs("div",{className:"admin-form-row",children:[e.jsx(l,{label:"Objednávka",children:e.jsx("div",{children:t.order_id?e.jsxs(z,{to:`/orders/${t.order_id}`,className:"link-accent",children:[t.order_number,t.order_status&&e.jsxs("span",{className:"text-tertiary",style:{fontWeight:400,marginLeft:"0.5rem"},children:["(",te[t.order_status]||t.order_status,")"]})]}):"—"})}),e.jsx(l,{label:"Nabídka",children:e.jsx("div",{children:t.quotation_id?e.jsx(z,{to:`/offers/${t.quotation_id}`,className:"link-accent",children:t.quotation_number}):"—"})})]})]})}),e.jsx(se,{isOpen:I,onClose:()=>P(!1),onConfirm:K,title:"Smazat projekt",message:`Opravdu chcete smazat projekt "${t.project_number} – ${t.name}"? Tato akce je nevratná.`,confirmText:"Smazat",cancelText:"Zrušit",type:"danger",loading:W})]})}export{ce as default};