const{PageHeader,Card,TextField,Select,Button,DataTable,IconButton,Checkbox,Dialog}=window.RemedeStockDesignSystem_3e957a,{ROLES}=window.REMEDE,UIcon=window.REMEDE.Icon,ROLE_OPTIONS=Object.keys(ROLES).map(n=>({value:n,label:ROLES[n].label}));function UserAdmin(){const[n,w]=React.useState(""),[d,g]=React.useState(""),[l,v]=React.useState(""),[h,y]=React.useState("backend"),[R,D]=window.REMEDE.useFlash(!1),[c,a]=React.useState(""),[u,p]=React.useState(!1),[s,r]=React.useState(null),b=window.REMEDE.useSaveGuard(),{data:o,loading:f,error:m,reload:i}=window.REMEDE.useAsyncData(()=>window.REMEDE.adminUsers.list(),{initial:[],errorMessage:"โหลดรายชื่อผู้ใช้ไม่สำเร็จ"});window.REMEDE.useLucide([o,R,c,f,m,u]);const S=window.REMEDE.canSaveUser({name:n,username:d,password:l}),M=()=>b(async()=>{p(!0),a("");try{await window.REMEDE.adminUsers.create({name:n.trim(),username:d.trim(),password:l.trim(),role:h}),w(""),g(""),v(""),y("backend"),D(!0),await i()}catch(e){a(e.message||"เพิ่มผู้ใช้ไม่สำเร็จ")}finally{p(!1)}}),C=async(e,t)=>{a("");try{await window.REMEDE.adminUsers.setRole(e,t),await i()}catch(E){a(E.message||"เปลี่ยนบทบาทไม่สำเร็จ")}},x=async(e,t)=>{if(a(""),t&&!window.REMEDE.canDisableAdmin(o,e)){a("ต้องมีผู้ดูแลระบบที่ใช้งานได้อย่างน้อย 1 บัญชี");return}try{await window.REMEDE.adminUsers.setActive(e,!t),await i()}catch(E){a(E.message||"เปลี่ยนสถานะไม่สำเร็จ")}},k=async(e,t)=>{if(t!=="admin"&&!window.REMEDE.canDisableAdmin(o,e)){a("ต้องมีผู้ดูแลระบบที่ใช้งานได้อย่างน้อย 1 บัญชี");return}await C(e,t)},U=async()=>{const e=s;if(r(null),!!e){if(a(""),!window.REMEDE.canDisableAdmin(o,e.id)){a("ลบบัญชีแอดมินคนสุดท้ายไม่ได้");return}try{await window.REMEDE.adminUsers.remove(e.id),await i()}catch(t){a(t.message||"ลบผู้ใช้ไม่สำเร็จ")}}};return React.createElement("div",{style:{maxWidth:"var(--content-max)"}},React.createElement(PageHeader,{eyebrow:"ผู้ดูแลระบบ",title:"จัดการสิทธิ์ผู้ใช้งาน",description:"เพิ่มผู้ใช้ กำหนดบทบาท และเปิด/ปิดสิทธิ์การเข้าใช้งาน"}),c?React.createElement("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:"var(--space-5)",padding:"10px 14px",background:"var(--danger-50)",border:"1px solid var(--danger-100)",borderRadius:"var(--radius-md)",color:"var(--danger-700)",fontSize:"var(--text-sm)"}},React.createElement(UIcon,{n:"alert-circle",s:16}),c):null,React.createElement("div",{style:{display:"grid",gridTemplateColumns:"1fr 1.4fr",gap:"var(--space-6)",marginTop:"var(--space-6)",alignItems:"start"}},React.createElement(Card,{padding:"md"},React.createElement("h3",{style:{fontSize:"var(--text-lg)",fontWeight:600,marginBottom:16}},"เพิ่มผู้ใช้ใหม่"),React.createElement("div",{style:{display:"flex",flexDirection:"column",gap:16}},React.createElement(TextField,{label:"ชื่อ-นามสกุล",required:!0,value:n,onChange:e=>w(e.target.value),placeholder:"ชื่อผู้ใช้งาน"}),React.createElement(TextField,{label:"Username",required:!0,value:d,onChange:e=>g(e.target.value),placeholder:"username",iconLeft:React.createElement(UIcon,{n:"user",s:16})}),React.createElement(TextField,{label:"รหัสผ่าน",required:!0,type:"password",value:l,onChange:e=>v(e.target.value),placeholder:"รหัสผ่านเริ่มต้น",iconLeft:React.createElement(UIcon,{n:"lock",s:16})}),React.createElement(Select,{label:"บทบาท",value:h,onChange:e=>y(e.target.value),options:ROLE_OPTIONS}),React.createElement(Button,{block:!0,size:"lg",disabled:!S||u,onClick:M,iconLeft:React.createElement(UIcon,{n:"user-plus",s:16})},u?"กำลังเพิ่มผู้ใช้…":"เพิ่มผู้ใช้"),R?React.createElement(window.REMEDE.InlineNote,null,"เพิ่มผู้ใช้เรียบร้อยแล้ว"):null)),React.createElement("div",null,React.createElement("h3",{style:{fontSize:"var(--text-lg)",fontWeight:600,marginBottom:14}},"ผู้ใช้งานทั้งหมด"),f?React.createElement(Card,{padding:"md"},React.createElement(window.REMEDE.LoadingState,null)):m?React.createElement(Card,{padding:"md"},React.createElement(window.REMEDE.ErrorState,{message:m,onRetry:i})):React.createElement(DataTable,{columns:[{key:"name",header:"ชื่อ",render:e=>React.createElement("div",null,React.createElement("div",{style:{fontWeight:500,color:"var(--text-strong)"}},e.name),React.createElement("div",{style:{fontSize:"var(--text-xs)",color:"var(--text-subtle)",fontFamily:"var(--font-mono)"}},e.username))},{key:"role",header:"บทบาท",render:e=>React.createElement(Select,{value:e.role,onChange:t=>k(e.id,t.target.value),options:ROLE_OPTIONS,style:{minWidth:190}})},{key:"active",header:"สถานะ",render:e=>React.createElement(Checkbox,{checked:e.active,onChange:()=>x(e.id,e.active),label:e.active?"ใช้งาน":"ระงับ"})},{key:"act",header:"",align:"right",render:e=>React.createElement(IconButton,{label:"ลบผู้ใช้",size:"sm",onClick:()=>r(e)},React.createElement(UIcon,{n:"trash-2",s:16}))}],rows:o,empty:"ยังไม่มีผู้ใช้งาน"}))),React.createElement(Dialog,{open:!!s,onClose:()=>r(null),tone:"danger",title:"ยืนยันการลบผู้ใช้",description:s?`ลบบัญชี "${s.name}" (${s.username}) ออกจากระบบถาวร — การกระทำนี้ย้อนกลับไม่ได้`:"",footer:React.createElement(React.Fragment,null,React.createElement(Button,{variant:"ghost",onClick:()=>r(null)},"ยกเลิก"),React.createElement(Button,{variant:"danger",onClick:U,iconLeft:React.createElement(UIcon,{n:"trash-2",s:16})},"ลบผู้ใช้"))}))}window.UserAdmin=UserAdmin;
