PageSourceSearch

https://lidomatrip.com/_next/static/chunks/pages/admin/users/[id]-74aaff859dd30ad7.js

js lidomatrip.com collected 2026-10-02 20:26:49 UTC 33,575 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[66],{17753:function(e,a,s){(window.__NEXT_P=window.__NEXT_P||[]).push(["/admin/users/[id]",function(){return s(78742)}])},78742:function(e,a,s){"use strict";s.r(a),s.d(a,{default:function(){return w}});var t=s(85893),n=s(67294),l=s(41664),i=s.n(l),r=s(11163),c=s(44389),d=s(49759),o=s(84858),x=s(70707),u=s(32474);let m={BOOKING_INCOME:"درآمد میزبانی",BOOKING_REFUND:"بازگشت وجه به مهمان",BOOKING_PAYMENT:"پرداخت رزرو از کیف پول",TOP_UP:"افزایش اعتبار (کارت به کارت)",SETTLEMENT:"برداشت (تسویه)",GIFT:"هدیه",ADJUSTMENT:"اصلاح دستی ادمین"},h={BOOKING_INCOME:"green",BOOKING_REFUND:"blue",BOOKING_PAYMENT:"purple",TOP_UP:"green",SETTLEMENT:"yellow",GIFT:"purple",ADJUSTMENT:"gray"},j={PENDING:"در حال انجام",DONE:"انجام‌شده",FAILED:"ناموفق"},g={PENDING:"yellow",DONE:"green",FAILED:"red"};function p(e){let{userId:a}=e,[s,l]=(0,n.useState)(null),[r,d]=(0,n.useState)([]),[x,p]=(0,n.useState)(null),[N,f]=(0,n.useState)(!1),{data:v,isLoading:y,mutate:C}=(0,c.u)(`/api/admin/wallet/users/${a}?take=20`,o.SC);async function w(){if(x){f(!0);try{let e=await (0,o.SC)(`/api/admin/wallet/users/${a}?take=20&cursor=${x}`);d(a=>[...a,...e.transactions]),p(e.next_cursor)}finally{f(!1)}}}if((0,n.useEffect)(()=>{v&&(d(v.transactions),p(v.next_cursor))},[v]),y)return(0,t.jsxs)(u.Zb,{className:"p-20",children:[(0,t.jsx)(u.Od,{className:"h-[120px] mb-16"}),(0,t.jsx)(u.Od,{className:"h-[220px]"})]});if(!v)return null;let S=!!(v.bank_account.credit_number||v.bank_account.shaba_number);return(0,t.jsxs)(u.Zb,{className:"p-20",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-y-10 mb-16",children:[(0,t.jsxs)("h3",{className:"text-16 leading-24 font-m text-black flex items-center gap-x-8",children:[(0,t.jsx)("i",{className:"icon-WalletFill text-20 text-primary-main"}),"کیف پول"]}),(0,t.jsxs)("div",{className:"flex items-center gap-x-8",children:[(0,t.jsxs)(u.zx,{variant:"secondary",onClick:()=>l("debit"),children:[(0,t.jsx)("i",{className:"icon-Negative text-14"})," کسر از موجودی"]}),(0,t.jsxs)(u.zx,{onClick:()=>l("credit"),children:[(0,t.jsx)("i",{className:"icon-Plus text-14"})," افزایش موجودی"]})]})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 lg:grid-cols-3 gap-12 mb-20",children:[(0,t.jsx)(u.bB,{tone:"green",label:"موجودی قابل برداشت",value:(0,u.ND)(v.credit_balance),icon:(0,t.jsx)("i",{className:"icon-WalletFill text-18"})}),(0,t.jsx)(u.bB,{tone:"orange",label:"موجودی مسدود",value:(0,u.ND)(v.blocked_balance),hint:"تا پایان دوره‌ی بازگشت رزرو، قابل برداشت نیست",icon:(0,t.jsx)("i",{className:"icon-Timer text-18"})}),(0,t.jsx)(u.bB,{tone:"purple",label:"موجودی هدیه",value:(0,u.ND)(v.gift_balance),icon:(0,t.jsx)("i",{className:"icon-GiftFill text-18"})})]}),S&&(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-x-20 gap-y-6 mb-16 px-14 py-10 rounded-10 bg-gray-F7F7F7 text-12 leading-20 text-gray-6C6A7D",children:[(0,t.jsx)("i",{className:"icon-CardBank text-16"}),v.bank_account.credit_number&&(0,t.jsxs)("span",{children:["کارت: ",v.bank_account.credit_number]}),v.bank_account.shaba_number&&(0,t.jsxs)("span",{children:["شبا: ",v.bank_account.shaba_number]}),v.bank_account.credit_owner&&(0,t.jsxs)("span",{children:["صاحب حساب: ",v.bank_account.credit_owner]})]}),(0,t.jsx)("h4",{className:"text-13 leading-20 font-m text-gray-6C6A7D mb-8",children:"تراکنش‌ها"}),0===r.length?(0,t.jsx)(u.ub,{text:"هنوز تراکنشی در کیف پول ثبت نشده"}):(0,t.jsx)("div",{className:"overflow-x-auto rounded-12 border border-gray-E5E5E6",children:(0,t.jsxs)("table",{className:"w-full min-w-[720px] text-right",children:[(0,t.jsx)("thead",{className:"bg-gray-F7F7F7 text-12 text-gray-6C6A7D",children:(0,t.jsxs)("tr",{children:[(0,t.jsx)("th",{className:"p-10 font-r w-32",children:"ردیف"}),(0,t.jsx)("th",{className:"p-10 font-r",children:"نوع"}),(0,t.jsx)("th",{className:"p-10 font-r",children:"مبلغ"}),(0,t.jsx)("th",{className:"p-10 font-r",children:"موجودی پس از تراکنش"}),(0,t.jsx)("th",{className:"p-10 font-r",children:"توضیح"}),(0,t.jsx)("th",{className:"p-10 font-r",children:"رزرو"}),(0,t.jsx)("th",{className:"p-10 font-r",children:"تاریخ"}),(0,t.jsx)("th",{className:"p-10 font-r",children:"وضعیت"})]})}),(0,t.jsx)("tbody",{children:r.map((e,a)=>(0,t.jsxs)("tr",{className:"border-t border-gray-F0F0F0 text-13 align-top",children:[(0,t.jsx)("td",{className:"p-10 text-gray-6C6A7D",children:(0,u.N)(a+1)}),(0,t.jsx)("td",{className:"p-10",children:(0,t.jsx)(u.Ct,{tone:h[e.kind],children:m[e.kind]})}),(0,t.jsxs)("td",{className:`p-10 font-m whitespace-nowrap ${e.amount<0?"text-[#C62828]":"text-[#015046]"}
1`,children:[e.amount<0?"−":"+",(0,u.ND)(Math.abs(e.amount))]}),(0,t.jsx)("td",{className:"p-10 text-gray-6C6A7D whitespace-nowrap",children:(0,u.ND)(e.balance_after)}),(0,t.jsxs)("td",{className:"p-10 text-gray-6C6A7D max-w-[260px]",children:[e.description,"FAILED"===e.status&&e.failure_reason&&(0,t.jsx)("div",{className:"mt-2 text-[#C62828] text-11",children:e.failure_reason})]}),(0,t.jsx)("td",{className:"p-10 whitespace-nowrap",children:e.reservation_id?(0,t.jsx)(i(),{href:`/admin/reservations/${e.reservation_id}`,className:"text-primary-dark font-m",children:e.reserve_code}):(0,t.jsx)("span",{className:"text-gray-9B9BAA",children:"—"})}),(0,t.jsx)("td",{className:"p-10 text-gray-6C6A7D whitespace-nowrap",children:(0,u.IY)(e.created_at)}),(0,t.jsx)("td",{className:"p-10",children:(0,t.jsx)(u.Ct,{tone:g[e.status],children:j[e.status]})})]},e.id))})]})}),!!x&&(0,t.jsx)("div",{className:"flex justify-center mt-14",children:(0,t.jsx)(u.zx,{variant:"secondary",disabled:N,onClick:w,children:N?"در حال بارگذاری...":"نمایش تراکنش‌های قدیمی‌تر"})}),!!s&&(0,t.jsx)(b,{userId:a,direction:s,onClose:()=>l(null),onDone:()=>{l(null),C()}})]})}function b(e){let{userId:a,direction:s,onClose:l,onDone:i}
1=e,[r,c]=(0,n.useState)(""),[d,m]=(0,n.useState)(""),[h,j]=(0,n.useState)(!1),[g,p]=(0,n.useState)(!1),[b,N]=(0,n.useState)(null),f=(0,x.EU)(r),v=f>0,y=d.trim().length>=3;async function C(e){if(e.preventDefault(),v&&y){p(!0),N(null);try{await (0,o.SC)(`/api/admin/wallet/users/${a}/adjust`,{method:"POST",body:JSON.stringify({amount:"credit"===s?f:-f,description:d.trim(),blocked:h})}),i()}catch(e){N(e instanceof Error?e.message:"ثبت نشد")}finally{p(!1)}}}return(0,t.jsx)(u.u_,{open:!0,onClose:l,title:"credit"===s?"افزایش موجودی کیف پول":"کسر از موجودی کیف پول",width:"max-w-[460px]",children:(0,t.jsxs)("form",{onSubmit:C,className:"flex flex-col gap-y-14",children:[(0,t.jsx)(u.gN,{label:"مبلغ (تومان)",children:(0,t.jsx)(u.II,{inputMode:"numeric",value:r,onChange:e=>c(e.target.value),placeholder:"0",autoFocus:!0})}),(0,t.jsx)(u.gN,{label:"توضیح / دلیل (حداقل ۳ کاراکتر)",hint:"این متن با شماره‌ی حساب ادمین شما در دفتر تراکنش‌ها ثبت می‌شود.",children:(0,t.jsx)(u.II,{value:d,onChange:e=>m(e.target.value),placeholder:"credit"===s?"مثلاً: جبران خسارت لغو رزرو":"مثلاً: اصلاح خطای واریز قبلی"})}),(0,t.jsx)(u.ZD,{checked:h,onChange:j,label:"credit"===s?"به موجودی مسدود اضافه شود (نه قابل‌برداشت فوری)":"از موجودی مسدود کسر شود (نه از موجودی قابل‌برداشت)"}),!!b&&(0,t.jsx)("p",{className:"text-13 text-[#C62828]",children:b}),(0,t.jsxs)("div",{className:"flex items-center gap-x-10 justify-end mt-4",children:[(0,t.jsx)(u.zx,{type:"button",variant:"secondary",onClick:l,children:"انصراف"}),(0,t.jsx)(u.zx,{type:"submit",variant:"debit"===s?"danger":"primary",disabled:!v||!y||g,children:g?"در حال ثبت...":"credit"===s?"افزایش موجودی":"کسر از موجودی"})]})]})})}var N=s(35157);let f={CONFIRMED:{label:"تایید شده",tone:"green"},CHECKING:{label:"در حال بررسی",tone:"yellow"},NOT_CONFIRMED:{label:"تایید نشده",tone:"gray"}},v={DRAFT:"پیش‌نویس",PENDING:"در انتظار بررسی",PUBLISHED:"منتشر شده",REJECTED:"رد شده",DEACTIVATED:"غیرفعال",DELETED:"حذف شده"};function y(e){let{label:a,value:s}=e;return(0,t.jsxs)("div",{className:"flex items-start justify-between gap-x-12 py-8 border-b border-gray-F0F0F0 last:border-0",children:[(0,t.jsx)("span",{className:"text-12 leading-18 text-gray-6C6A7D shrink-0",children:a}),(0,t.jsx)("span",{className:"text-14 leading-20 text-black text-left break-words",children:s||"-"})]})}function C(e){let{title:a,editing:s,onToggle:n}=e;return(0,t.jsxs)("div",{className:"flex items-center justify-between mb-12",children:[(0,t.jsx)("h3",{className:"text-16 leading-24 font-m text-black",children:a}),(0,t.jsxs)("button",{type:"button",onClick:n,className:"flex items-center gap-x-6 text-12 font-m text-primary-dark",children:[(0,t.jsx)("i",{className:s?"icon-Close text-14":"icon-Edit text-14"}),s?"انصراف":"ویرایش"]})]})}function w(){var e,a;let s=(0,r.useRouter)(),{id:l}
1=s.query,[x,m]=(0,n.useState)(!1),[h,j]=(0,n.useState)(!1),[g,b]=(0,n.useState)(!1),[w,_]=(0,n.useState)(!1),[O,F]=(0,n.useState)(!1),P=(0,n.useRef)(null),T=(0,n.useRef)(null),[$,B]=(0,n.useState)(!1),[M,H]=(0,n.useState)(!1),{data:z,isLoading:U,mutate:G}=(0,c.u)(l?`/api/admin/users/${l}`:null,e=>(0,o.SC)(e));async function R(e){await (0,o.SC)(`/api/admin/users/${l}`,{method:"PATCH",body:JSON.stringify(e)}),G()}async function J(e,a,s){let t=new FormData;t.append(a,s),await (0,o.SC)(e,{method:"POST",body:t}),G()}let Z=(null==z?void 0:z.birthYear)&&(null==z?void 0:z.birthMonth)&&(null==z?void 0:z.birthDay)?`${z.birthYear}/${z.birthMonth}/${z.birthDay}`:null,L=(0,N.o)("users","string"==typeof l?l:void 0);return(0,t.jsxs)(d.Z,{title:(null==z?void 0:z.name)??"اطلاعات کاربری",breadcrumb:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i(),{href:"/admin",children:"داشبورد"})," / ",(0,t.jsx)(i(),{href:"/admin/users",children:"کاربران"})]}),backHref:(null==L?void 0:L.returnUrl)??"/admin/users",prevNext:L?{prevHref:L.prevId?`/admin/users/${L.prevId}`:null,nextHref:L.nextId?`/admin/users/${L.nextId}`:null,position:`${(0,u.N)(L.index+1)} از ${(0,u.N)(L.total)}`}:void 0,actions:z&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(u.zx,{variant:"secondary",onClick:()=>j(!0),children:[(0,t.jsx)("i",{className:"icon-Key text-16"})," تنظیم رمز عبور"]}),(0,t.jsxs)(u.zx,{variant:"secondary",onClick:()=>m(!0),children:[(0,t.jsx)("i",{className:"icon-Warning text-16"})," ثبت کارت زرد"]}),(0,t.jsx)(u.zx,{variant:z.isActive?"danger":"primary",onClick:()=>z.isActive?b(!0):R({isActive:!0}),children:z.isActive?"غیرفعال‌سازی":"فعال‌سازی"})]}),children:[U&&(0,t.jsxs)("div",{className:"flex flex-col gap-16",children:[(0,t.jsx)(u.Od,{className:"h-[140px]"}),(0,t.jsx)(u.Od,{className:"h-[104px]"})]}),z&&(0,t.jsxs)("div",{className:"flex flex-col gap-y-16",children:[(0,t.jsx)(u.Zb,{className:"p-20",children:(0,t.jsxs)("div",{className:"flex items-center gap-x-16 flex-wrap gap-y-16",children:[(0,t.jsxs)("span",{className:"relative w-72 h-72 shrink-0 group",children:[(0,t.jsx)("span",{className:"w-72 h-72 rounded-16 bg-gray-F5F5F7 border border-gray-E5E5E6 overflow-hidden flex items-center justify-center text-24 block",children:z.avatarUrl?(0,t.jsx)("img",{src:z.avatarUrl,alt:z.name??"",className:"w-full h-full object-cover"}):(null===(e=z.name)||void 0===e?void 0:e[0])??"؟"}),(0,t.jsx)("input",{ref:P,type:"file",accept:"image/*",className:"hidden",onChange:async e=>{var a;let s=null===(a=e.target.files)||void 0===a?void 0:a[0];if(s){B(!0);try{await J(`/api/admin/users/${z.id}/avatar`,"avatar",s)}finally{B(!1),P.current&&(P.current.value="")}}}}),(0,t.jsx)("button",{type:"button",onClick:()=>{var e;return null===(e=P.current)||void 0===e?void 0:e.click()},disabled:$,title:"تغییر عکس پروفایل",className:"absolute bottom-0 left-0 w-24 h-24 rounded-full bg-primary-main text-white flex items-center justify-center shadow-[0_2px_6px_rgba(0,0,0,0.25)]",children:(0,t.jsx)("i",{className:$?"icon-Refresh text-12 animate-spin":"icon-Photo-Upload text-12"})})]}),(0,t.jsxs)("div",{className:"flex-1 min-w-[200px]",children:[(0,t.jsxs)("div",{className:"flex items-center gap-x-8 flex-wrap gap-y-6",children:[(0,t.jsx)("h2",{className:"text-18 leading-26 font-m text-black",children:z.name??"بدون نام"}),(0,t.jsx)(u.Ct,{tone:z.isHost?"green":"gray",children:z.isHost?"میزبان":"مهمان"}),"ADMIN"===z.role&&(0,t.jsx)(u.Ct,{tone:"purple",children:"ادمین"}),z.isSpecialHost&&(0,t.jsx)(u.Ct,{tone:"blue",children:"میزبان ویژه"}),!z.isActive&&(0,t.jsx)(u.Ct,{tone:"red",children:"غیرفعال"}),(0,t.jsx)(u.Ct,{tone:f[z.verificationStatus].tone,children:f[z.verificationStatus].label})]}),(0,t.jsxs)("p",{className:"text-13 leading-20 text-gray-6C6A7D mt-4",children:["نام کاربری: ",z.phone," \xb7 عضویت ",(0,u.IY)(z.createdAt)]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-x-12 flex-wrap gap-y-10",children:[(0,t.jsxs)("label",{className:"flex items-center gap-x-8 text-13 text-gray-6C6A7D",children:[(0,t.jsx)(u.ZD,{checked:z.isHost,onChange:e=>R({isHost:e})}),"میزبان"]}),(0,t.jsxs)("label",{className:"flex items-center gap-x-8 text-13 text-gray-6C6A7D",children:[(0,t.jsx)(u.ZD,{checked:z.isSpecialHost,onChange:e=>R({isSpecialHost:e})}),"ویژه"]}),(0,t.jsx)("div",{className:"w-[150px]",children:(0,t.jsxs)(u.Ph,{value:z.verificationStatus,onChange:e=>R({verificationStatus:e.target.value}),className:"!h-32 !text-12",children:[(0,t.jsx)("option",{value:"NOT_CONFIRMED",children:"احراز: تایید نشده"}),(0,t.jsx)("option",{value:"CHECKING",children:"احراز: در حال بررسی"}),(0,t.jsx)("option",{value:"CONFIRMED",children:"احراز: تایید شده"})]})}),(0,t.jsx)("div",{className:"w-[110px]",children:(0,t.jsxs)(u.Ph,{value:z.role,onChange:e=>R({role:e.target.value}),className:"!h-32 !text-12",children:[(0,t.jsx)("option",{value:"USER",children:"نقش: کاربر"}),(0,t.jsx)("option",{value:"ADMIN",children:"نقش: ادمین"})]})})]})]})}),(0,t.jsxs)("section",{className:"grid grid-cols-2 lg:grid-cols-4 gap-16",children:[(0,t.jsx)(u.bB,{tone:"blue",label:"رزروهای موفق (مهمان)",value:(0,u.N)(z.stats.successfulAsGuest),hint:`از ${(0,u.N)(z.stats.reservationsAsGuest)} درخواست`,icon:(0,t.jsx)("i",{className:"icon-Trips text-18"})}),(0,t.jsx)(u.bB,{tone:"orange",label:"پرداختی به سایت",value:(0,u.ND)(z.stats.totalSpent),icon:(0,t.jsx)("i",{className:"icon-CardBank text-18"})}),(0,t.jsx)(u.bB,{tone:"green",label:"رزروهای موفق (میزبان)",value:(0,u.N)(z.stats.successfulAsHost),hint:`از ${(0,u.N)(z.stats.reservationsAsHost)} درخواست`,icon:(0,t.jsx)("i",{className:"icon-Homes text-18"})}),(0,t.jsx)(u.bB,{tone:"purple",label:"درآمد میزبانی",value:(0,u.ND)(z.stats.totalIncome),hint:z.stats.lastActivityAt?`آخرین فعالیت ${(0,u.IY)(z.stats.lastActivityAt)}`:void 0,icon:(0,t.jsx)("i",{className:"icon-Amaar text-18"})})]}),(0,t.jsx)(p,{userId:z.id}),z.isHost&&(0,t.jsxs)("section",{className:"grid md:grid-cols-2 gap-16 items-start",children:[(0,t.jsx)(D,{user:z,onSaved:()=>G()}),(0,t.jsx)(E,{user:z,onSaved:()=>G()})]}),(0,t.jsxs)("section",{className:"grid lg:grid-cols-2 gap-16 items-start",children:[(0,t.jsxs)(u.Zb,{className:"p-20",children:[(0,t.jsx)(C,{title:"اطلاعات کاربر",editing:w,onToggle:()=>_(e=>!e)}),w?(0,t.jsx)(S,{user:z,onSaved:()=>{_(!1),G()},onCancel:()=>_(!1)}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"grid sm:grid-cols-2 md:grid-cols-2 gap-x-24",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(y,{label:"نام و نام خانوادگی",value:z.name}),(0,t.jsx)(y,{label:"شماره موبایل",value:z.phone}),(0,t.jsx)(y,{label:"شماره تماس دیگر",value:z.contactPhone}),(0,t.jsx)(y,{label:"تماس اضطراری",value:z.emergencyPhone}),(0,t.jsx)(y,{label:"کد ملی",value:z.nationalCode}),(0,t.jsx)(y,{label:"ایمیل",value:z.email})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(y,{label:"تاریخ تولد",value:Z}),(0,t.jsx)(y,{label:"شهر",value:z.city?`${(null===(a=z.city.province)||void 0===a?void 0:a.name)??""}${z.city.province?"، ":""}${z.city.name}`:null}),(0,t.jsx)(y,{label:"آدرس",value:z.address}),(0,t.jsx)(y,{label:"شغل",value:z.job}),(0,t.jsx)(y,{label:"تحصیلات",value:z.education})]})]}),!!z.description&&(0,t.jsxs)("div",{className:"mt-12",children:[(0,t.jsx)("p",{className:"text-12 leading-18 text-gray-6C6A7D mb-4",children:"درباره کاربر"}),(0,t.jsx)("p",{className:"text-14 leading-24 text-black",children:z.description})]}),(0,t.jsxs)("div",{className:"mt-16 pt-16 border-t border-gray-F0F0F0",children:[(0,t.jsx)("p",{className:"text-12 leading-18 text-gray-6C6A7D mb-8",children:"تصویر کارت ملی"}),(0,t.jsxs)("div",{className:"flex items-center gap-x-12",children:[(0,t.jsx)("span",{className:"w-96 h-64 roun
1ded-10 bg-gray-F5F5F7 overflow-hidden flex items-center justify-center shrink-0",children:z.nationalCardUrl?(0,t.jsx)("img",{src:z.nationalCardUrl,alt:"کارت ملی",className:"w-full h-full object-cover"}):(0,t.jsx)("i",{className:"icon-Photo-Upload text-20 text-gray-A9B1BC"})}),(0,t.jsxs)("div",{className:"flex flex-col gap-y-6",children:[!!z.nationalCardUrl&&(0,t.jsx)("a",{href:z.nationalCardUrl,target:"_blank",rel:"noreferrer",className:"text-12 font-m text-primary-dark",children:"مشاهده در اندازه‌ی کامل ↗"}),(0,t.jsx)("input",{ref:T,type:"file",accept:"image/*",className:"hidden",onChange:async e=>{var a;let s=null===(a=e.target.files)||void 0===a?void 0:a[0];if(s){H(!0);try{await J(`/api/admin/users/${z.id}/national-card`,"nationalCard",s)}finally{H(!1),T.current&&(T.current.value="")}}}}),(0,t.jsx)("button",{type:"button",onClick:()=>{var e;return null===(e=T.current)||void 0===e?void 0:e.click()},disabled:M,className:"text-12 font-m text-gray-6C6A7D hover:text-black transition text-right",children:M?"در حال بارگذاری…":z.nationalCardUrl?"تغییر تصویر":"بارگذاری تصویر"})]})]})]})]})]}),(0,t.jsxs)(u.Zb,{className:"p-20",children:[(0,t.jsx)(C,{title:"اطلاعات بانکی",editing:O,onToggle:()=>F(e=>!e)}),O?(0,t.jsx)(k,{userId:z.id,bankAccount:z.bankAccount,onSaved:()=>{F(!1),G()},onCancel:()=>F(!1)}):z.bankAccount&&(z.bankAccount.cardNumber||z.bankAccount.shabaNumber)?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(y,{label:"شماره کارت",value:z.bankAccount.cardNumber}),(0,t.jsx)(y,{label:"صاحب کارت",value:z.bankAccount.cardOwnerName}),(0,t.jsx)(y,{label:"شبا",value:z.bankAccount.shabaNumber}),(0,t.jsx)(y,{label:"صاحب حساب شبا",value:z.bankAccount.shabaOwnerName})]}):(0,t.jsx)(u.ub,{text:"حساب بانکی ثبت نشده"})]})]}),(0,t.jsxs)(u.Zb,{className:"p-20",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-12",children:[(0,t.jsx)("h3",{className:"text-16 leading-24 font-m text-black",children:"موارد انضباطی"}),(0,t.jsx)(u.zx,{variant:"secondary",onClick:()=>m(!0),children:"+ ثبت کارت زرد"})]}),!!z.chatBlockedAt&&(0,t.jsxs)("div",{className:"flex items-start justify-between gap-x-12 flex-wrap gap-y-10 rounded-10 border border-[#FFD9A0] bg-[#FFF9EC] p-14 mb-12",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-x-8 mb-4",children:[(0,t.jsx)("i",{className:"icon-Warning text-16 text-[#B26A00]"}),(0,t.jsx)("p",{className:"text-14 leading-22 font-m text-black",children:"ارسال پیام در چت غیرفعال است"})]}),(0,t.jsxs)("p",{className:"text-12 leading-20 text-gray-6C6A7D",children:["به دلیل ",(0,u.N)(z.chatViolationCount)," بار تلاش برای ارسال شماره تماس یا آیدی شبکه‌ی اجتماعی در گفتگو، این کاربر دیگر نمی‌تواند در هیچ چتی پیام بفرستد."]})]}),(0,t.jsx)(u.zx,{variant:"secondary",onClick:async()=>{await (0,o.SC)(`/api/admin/users/${z.id}/chat-restriction`,{method:"POST",body:JSON.stringify({blocked:!1})}),G()},children:"رفع محدودیت"})]}),0===z.yellowCards.length?(0,t.jsx)(u.ub,{text:"کارت زردی ثبت نشده"}):(0,t.jsx)("ul",{className:"flex flex-col gap-y-8",children:z.yellowCards.map(e=>(0,t.jsxs)("li",{className:"flex items-start justify-between gap-x-12 bg-[#FFF9EC] rounded-10 p-12",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-14 leading-22 text-black",children:e.reason}),(0,t.jsx)("p",{className:"text-12 leading-18 text-gray-6C6A7D mt-2",children:(0,u.IY)(e.createdAt)})]}),(0,t.jsx)("button",{onClick:async()=>{await (0,o.SC)(`/api/admin/yellow-cards/${e.id}`,{method:"DELETE"}),G()},className:"text-12 text-[#C62828] font-m shrink-0",children:"حذف"})]},e.id))})]}),z.residences.length>0&&(0,t.jsxs)(u.Zb,{className:"p-20",children:[(0,t.jsxs)("h3",{className:"text-16 leading-24 font-m text-black mb-12",children:["اقامتگاه‌ها (",(0,u.N)(z.residences.length),")"]}),(0,t.jsx)("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-12",children:z.residences.map(e=>{var a;return(0,t.jsxs)(i(),{href:`/admin/residences/${e.publicId??e.id}`,className:"border border-gray-E5E5E6 rounded-12 overflow-hidden hover:border-primary-main transition",children:[(0,t.jsx)("div",{className:"h-[110px] bg-gray-F0F0F0",children:!!e.images[0]&&(0,t.jsx)("img",{src:(0,u.vD)(e.images[0].url,640),alt:e.name,className:"w-full h-full object-cover",loading:"lazy"})}),(0,t.jsxs)("div",{className:"p-12",children:[(0,t.jsx)("p",{className:"text-13 leading-20 text-black line-clamp-1",children:e.name}),(0,t.jsxs)("div",{className:"flex items-center justify-between mt-6",children:[(0,t.jsx)(u.Ct,{tone:"PUBLISHED"===e.state?"green":"gray",children:v[e.state]??e.state}),(0,t.jsx)("span",{className:"text-12 text-gray-6C6A7D",children:null===(a=e.city)||void 0===a?void 0:a.name})]})]})]},e.id)})})]})]}),z&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.u_,{open:x,onClose:()=>m(!1),title:"دلیل ثبت کارت زرد",children:(0,t.jsx)(I,{userId:z.id,onDone:()=>{m(!1),G()},onCancel:()=>m(!1)})}),(0,t.jsx)(u.u_,{open:h,onClose:()=>j(!1),title:"تنظیم رمز عبور",children:(0,t.jsx)(A,{userId:z.id,onDone:()=>j(!1),onCancel:()=>j(!1)})}),(0,t.jsxs)(u.u_,{open:g,onClose:()=>b(!1),title:"غیرفعال‌سازی کاربر",width:"max-w-[420px]",children:[(0,t.jsxs)("p",{className:"text-14 leading-24 text-black mb-16",children:["مطمئنی می‌خوای این ",z.isHost?"میزبان":"کاربر"," رو غیرفعال کنی؟"]}),(0,t.jsxs)("div",{className:"flex items-center gap-x-10 justify-end",children:[(0,t.jsx)(u.zx,{variant:"secondary",onClick:()=>b(!1),children:"انصراف"}),(0,t.jsx)(u.zx,{variant:"danger",onClick:async()=>{await R({isActive:!1}),b(!1)},children:"آره، غیرفعال کن"})]})]})]})]})}function S(e){let{user:a,onSaved:s,onCancel:l}
1=e,[i,r]=(0,n.useState)({name:a.name??"",email:a.email??"",nationalCode:a.nationalCode??"",contactPhone:a.contactPhone??"",emergencyPhone:a.emergencyPhone??"",address:a.address??"",job:a.job??"",education:a.education??"",description:a.description??""}),[c,d]=(0,n.useState)(!1),[x,m]=(0,n.useState)(null),h=e=>a=>r(s=>({...s,[e]:a.target.value}));async function j(e){e.preventDefault(),d(!0),m(null);try{await (0,o.SC)(`/api/admin/users/${a.id}`,{method:"PATCH",body:JSON.stringify(i)}),s()}catch(e){m(e instanceof Error?e.message:"خطا در ذخیره")}finally{d(!1)}}return(0,t.jsxs)("form",{onSubmit:j,className:"grid sm:grid-cols-2 md:grid-cols-2 gap-12",children:[(0,t.jsx)(u.gN,{label:"نام و نام خانوادگی",children:(0,t.jsx)(u.II,{value:i.name,onChange:h("name")})}),(0,t.jsx)(u.gN,{label:"ایمیل",children:(0,t.jsx)(u.II,{value:i.email,onChange:h("email"),type:"email"})}),(0,t.jsx)(u.gN,{label:"کد ملی",children:(0,t.jsx)(u.II,{value:i.nationalCode,onChange:h("nationalCode"),inputMode:"numeric"})}),(0,t.jsx)(u.gN,{label:"شماره تماس دیگر",children:(0,t.jsx)(u.II,{value:i.contactPhone,onChange:h("contactPhone"),inputMode:"numeric"})}),(0,t.jsx)(u.gN,{label:"تماس اضطراری",children:(0,t.jsx)(u.II,{value:i.emergencyPhone,onChange:h("emergencyPhone"),inputMode:"numeric"})}),(0,t.jsx)(u.gN,{label:"شغل",children:(0,t.jsx)(u.II,{value:i.job,onChange:h("job")})}),(0,t.jsx)(u.gN,{label:"تحصیلات",children:(0,t.jsx)(u.II,{value:i.education,onChange:h("education")})}),(0,t.jsx)(u.gN,{label:"آدرس",className:"sm:col-span-2 md:col-span-2",children:(0,t.jsx)(u.II,{value:i.address,onChange:h("address")})}),(0,t.jsx)(u.gN,{label:"درباره کاربر",className:"sm:col-span-2 md:col-span-2",children:(0,t.jsx)("textarea",{value:i.description,onChange:h("description"),rows:3,className:"w-full px-14 py-10 rounded-10 border border-gray-E5E5E6 text-14 leading-22 outline-none focus:border-primary-main transition"})}),!!x&&(0,t.jsx)("p",{className:"sm:col-span-2 text-13 text-[#C62828]",children:x}),(0,t.jsxs)("div",{className:"sm:col-span-2 flex items-center gap-x-10 justify-end",children:[(0,t.jsx)(u.zx,{type:"button",variant:"secondary",onClick:l,children:"انصراف"}),(0,t.jsx)(u.zx,{type:"submit",disabled:c,children:c?"در حال ذخیره...":"ذخیره"})]})]})}function k(e){let{userId:a,bankAccount:s,onSaved:l,onCancel:i}=e,[r,c]=(0,n.useState)({cardNumber:(null==s?void 0:s.cardNumber)??"",cardOwnerName:(null==s?void 0:s.cardOwnerName)??"",shabaNumber:(null==s?void 0:s.shabaNumber)??"",shabaOwnerName:(null==s?void 0:s.shabaOwnerName)??""}),[d,x]=(0,n.useState)(!1),[m,h]=(0,n.useState)(null),j=e=>a=>c(s=>({...s,[e]:a.target.value}));async function g(e){e.preventDefault(),x(!0),h(null);try{await (0,o.SC)(`/api/admin/users/${a}/bank-account`,{method:"PATCH",body:JSON.stringify(r)}),l()}catch(e){h(e instanceof Error?e.message:"خطا در ذخیره")}finally{x(!1)}}return(0,t.jsxs)("form",{onSubmit:g,className:"flex flex-col gap-y-12",children:[(0,t.jsx)(u.gN,{label:"شماره کارت",children:(0,t.jsx)(u.II,{value:r.cardNumber,onChange:j("cardNumber"),inputMode:"numeric",dir:"ltr"})}),(0,t.jsx)(u.gN,{label:"صاحب کارت",children:(0,t.jsx)(u.II,{value:r.cardOwnerName,onChange:j("cardOwnerName")})}),(0,t.jsx)(u.gN,{label:"شبا",children:(0,t.jsx)(u.II,{value:r.shabaNumber,onChange:j("shabaNumber"),inputMode:"numeric",dir:"ltr"})}),(0,t.jsx)(u.gN,{label:"صاحب حساب شبا",children:(0,t.jsx)(u.II,{value:r.shabaOwnerName,onChange:j("shabaOwnerName")})}),!!m&&(0,t.jsx)("p",{className:"text-13 text-[#C62828]",children:m}),(0,t.jsxs)("div",{className:"flex items-center gap-x-10 justify-end",children:[(0,t.jsx)(u.zx,{type:"button",variant:"secondary",onClick:i,children:"انصراف"}),(0,t.jsx)(u.zx,{type:"submit",disabled:d,children:d?"در حال ذخیره...":"ذخیره"})]})]})}function I(e){let{userId:a,onDone:s,onCancel:l}=e,[i,r]=(0,n.useState)(""),[c,d]=(0,n.useState)(!1);return(0,t.jsxs)("form",{onSubmit:async e=>{e.preventDefault(),d(!0);try{await (0,o.SC)(`/api/admin/users/${a}/yellow-cards`,{method:"POST",body:JSON.stringify({reason:i})}),s()}finally{d(!1)}},children:[(0,t.jsx)("textarea",{value:i,onChange:e=>r(e.target.value),required:!0,rows:5,placeholder:"دلیل ثبت کارت زرد را بنویسید...",className:"w-full px-14 py-10 rounded-10 border border-gray-E5E5E6 text-14 leading-22 outline-none focus:border-primary-main transition mb-16"}),(0,t.jsxs)("div",{className:"flex items-center gap-x-10 justify-end",children:[(0,t.jsx)(u.zx,{type:"button",variant:"secondary",onClick:l,children:"انصراف"}),(0,t.jsx)(u.zx,{type:"submit",disabled:c||!i.trim(),children:"ثبت کارت زرد"})]})]})}function A(e){let{userId:a,onDone:s,onCancel:l}
1=e,[i,r]=(0,n.useState)(""),[c,d]=(0,n.useState)(!1),[x,m]=(0,n.useState)(!1);return(0,t.jsxs)("form",{onSubmit:async e=>{e.preventDefault(),d(!0);try{await (0,o.SC)(`/api/admin/users/${a}/password`,{method:"POST",body:JSON.stringify({password:i})}),m(!0),setTimeout(s,900)}finally{d(!1)}},children:[(0,t.jsx)(u.gN,{label:"رمز عبور جدید (حداقل ۶ کاراکتر)",children:(0,t.jsx)(u.II,{value:i,onChange:e=>r(e.target.value),type:"text",minLength:6,required:!0})}),x&&(0,t.jsx)("p",{className:"text-13 text-[#015046] mt-8",children:"رمز عبور با موفقیت تنظیم شد"}),(0,t.jsxs)("div",{className:"flex items-center gap-x-10 justify-end mt-16",children:[(0,t.jsx)(u.zx,{type:"button",variant:"secondary",onClick:l,children:"انصراف"}),(0,t.jsx)(u.zx,{type:"submit",disabled:c||i.length<6,children:"ذخیره رمز"})]})]})}function D(e){let{user:a,onSaved:s}=e,[l,i]=(0,n.useState)(null==a.commissionPercent?"":String(a.commissionPercent)),[r,d]=(0,n.useState)(!1),[m,h]=(0,n.useState)(null),{data:j}=(0,c.u)("/api/admin/settings/reservation",e=>(0,o.SC)(e)),g=""!==l.trim(),p=(0,x.W_)(l),b=g&&(null===p||p<0||p>100),N=g&&!b?p:null==j?void 0:j.commissionPercent;async function f(e){d(!0),h(null);try{await (0,o.SC)(`/api/admin/users/${a.id}`,{method:"PATCH",body:JSON.stringify({commissionPercent:e})}),s()}catch(e){h(e instanceof Error?e.message:"ذخیره نشد")}finally{d(!1)}}return(0,t.jsxs)(u.Zb,{className:"p-20",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-x-12 flex-wrap gap-y-8 mb-14",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-16 leading-24 font-m text-black",children:"کمیسیون میزبان"}),(0,t.jsx)("p",{className:"text-12 leading-20 text-gray-9B9BAA mt-2",children:"درصدی از مبلغ اجاره که سهم سایت است و از سهم این میزبان کسر می‌شود."})]}),(0,t.jsx)(u.Ct,{tone:null==a.commissionPercent?"gray":"blue",children:null==a.commissionPercent?`نرخ عمومی سایت${j?` (${(0,u.N)(j.commissionPercent)}٪)`:""}`:`نرخ اختصاصی ${(0,u.N)(a.commissionPercent)}٪`})]}),(0,t.jsxs)("div",{className:"flex items-end gap-x-12 flex-wrap gap-y-12",children:[(0,t.jsx)("div",{className:"w-[180px]",children:(0,t.jsx)(u.gN,{label:"درصد کمیسیون",children:(0,t.jsx)(u.II,{inputMode:"decimal",value:l,placeholder:j?`${j.commissionPercent}`:"نرخ عمومی",onChange:e=>i(e.target.value)})})}),(0,t.jsx)(u.zx,{disabled:r||b,onClick:()=>f(g&&null!==p?p:null),children:"ذخیره"}),null!=a.commissionPercent&&(0,t.jsx)(u.zx,{variant:"secondary",disabled:r,onClick:()=>{i(""),f(null)},children:"بازگشت به نرخ عمومی"})]}),b&&(0,t.jsx)("p",{className:"mt-10 text-13 text-[#C62828]",children:"درصد باید بین ۰ تا ۱۰۰ باشد."}),!!m&&(0,t.jsx)("p",{className:"mt-10 text-13 text-[#C62828]",children:m}),null!=N&&!b&&(0,t.jsxs)("p",{className:"mt-12 text-12 leading-20 text-gray-6C6A7D",children:["با نرخ ",(0,u.N)(N),"٪، از یک رزرو ",(0,u.N)(5e6)," تومانی سهم سایت"," ",(0,t.jsx)("b",{children:(0,u.N)(Math.round(5e6*N/100))})," تومان می‌شود.",(0,t.jsxs)("span",{className:"text-gray-9B9BAA",children:[" ","این نرخ روی رزروهای جدید اعمال می‌شود؛ رزروهای ثبت‌شده نرخ خودشان را نگه می‌دارند."]})]})]})}function E(e){let{user:a,onSaved:s}=e,[l,i]=(0,n.useState)(!1),r=!a.phoneReservationDisabled;async function c(e){i(!0);try{await (0,o.SC)(`/api/admin/users/${a.id}`,{method:"PATCH",body:JSON.stringify({phoneReservationDisabled:!e})}),s()}finally{i(!1)}}return(0,t.jsx)(u.Zb,{className:"p-20",children:(0,t.jsxs)("div",{className:"flex items-start justify-between gap-x-12 flex-wrap gap-y-8",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-16 leading-24 font-m text-black",children:"حالت رزرو تلفنی"}),(0,t.jsx)("p",{className:"text-12 leading-20 text-gray-9B9BAA mt-2",children:"اگر این میزبان رزرو تلفنی (نمایش شماره‌اش روی صفحه‌ی اقامتگاه) را نمی‌خواهد، خاموش کنید — مستقل از قانون‌های تنظیمات ← حالت رزرو، همه‌ی اقامتگاه‌های این میزبان به رزرو آنلاین برمی‌گردند."})]}),(0,t.jsx)(u.ZD,{checked:r,onChange:c,disabled:l,label:r?"فعال":"غیرفعال"})]})})}}
1,35157:function(e,a,s){"use strict";s.d(a,{g:function(){return l},o:function(){return i}});var t=s(67294);let n="lidoma_admin_nav:";function l(e,a,s){try{let t={ids:a,returnUrl:s,savedAt:Date.now()};window.sessionStorage.setItem(n+e,JSON.stringify(t))}catch{}}function i(e,a){let[s,l]=(0,t.useState)(null);return(0,t.useEffect)(()=>{if(null==a){l(null);return}let s=function(e){try{let a=window.sessionStorage.getItem(n+e);if(!a)return null;let s=JSON.parse(a);if(Date.now()-s.savedAt>18e5)return null;return s}catch{return null}}(e);if(!s){l(null);return}let t=s.ids.findIndex(e=>String(e)===String(a));if(-1===t){l(null);return}l({index:t,total:s.ids.length,prevId:t>0?s.ids[t-1]:null,nextId:t<s.ids.length-1?s.ids[t+1]:null,returnUrl:s.returnUrl})},[e,a]),s}}},function(e){e.O(0,[4389,9759,9774,2888,179],function(){return e(e.s=17753)}),_N_E=e.O()}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.