PageSourceSearch

https://lidomatrip.com/_next/static/chunks/pages/admin/settings/discount-codes/[id]-a143d931aa266618.js

js lidomatrip.com collected 2026-09-25 07:11:19 UTC 36,816 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3919],{17838:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/admin/settings/discount-codes/[id]",function(){return t(59783)}])},55290:function(e,n,t){"use strict";t.d(n,{Em:function(){return m},R3:function(){return d},Y3:function(){return c},YS:function(){return u},ZP:function(){return x}});var s=t(10253),a=t(85893),i=t(67294),r=t(68289),l=t.n(r),c=["فروردین","اردیبهشت","خرداد","تیر","مرداد","شهریور","مهر","آبان","آذر","دی","بهمن","اسفند"],o=["ش","ی","د","س","چ","پ","ج"],u=function(e){return String(e).replace(/[0-9]/g,function(e){return"۰۱۲۳۴۵۶۷۸۹"[Number(e)]})};function d(e){if(!e)return"—";var n=l()(e.slice(0,10),"YYYY-MM-DD");return n.isValid()?"".concat(u(n.format("jD"))," ").concat(c[n.jMonth()]," ").concat(u(n.jYear())):"—"}function m(e){if(!e)return"—";var n=l()(e.slice(0,10),"YYYY-MM-DD");return n.isValid()?u(n.format("jYYYY/jMM/jDD")):"—"}function x(e){var n=e.label,t=e.value,r=e.onChange,m=e.min,x=e.hint,h=(0,s.Z)((0,i.useState)(!1),2),g=h[0],p=h[1],v=(0,s.Z)((0,i.useState)(function(){return t?l()(t,"YYYY-MM-DD"):l()()}),2),f=v[0],b=v[1],j=(0,i.useRef)(null);(0,i.useEffect)(function(){g&&t&&b(l()(t,"YYYY-MM-DD"))},[g,t]),(0,i.useEffect)(function(){var e=function(e){var n;(null===(n=j.current)||void 0===n?void 0:n.contains(e.target))||p(!1)},n=function(e){"Escape"===e.key&&p(!1)};if(g)return document.addEventListener("mousedown",e),document.addEventListener("keydown",n),function(){document.removeEventListener("mousedown",e),document.removeEventListener("keydown",n)}},[g]);var N=(0,i.useMemo)(function(){var e=f.clone().startOf("jMonth");return Array.from({length:f.clone().endOf("jMonth").jDate()},function(n,t){return e.clone().add(t,"day")})},[f]),y=(f.clone().startOf("jMonth").day()+1)%7;return(0,a.jsxs)("div",{ref:j,className:"relative",children:[(0,a.jsx)("span",{className:"block mb-6 text-12 leading-18 text-gray-6C6A7D font-m",children:n}),(0,a.jsxs)("button",{type:"button",onClick:function(){return p(function(e){return!e})},className:"w-full flex items-center justify-between gap-x-8 px-14 py-10 rounded-10 border text-14 leading-22 text-right transition ".concat(g?"border-primary-main":"border-gray-E5E5E6 hover:border-gray-C4CAD3"),children:[(0,a.jsx)("span",{className:t?"text-black":"text-gray-9B9BAA",children:t?d(t):"انتخاب تاریخ"}),(0,a.jsx)("i",{className:"icon-Calendar text-16 text-gray-9B9BAA"})]}),x&&(0,a.jsx)("span",{className:"block mt-4 text-11 leading-18 text-gray-9B9BAA",children:x}),g&&(0,a.jsxs)("div",{className:"absolute z-5 mt-6 right-0 w-[268px] bg-white rounded-12 border border-gray-E5E5E6 shadow-[0_6px_16px_0px_rgba(8,19,56,0.12)] p-12",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-10",children:[(0,a.jsx)("button",{type:"button",onClick:function(){return b(function(e){return e.clone().subtract(1,"jMonth")})},className:"w-28 h-28 rounded-8 text-gray-6C6A7D hover:bg-gray-F0F0F0",children:"‹"}),(0,a.jsxs)("span",{className:"text-13 leading-20 font-m text-black",children:[c[f.jMonth()]," ",u(f.jYear())]}),(0,a.jsx)("button",{type:"button",onClick:function(){return b(function(e){return e.clone().add(1,"jMonth")})},className:"w-28 h-28 rounded-8 text-gray-6C6A7D hover:bg-gray-F0F0F0",children:"›"})]}),(0,a.jsx)("div",{className:"grid grid-cols-7 gap-2 mb-2",children:o.map(function(e){return(0,a.jsx)("div",{className:"text-center text-10 text-gray-9B9BAA py-2",children:e},e)})}),(0,a.jsxs)("div",{className:"grid grid-cols-7 gap-2",children:[Array.from({length:y}).map(function(e,n){return(0,a.jsx)("div",{},"b-".concat(n))}),N.map(function(e){var n=e.format("YYYY-MM-DD"),s=!!m&&n<m;return(0,a.jsx)("button",{type:"button",disabled:s,onClick:function(){r(n),p(!1)},className:"h-30 rounded-8 text-12 leading-18 transition ".concat(n===t?"bg-primary-main text-white font-m":s?"text-gray-C4CAD3 cursor-not-allowed":"text-gray-6C6A7D hover:bg-gray-F0F0F0"),children:u(e.format("jD"))},n)})]})]})]})}},59783:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return S}});
1var s=t(47568),a=t(14924),i=t(26042),r=t(69396),l=t(10253),c=t(36305),o=t(70655),u=t(85893),d=t(67294),m=t(41664),x=t.n(m),h=t(11163),g=t(44389),p=t(49759),v=t(32474),f=t(70707),b=t(20376),j=t(55290);function N(e){var n=e.label,t=e.value,s=e.onChange,a=e.hint,i=e.defaultTime,r=void 0===i?"00:00":i,c=(0,l.Z)(t?t.split("T"):["",""],2),o=c[0],d=void 0===o?"":o,m=c[1],x=void 0===m?"":m,h=function(e){d&&s("".concat(d,"T").concat(e||r))};return(0,u.jsxs)("div",{children:[(0,u.jsxs)("div",{className:"grid grid-cols-[1fr_120px] gap-x-8 items-end",children:[(0,u.jsx)(j.ZP,{label:n,value:d,onChange:function(e){if(!e)return s("");s("".concat(e,"T").concat(x||r))}}),(0,u.jsxs)("label",{className:"block",children:[(0,u.jsx)("span",{className:"block mb-6 text-12 leading-18 text-gray-6C6A7D font-m",children:"ساعت"}),(0,u.jsx)("input",{type:"time",value:x,disabled:!d,onChange:function(e){return h(e.target.value)},className:"w-full px-14 py-10 rounded-10 border border-gray-E5E5E6 text-14 leading-22 outline-none focus:border-primary-main transition disabled:bg-gray-F7F7F7 disabled:text-gray-9B9BAA"})]})]}),a&&(0,u.jsx)("span",{className:"block mt-4 text-11 leading-18 text-gray-9B9BAA",children:a})]})}var y=t(99871),C={name:"",code:"",internalNote:"",status:"DRAFT",priority:"0",isVisibleToUser:!1,audience:"ALL",userIds:[],cityIds:[],scope:"ALL",scopeLocationIds:[],scopeTypes:[],scopeAmenityIds:[],scopeHostIds:[],scopeResidenceIds:[],minResidenceRating:"",maxResidenceAgeDays:"",kind:"PERCENT",amount:"",maxDiscountAmount:"",base:"RENT",minReservationAmount:"",maxReservationAmount:"",startsAt:"",endsAt:"",travelStartDate:"",lastCheckoutDate:"",totalUsageLimit:"",perUserUsageLimit:"",combinableWithResidenceDiscount:!0,releaseQuotaOnCancel:!0,messages:{}},A=function(e){return(0,f.W_)(e)},I=function(e){return e?e.slice(0,16):""},D=function(e){return e?new Date(e).toISOString():null},E=function(e){return e?e.slice(0,10):""},R=function(e){return e?new Date("".concat(e,"T00:00:00")).toISOString():null};function S(){var e,n,t,m,f,S,k,U,Y,_,B,L,M,O=function(){var e,n;return{name:Q.name.trim(),code:Q.code.trim(),internalNote:Q.internalNote.trim()||null,status:Q.status,priority:null!==(e=A(Q.priority))&&void 0!==e?e:0,isVisibleToUser:Q.isVisibleToUser,audience:Q.audience,userIds:"SPECIFIC_USERS"===Q.audience?Q.userIds:[],cityIds:"CITY"===Q.audience?Q.cityIds:[],scope:Q.scope,scopeLocationIds:"LOCATION"===Q.scope?Q.scopeLocationIds:[],scopeTypes:"TYPE"===Q.scope?Q.scopeTypes:[],scopeAmenityIds:"AMENITY"===Q.scope?Q.scopeAmenityIds:[],scopeHostIds:"HOST"===Q.scope?Q.scopeHostIds:[],scopeResidenceIds:"RESIDENCES"===Q.scope?Q.scopeResidenceIds:[],minResidenceRating:A(Q.minResidenceRating),maxResidenceAgeDays:A(Q.maxResidenceAgeDays),kind:Q.kind,amount:null!==(n=A(Q.amount))&&void 0!==n?n:0,maxDiscountAmount:"PERCENT"===Q.kind?A(Q.maxDiscountAmount):null,base:Q.base,minReservationAmount:A(Q.minReservationAmount),maxReservationAmount:A(Q.maxReservationAmount),startsAt:D(Q.startsAt),endsAt:D(Q.endsAt),travelStartDate:R(Q.travelStartDate),lastCheckoutDate:R(Q.lastCheckoutDate),totalUsageLimit:A(Q.totalUsageLimit),perUserUsageLimit:A(Q.perUserUsageLimit),combinableWithResidenceDiscount:Q.combinableWithResidenceDiscount,releaseQuotaOnCancel:Q.releaseQuotaOnCancel,messages:Object.keys(Q.messages).length?Q.messages:null}},P=(0,h.useRouter)(),V=P.query.id,H="new"===V,$=H||"string"!=typeof V?null:Number(V),z=(0,l.Z)((0,d.useState)(C),2),Q=z[0],W=z[1],X=(0,l.Z)((0,d.useState)([]),2),q=X[0],G=X[1],K=(0,l.Z)((0,d.useState)([]),2),J=K[0],ee=K[1],en=(0,l.Z)((0,d.useState)([]),2),et=en[0],es=en[1],ea=(0,l.Z)((0,d.useState)(!1),2),ei=ea[0],er=ea[1],el=(0,l.Z)((0,d.useState)(null),2),ec=el[0],eo=el[1],eu=(0,l.Z)((0,d.useState)(!1),2),ed=eu[0],em=eu[1],ex=(0,g.u)("discount-options",y.hA).data,eh=(0,g.u)($?["discount",$]:null,function(){return(0,y.fL)($)}),eg=eh.data,ep=eh.isLoading,ev=(0,g.u)($?["discount-history",$]:null,function(){return(0,y.Qi)($)}).data;(0,d.useEffect)(function(){var e,n,t,s,a,i,r,l,c,o,u,d,m,x,h,g;eg&&(W({name:eg.name,code:eg.code,internalNote:null!==(l=eg.internalNote)&&void 0!==l?l:"",status:eg.status,priority:String(eg.priority),isVisibleToUser:eg.isVisibleToUser,audience:eg.audience,userIds:eg.users.map(function(e){return e.id}),cityIds:eg.cityIds,scope:eg.scope,scopeLocationIds:eg.scopeLocationIds,scopeTypes:eg.scopeTypes,scopeAmenityIds:eg.scopeAmenityIds,scopeHostIds:eg.scopeHostIds,scopeResidenceIds:eg.scopeResidenceIds,minResidenceRating:null!==(c=null===(e=eg.minResidenceRating)||void 0===e?void 0:e.toString())&&void 0!==c?c:"",maxResidenceAgeDays:null!==(o=null===(n=eg.maxResidenceAgeDays)||void 0===n?void 0:n.toString())&&void 0!==o?o:"",kind:eg.kind,amount:String(eg.amount),maxDiscountAmount:null!==(u=null===(t=eg.maxDiscountAmount)||void 0===t?void 0:t.toString())&&void 0!==u?u:"",base:eg.base,minReservationAmount:null!==(d=null===(s=eg.minReservationAmount)||void 0===s?void 0:s.toString())&&void 0!==d?d:"",maxReservationAmount:null!==(m=null===(a=eg.maxReservationAmount)||void 0===a?void 0:a.toString())&&void 0!==m?m:"",startsAt:I(eg.startsAt),endsAt:I(eg.endsAt),travelStartDate:E(eg.travelStartDate),lastCheckoutDate:E(eg.last
1CheckoutDate),totalUsageLimit:null!==(x=null===(i=eg.totalUsageLimit)||void 0===i?void 0:i.toString())&&void 0!==x?x:"",perUserUsageLimit:null!==(h=null===(r=eg.perUserUsageLimit)||void 0===r?void 0:r.toString())&&void 0!==h?h:"",combinableWithResidenceDiscount:eg.combinableWithResidenceDiscount,releaseQuotaOnCancel:eg.releaseQuotaOnCancel,messages:null!==(g=eg.messages)&&void 0!==g?g:{}}),G(eg.users.map(function(e){return{id:e.id,label:e.name||e.phone,hint:e.phone}})))},[eg]);var ef=function(e,n){W(function(t){return(0,r.Z)((0,i.Z)({},t),(0,a.Z)({},e,n))}),em(!1)},eb=(0,d.useCallback)((e=(0,s.Z)(function(e){return(0,o.__generator)(this,function(n){switch(n.label){case 0:return[4,(0,y.pz)(e)];case 1:return[2,n.sent().map(function(e){return{id:e.id,label:e.name||"بدون نام",hint:e.phone}})]}})}),function(n){return e.apply(this,arguments)}),[]),ej=(0,d.useCallback)((n=(0,s.Z)(function(e){return(0,o.__generator)(this,function(n){switch(n.label){case 0:return[4,(0,y.pz)(e,!0)];case 1:return[2,n.sent().map(function(e){return{id:e.id,label:e.name||"بدون نام",hint:e.phone}})]}})}),function(e){return n.apply(this,arguments)}),[]),eN=(0,d.useCallback)((t=(0,s.Z)(function(e){return(0,o.__generator)(this,function(n){switch(n.label){case 0:return[4,(0,y.wH)(e)];case 1:return[2,n.sent().map(function(e){return{id:e.id,label:e.name,hint:"".concat(null!==(m=e.cityName)&&void 0!==m?m:"—"," \xb7 کد ").concat(e.publicId)}})]}})}),function(e){return t.apply(this,arguments)}),[]);function ey(){return(ey=(0,s.Z)(function(){var e,n;return(0,o.__generator)(this,function(t){switch(t.label){case 0:er(!0),eo(null),t.label=1;case 1:if(t.trys.push([1,6,7,8]),!$)return[3,3];return[4,(0,y.Qz)($,O())];case 2:return t.sent(),em(!0),[3,5];case 3:return[4,(0,y.o1)(O())];case 4:e=t.sent(),P.replace("/admin/settings/discount-codes/".concat(e.id)),t.label=5;case 5:return[3,8];case 6:return eo((n=t.sent())instanceof Error?n.message:"ذخیره نشد"),[3,8];case 7:return er(!1),[7];case 8:return[2]}})})).apply(this,arguments)}var eC=(null!==(f=null==ex?void 0:ex.locations)&&void 0!==f?f:[]).map(function(e){return{id:e.id,label:e.name,hint:"PROVINCE"===e.type?"استان":null!==(S=e.parentName)&&void 0!==S?S:"شهر"}}),eA=(null!==(k=null==ex?void 0:ex.locations)&&void 0!==k?k:[]).filter(function(e){return"CITY"===e.type}).map(function(e){return{id:e.id,label:e.name,hint:e.parentName}}),eI=(null!==(U=null==ex?void 0:ex.amenities)&&void 0!==U?U:[]).map(function(e){return{id:e.id,label:e.name,hint:e.category}});if($&&ep)return(0,u.jsx)(p.Z,{title:"کد تخفیف",breadcrumb:(0,u.jsx)(x(),{href:"/admin",children:"داشبورد"}),children:(0,u.jsx)(v.Od,{className:"h-[520px]"})});var eD=(null!==(Y=null==eg?void 0:eg.usedCount)&&void 0!==Y?Y:0)>0;return(0,u.jsx)(p.Z,{title:H?"کد تخفیف جدید":null!==(_=null==eg?void 0:eg.name)&&void 0!==_?_:"کد تخفیف",breadcrumb:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(x(),{href:"/admin",children:"داشبورد"})," / ",(0,u.jsx)(x(),{href:"/admin/settings",children:"تنظیمات"})," /"," ",(0,u.jsx)(x(),{href:"/admin/settings/discount-codes",children:"کدهای تخفیف"})]}),actions:(0,u.jsxs)(u.Fragment,{children:[eg&&(0,u.jsx)(v.Ct,{tone:y.Ri[eg.effectiveStatus],children:y.NK[eg.effectiveStatus]}),(0,u.jsx)(v.zx,{onClick:function(){return ey.apply(this,arguments)},disabled:ei,children:ei?"در حال ذخیره…":H?"ساخت کد تخفیف":"ذخیره تغییرات"})]}),children:(0,u.jsxs)("div",{className:"grid gap-16 lg:grid-cols-[1fr_360px] items-start",children:[(0,u.jsxs)("div",{className:"flex flex-col gap-y-16",children:[ec&&(0,u.jsx)("div",{className:"rounded-10 bg-[#FEE] px-14 py-12 text-13 text-[#C62828]",children:ec}),ed&&(0,u.jsx)("div",{className:"rounded-10 bg-[#E8F5E9] px-14 py-12 text-13 text-[#1B5E20]",children:"تغییرات ذخیره شد."}),(0,u.jsx)(v.Zb,{children:(0,u.jsxs)(b.$0,{title:"اطلاعات پایه",children:[(0,u.jsxs)("div",{className:"grid md:grid-cols-2 gap-14",children:[(0,u.jsx)(v.gN,{label:"نام تخفیف *",hint:"فقط برای شناسایی داخلی؛ به مهمان نشان داده نمی‌شود.",children:(0,u.jsx)(v.II,{value:Q.name,onChange:function(e){return ef("name",e.target.value)}})}),(0,u.jsx)(v.gN,{label:"کد تخفیف *",hint:eD?"این کد قبلاً استفاده شده و دیگر قابل تغییر نیست.":"حروف انگلیسی، عدد، خط تیره. به بزرگی و کوچکی حروف حساس نیست.",children:(0,u.jsxs)("div",{className:"flex gap-x-8",children:[(0,u.jsx)(v.II,{dir:"ltr",className:"font-mono",value:Q.code,disabled:eD,onChange:function(e){return ef("code",e.target.value.toUpperCase())}}),!eD&&(0,u.jsx)(v.zx,{variant:"secondary",type:"button",onClick:(0,s.Z)(function(){var e;return(0,o.__generator)(this,function(n){switch(n.label){case 0:return e=["code"],[4,(0,y.bB)()];case 1:return[2,ef.apply(void 0,e.concat([n.sent().code]))]}})}),children:"تولید"})]})})]}),(0,u.jsx)(v.gN,{label:"توضیحات داخلی",className:"mt-14",children:(0,u.jsx)("textarea",{value:Q.internalNote,onChange:function(e){return ef("internalNote",e.target.value)},rows:2,className:"w-full px-14 py-10 rounded-10 border border-gray-E5E5E6 text-14 leading-22 outline-none focus:border-primary-main transition"})}),(0,u.jsxs)("div",{className:"grid md:grid-cols-3 gap-14 mt-14 items-end",children:[(0,u.jsx)(v.gN,{label:"وضعیت",children:(0,u.jsxs)(v.Ph,{className:"w-full",value:Q.status,onChange:function(e){return ef("status",e.target.value)},children:[(0,u.jsx)("option",{value:"DRAFT",children:"پیش‌نویس"}),(0,u.jsx)("option",{value:"ACTIVE",children:"فعال"}),(0,u.jsx)("option",{value:"DISABLED",children:"غیرفعال"}),(0,u.jsx)("option",{value:"ARCHIVED",children:"آرشیوشده"})]})}),(0,u.jsx)(v.gN,{label:"اولویت",hint:"وقتی چند کد هم‌زمان قابل اعمال باشند، عدد بزرگ‌تر برنده است.",children:(0,u.jsx)(v.II,{inputMode:"numeric",value:Q.priority,onChange:function(e){return ef("priority",e.target.value)}})}),(0,u.jsx)(v.ZD,{checked:Q.isVisibleToUser,onChange:function(e){return ef("isVisibleToUser",e)},label:"در فهرست تخفیف‌های کاربر نمایش داده شود"})]})]})}),(0,u.jsx)(v.Zb,{children:(0,u.jsxs)(b.$0,{title:"تخفیف برای",desc:"\xabکاربران جدید\xbb یعنی هیچ رزرو موفقی نداشته‌اند — از تاریخچه‌ی رزرو خوانده می‌شود، نه از یک فلگ روی حساب.",children:[(0,u.jsx)(b.Ee,{value:Q.audience,onChange:function(e){return ef("audience",e)},options:Object.keys(y.rc).map(function(e){return{value:e,label:y.rc[e]}})}),"SPECIFIC_USERS"===Q.audience&&(0,u.jsxs)("div",{className:"mt-14",children:[(0,u.jsxs)("p",{className:"mb-8 text-12 text-gray-6C6A7D",children:["کد با ",(0,u.jsx)("b",{children:"شناسه‌ی کاربر"})," بررسی می‌شود، نه با شماره یا ایمیل — پس اگر کسی شماره‌اش را عوض کند، کدش با خودش می‌ماند."]}
1),(0,u.jsx)(b.ID,{selected:Q.userIds,resolved:q,onChange:function(e,n){ef("userIds",e),G(n)},search:eb,placeholder:"نام، شماره یا ایمیل کاربر"})]}),"CITY"===Q.audience&&(0,u.jsx)("div",{className:"mt-14",children:(0,u.jsx)(b.NU,{choices:eA,selected:Q.cityIds,onChange:function(e){return ef("cityIds",e)},searchPlaceholder:"جستجوی شهر"})})]})}),(0,u.jsx)(v.Zb,{children:(0,u.jsxs)(b.$0,{title:"اعمال بر روی",desc:"یک محور انتخاب می‌شود، نه چند تا با هم — وگرنه باید مشخص می‌شد که ترکیبشان \xabو\xbb است یا \xabیا\xbb.",children:[(0,u.jsx)(b.Ee,{value:Q.scope,onChange:function(e){return ef("scope",e)},options:Object.keys(y.Cd).map(function(e){return{value:e,label:y.Cd[e]}}),columns:3}),"LOCATION"===Q.scope&&(0,u.jsxs)("div",{className:"mt-14",children:[(0,u.jsx)("p",{className:"mb-8 text-12 text-gray-6C6A7D",children:"انتخاب یک استان، شهرهای زیرمجموعه‌اش را هم می‌گیرد."}),(0,u.jsx)(b.NU,{choices:eC,selected:Q.scopeLocationIds,onChange:function(e){return ef("scopeLocationIds",e)},searchPlaceholder:"جستجوی شهر یا استان"})]}),"TYPE"===Q.scope&&(0,u.jsx)("div",{className:"mt-14 flex flex-wrap gap-8",children:(null!==(B=null==ex?void 0:ex.residenceTypes)&&void 0!==B?B:[]).map(function(e){return(0,u.jsxs)("label",{className:"flex items-center gap-x-8 rounded-10 border px-12 py-10 cursor-pointer transition ".concat(Q.scopeTypes.includes(e.value)?"border-primary-main bg-primary-main/5":"border-gray-E5E5E6 hover:bg-gray-F7F7F7"),children:[(0,u.jsx)("input",{type:"checkbox",checked:Q.scopeTypes.includes(e.value),onChange:function(){return ef("scopeTypes",Q.scopeTypes.includes(e.value)?Q.scopeTypes.filter(function(n){return n!==e.value}):(0,c.Z)(Q.scopeTypes).concat([e.value]))},className:"w-16 h-16 accent-primary-main"}),(0,u.jsx)("span",{className:"text-13",children:e.label})]},e.value)})}),"AMENITY"===Q.scope&&(0,u.jsxs)("div",{className:"mt-14",children:[(0,u.jsxs)("p",{className:"mb-8 text-12 text-gray-6C6A7D",children:["اقامتگاه باید ",(0,u.jsx)("b",{children:"همه‌ی"})," موارد انتخاب‌شده را داشته باشد، نه یکی از آن‌ها."]}),(0,u.jsx)(b.NU,{choices:eI,selected:Q.scopeAmenityIds,onChange:function(e){return ef("scopeAmenityIds",e)},searchPlaceholder:"جستجوی امکانات"})]}),"HOST"===Q.scope&&(0,u.jsx)("div",{className:"mt-14",children:(0,u.jsx)(b.ID,{selected:Q.scopeHostIds,resolved:J,onChange:function(e,n){ef("scopeHostIds",e),ee(n)},search:ej,placeholder:"نام یا شماره میزبان"})}),"RESIDENCES"===Q.scope&&(0,u.jsx)("div",{className:"mt-14",children:(0,u.jsx)(b.ID,{selected:Q.scopeResidenceIds,resolved:et,onChange:function(e,n){ef("scopeResidenceIds",e),es(n)},search:eN,placeholder:"نام یا کد اقامتگاه"})}),(0,u.jsxs)("div",{className:"grid md:grid-cols-2 gap-14 mt-16 pt-16 border-t border-gray-F0F0F0",children:[(0,u.jsx)(v.gN,{label:"حداقل امتیاز اقامتگاه",hint:"بین ۰ تا ۵. خالی = بدون شرط.",children:(0,u.jsx)(v.II,{inputMode:"decimal",value:Q.minResidenceRating,onChange:function(e){return ef("minResidenceRating",e.target.value)}})}),(0,u.jsx)(v.gN,{label:"فقط اقامتگاه‌های تازه‌ثبت‌شده (روز)",hint:"مثلاً ۹۰ یعنی اقامتگاه‌هایی که تا ۹۰ روز پیش ثبت شده‌اند.",children:(0,u.jsx)(v.II,{inputMode:"numeric",value:Q.maxResidenceAgeDays,onChange:function(e){return ef("maxResidenceAgeDays",e.target.value)}})})]})]})}),(0,u.jsx)(v.Zb,{children:(0,u.jsxs)(b.$0,{title:"بازه زمانی",children:[(0,u.jsx)("p",{className:"mb-10 text-12 leading-20 text-gray-6C6A7D font-m",children:"بازه‌ی فعال بودن کد"}),(0,u.jsxs)("div",{className:"grid md:grid-cols-2 gap-14",children:[(0,u.jsx)(N,{label:"شروع",hint:"خالی = از همین حالا",value:Q.startsAt,onChange:function(e){return ef("startsAt",e)}}),(0,u.jsx)(N,{label:"پایان",hint:"خالی = تا وقتی غیرفعال شود یا ظرفیتش تمام شود",value:Q.endsAt,onChange:function(e){return ef("endsAt",e)},defaultTime:"23:59"})]}),(0,u.jsx)("p",{className:"mt-16 mb-10 text-12 leading-20 text-gray-6C6A7D font-m",children:"بازه‌ی تاریخ اقامت مجاز"}),(0,u.jsxs)("div",{className:"grid md:grid-cols-2 gap-14",children:[(0,u.jsx)(j.ZP,{label:"تاریخ شروع سفر",hint:"تاریخ ورود رزرو باید از این روز یا بعدش باشد.",value:Q.travelStartDate,onChange:function(e){return ef("travelStartDate",e)}}),(0,u.jsx)(j.ZP,{label:"آخرین تاریخ مجاز خروج",hint:"شامل خودِ همین روز است — رزروی که همین روز تمام شود پذیرفته می‌شود.",value:Q.lastCheckoutDate,onChange:function(e){return ef("lastCheckoutDate",e)}})]})]})}),(0,u.jsx)(v.Zb,{children:(0,u.jsxs)(b.$0,{title:"محاسبه تخفیف",children:[(0,u.jsxs)("div",{className:"grid md:grid-cols-2 gap-14",children:[(0,u.jsx)(v.gN,{label:"نوع تخفیف",children:(0,u.jsxs)(v.Ph,{className:"w-full",value:Q.kind,onChange:function(e){return ef("kind",e.target.value)},children:[(0,u.jsx)("option",{value:"PERCENT",children:"درصدی"}),(0,u.jsx)("option",{value:"FIXED",children:"مبلغ ثابت"})]})}),(0,u.jsx)(v.gN,{label:"PERCENT"===Q.kind?"درصد تخفیف *":"مبلغ تخفیف (تومان) *",hint:"PERCENT"===Q.kind?"بین ۱ تا ۱۰۰":void 0,children:(0,u.jsx)(v.II,{inputMode:"decimal",value:Q.amount,onChange:function(e){return ef("amount",e.target.value)}})}),"PERCENT"===Q.kind&&(0,u.jsx)(v.gN,{label:"حداکثر میزان تأثیر (تومان)",hint:"سقف تخفیف. خالی = بدون سقف. فقط برای تخفیف درصدی معنا دارد.",children:(0,u.jsx)(v.II,{inputMode:"numeric",value:Q.maxDiscountAmount,onChange:function(e){return ef("maxDiscountAmount",e.target.value)}})}),(0,u.jsx)(v.gN,{label:"مبلغ مشمول تخفیف",hint:"پیش‌فرض فقط مبلغ اقامت است؛ کارمزد و مالیات جزو مبلغ مشمول نیستند.",children:(0,u.jsx)(v.Ph,{className:"w-full",value:Q.base,onChange:function(e){return ef("base",e.target.value)},children:Object.keys(y.y$).map(function(e){return(0,u.jsx)("option",{value:e,children:y.y$[e]},e)})})}),(0,u.jsx)(v.gN,{label:"حداقل مبلغ رزرو (تومان)",hint:"خالی = بدون حداقل",children:(0,u.jsx)(v.II,{inputMode:"numeric",value:Q.minReservationAmount,onChange:function(e){return ef("minReservationAmount",e.target.value)}})}),(0,u.jsx)(v.gN,{label:"حداکثر مبلغ رزرو (تومان)",hint:"خالی = بدون سقف",children:(0,u.jsx)(v.II,{inputMode:"numeric",value:Q.maxReservationAmount,onChange:function(e){return ef("maxReservationAmount",e.target.value)}})})]}),(0,u.jsxs)("p",{className:"mt-14 rounded-10 bg-gray-F7F7F7 px-14 py-10 text-12 leading-20 text-gray-6C6A7D",children:["مبلغ تخفیف از ",(0,u.jsx)("b",{children:"سهم کارمزد سایت"})," کم می‌شود، نه از درآمد میزبان. سهم میزبان روی رزروهای این کمپین همان چیزی است که بدون کد بود."]})]})}),(0,u.jsx)(v.Zb,{children:(0,u.jsxs)(b.$0,{title:"محدودیت استفاده",children:[(0,u.jsxs)("div",{className:"grid md:grid-cols-2 gap-14",children:[(0,u.jsx)(v.gN,{label:"تعداد کل استفاده",hint:"خالی = نامحدود. صفر = هیچ‌کس نمی‌تواند استفاده کند.",children:(0,u.jsx)(v.II,{inputMode:"numeric",value:Q.totalUsageLimit,onChange:function(e){return ef("totalUsageLimit",e.target.value)}})}
1),(0,u.jsx)(v.gN,{label:"تعداد استفاده برای هر کاربر",hint:"خالی = نامحدود",children:(0,u.jsx)(v.II,{inputMode:"numeric",value:Q.perUserUsageLimit,onChange:function(e){return ef("perUserUsageLimit",e.target.value)}})})]}),(0,u.jsxs)("div",{className:"mt-14 flex flex-col gap-y-12",children:[(0,u.jsx)(v.ZD,{checked:Q.combinableWithResidenceDiscount,onChange:function(e){return ef("combinableWithResidenceDiscount",e)},label:"با تخفیف هفتگی/ماهانه‌ی خود اقامتگاه قابل ترکیب باشد"}),(0,u.jsx)(v.ZD,{checked:Q.releaseQuotaOnCancel,onChange:function(e){return ef("releaseQuotaOnCancel",e)},label:"در صورت لغو یا انقضای رزرو، سهمیه‌ی کد برگردد"})]})]})}),(0,u.jsx)(v.Zb,{children:(0,u.jsx)(Z,{defaults:null!==(L=null==eg?void 0:eg.defaultMessages)&&void 0!==L?L:{},value:Q.messages,onChange:function(e){return ef("messages",e)}})})]}),(0,u.jsxs)("div",{className:"flex flex-col gap-y-16",children:[$&&(0,u.jsx)(T,{code:Q.code}),$&&(0,u.jsx)(w,{id:$,locations:null!==(M=null==ex?void 0:ex.locations)&&void 0!==M?M:[]}),$&&(0,u.jsx)(F,{rows:null!=ev?ev:[]})]})]})})}function k(e){var n=e.label,t=e.value;return(0,u.jsxs)("div",{className:"flex items-center justify-between gap-x-12 border-b border-gray-F0F0F0 pb-8 last:border-0",children:[(0,u.jsx)("dt",{className:"text-gray-6C6A7D",children:n}),(0,u.jsx)("dd",{className:"font-m text-black",children:t})]})}function Z(e){var n,t=e.defaults,s=e.value,a=e.onChange,r=(0,l.Z)((0,d.useState)(!1),2),c=r[0],o=r[1],m=Object.keys(t),x=Object.keys(s).length;return(0,u.jsx)(b.$0,{title:"پیام‌های خطا",badge:x>0?"".concat((0,v.N)(x)," پیام سفارشی"):void 0,desc:"هر شرط پیام خودش را دارد. خالی گذاشتن یعنی استفاده از متن پیش‌فرض.",children:0===m.length?(0,u.jsx)("p",{className:"text-13 text-gray-9B9BAA",children:"پس از ذخیره‌ی اولیه، فهرست پیام‌ها اینجا نمایش داده می‌شود."}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(v.zx,{variant:"secondary",type:"button",onClick:function(){return o(function(e){return!e})},children:c?"بستن":"ویرایش ".concat((0,v.N)(m.length)," پیام")}),c&&(0,u.jsx)("div",{className:"mt-14 flex flex-col gap-y-10",children:m.map(function(e){return(0,u.jsx)(v.gN,{label:e,children:(0,u.jsx)(v.II,{value:null!==(n=s[e])&&void 0!==n?n:"",placeholder:t[e],onChange:function(n){var t=(0,i.Z)({},s);n.target.value.trim()?t[e]=n.target.value:delete t[e],a(t)}})},e)})})]})})}function T(e){var n,t,a=e.code,i=(0,l.Z)((0,d.useState)([]),2),r=i[0],c=i[1],m=(0,l.Z)((0,d.useState)([]),2),x=m[0],h=m[1],g=(0,l.Z)((0,d.useState)([]),2),p=g[0],N=g[1],C=(0,l.Z)((0,d.useState)([]),2),A=C[0],I=C[1],D=(0,l.Z)((0,d.useState)(""),2),E=D[0],R=D[1],S=(0,l.Z)((0,d.useState)(""),2),k=S[0],Z=S[1],T=(0,l.Z)((0,d.useState)("5000000"),2),w=T[0],F=T[1],U=(0,l.Z)((0,d.useState)(null),2),Y=U[0],_=U[1],B=(0,l.Z)((0,d.useState)(!1),2),L=B[0],M=B[1],O=(0,l.Z)((0,d.useState)(null),2),P=O[0],V=O[1],H=(0,d.useCallback)((n=(0,s.Z)(function(e){return(0,o.__generator)(this,function(n){switch(n.label){case 0:return[4,(0,y.wH)(e)];case 1:return[2,n.sent().map(function(e){return{id:e.id,label:e.name,hint:e.cityName}})]}})}),function(e){return n.apply(this,arguments)}),[]),$=(0,d.useCallback)((t=(0,s.Z)(function(e){return(0,o.__generator)(this,function(n){switch(n.label){case 0:return[4,(0,y.pz)(e)];case 1:return[2,n.sent().map(function(e){return{id:e.id,label:e.name||"بدون نام",hint:e.phone}})]}})}),function(e){return t.apply(this,arguments)}),[]);function z(){return(z=(0,s.Z)(function(){var e,n,t;return(0,o.__generator)(this,function(s){switch(s.label){case 0:M(!0),V(null),_(null),s.label=1;case 1:return s.trys.push([1,3,4,5]),[4,(0,y.nX)({code:a,residenceId:r[0],userId:null!==(e=p[0])&&void 0!==e?e:null,startDate:E,endDate:k,rentAmount:null!==(n=(0,f.W_)(w))&&void 0!==n?n:0})];case 2:return _.apply(void 0,[s.sent()]),[3,5];case 3:return V((t=s.sent())instanceof Error?t.message:"تست انجام نشد"),[3,5];case 4:return M(!1),[7];case 5:return[2]}})})).apply(this,arguments)}var Q=a&&r.length>0&&E&&k;return(0,u.jsx)(v.Zb,{children:(0,u.jsx)(b.$0,{title:"تست کد",desc:"چیزی ذخیره نمی‌شود و سهمیه‌ی کد مصرف نمی‌شود.",children:(0,u.jsxs)("div",{className:"flex flex-col gap-y-12",children:[(0,u.jsx)(b.ID,{selected:r.slice(0,1),resolved:x,onChange:function(e,n){c(e.slice(-1)),h(n.slice(-1))},search:H,placeholder:"اقامتگاه آزمایشی"}),(0,u.jsx)(b.ID,{selected:p.slice(0,1),resolved:A,onChange:function(e,n){N(e.slice(-1)),I(n.slice(-1))},search:$,placeholder:"کاربر آزمایشی (خالی = مهمان واردنشده
1)"}),(0,u.jsxs)("div",{className:"grid grid-cols-2 gap-10",children:[(0,u.jsx)(j.ZP,{label:"تاریخ ورود",value:E,onChange:R}),(0,u.jsx)(j.ZP,{label:"تاریخ خروج",value:k,onChange:Z})]}),(0,u.jsx)(v.gN,{label:"مبلغ اقامت (تومان)",children:(0,u.jsx)(v.II,{inputMode:"numeric",value:w,onChange:function(e){return F(e.target.value)}})}),(0,u.jsx)(v.zx,{type:"button",onClick:function(){return z.apply(this,arguments)},disabled:!Q||L,children:L?"در حال بررسی…":"تست کن"}),P&&(0,u.jsx)("p",{className:"text-12 text-[#C62828]",children:P}),Y&&Y.ok&&(0,u.jsxs)("div",{className:"rounded-10 bg-[#E8F5E9] px-14 py-12 text-13 text-[#1B5E20]",children:[(0,u.jsx)("p",{className:"font-m mb-6",children:"کد اعمال می‌شود"}),(0,u.jsxs)("p",{children:["مبلغ مشمول: ",(0,v.ND)(Y.eligibleAmount)]}),(0,u.jsxs)("p",{children:["مبلغ تخفیف: ",(0,v.ND)(Y.discountAmount)]}),(0,u.jsxs)("p",{children:["پرداختی نهایی: ",(0,v.ND)(Y.payableAfter)]}),Y.cappedByCeiling&&(0,u.jsx)("p",{className:"mt-6 text-12",children:"سقف تخفیف اعمال شد."})]}),Y&&!Y.ok&&(0,u.jsxs)("div",{className:"rounded-10 bg-[#FEE] px-14 py-12 text-13 text-[#C62828]",children:[(0,u.jsx)("p",{className:"font-m mb-6",children:"کد رد شد"}),(0,u.jsx)("p",{children:Y.message}),(0,u.jsxs)("p",{className:"mt-6 text-12 text-gray-6C6A7D",children:["شرطی که رد کرد: ",(0,u.jsx)("span",{className:"font-mono",children:Y.failedRule})]})]})]})})})}function w(e){var n,t,s,a,r,c,o,m=e.id,x=e.locations,h=(0,l.Z)((0,d.useState)({}),2),p=h[0],f=h[1],N=(0,g.u)(["discount-stats",m,p],function(){return(0,y.lN)(m,p)}),C=N.data,A=N.isLoading,I=function(e,n){return f(function(t){var s=(0,i.Z)({},t);return void 0===n||""===n||null===n?delete s[e]:s[e]=n,s})},D=Object.keys(p).length;return(0,u.jsx)(v.Zb,{children:(0,u.jsxs)(b.$0,{title:"گزارش عملکرد",badge:D?"".concat((0,v.N)(D)," فیلتر"):void 0,desc:"مصرف‌های آزادشده در هیچ‌کدام از مبلغ‌ها حساب نمی‌شوند.",children:[(0,u.jsxs)("div",{className:"grid grid-cols-2 gap-8 mb-14",children:[(0,u.jsx)(j.ZP,{label:"از تاریخ",value:null!==(s=null===(n=p.from)||void 0===n?void 0:n.slice(0,10))&&void 0!==s?s:"",onChange:function(e){return I("from",e?new Date("".concat(e,"T00:00:00")).toISOString():void 0)}}),(0,u.jsx)(j.ZP,{label:"تا تاریخ",value:null!==(a=null===(t=p.to)||void 0===t?void 0:t.slice(0,10))&&void 0!==a?a:"",onChange:function(e){return I("to",e?new Date("".concat(e,"T23:59:59")).toISOString():void 0)}})]}),(0,u.jsxs)("div",{className:"grid grid-cols-2 gap-8 mb-14",children:[(0,u.jsx)(v.gN,{label:"شهر اقامتگاه",children:(0,u.jsxs)(v.Ph,{className:"w-full",value:null!==(r=p.locationId)&&void 0!==r?r:"",onChange:function(e){return I("locationId",e.target.value?Number(e.target.value):void 0)},children:[(0,u.jsx)("option",{value:"",children:"همه"}),x.filter(function(e){return"CITY"===e.type}).map(function(e){return(0,u.jsx)("option",{value:e.id,children:e.name},e.id)})]})}),(0,u.jsx)(v.gN,{label:"وضعیت رزرو",children:(0,u.jsxs)(v.Ph,{className:"w-full",value:null!==(c=p.reservationState)&&void 0!==c?c:"",onCh
1ange:function(e){return I("reservationState",e.target.value||void 0)},children:[(0,u.jsx)("option",{value:"",children:"همه"}),Object.entries(y.ZB).map(function(e){var n=(0,l.Z)(e,2),t=n[0],s=n[1];return(0,u.jsx)("option",{value:t,children:s},t)})]})})]}),D>0&&(0,u.jsx)(v.zx,{variant:"secondary",type:"button",className:"mb-14",onClick:function(){return f({})},children:"برداشتن فیلترها"}),A&&(0,u.jsx)(v.Od,{className:"h-[220px]"}),C&&!A&&(0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)("dl",{className:"flex flex-col gap-y-8 text-13",children:[(0,u.jsx)(k,{label:"دفعات استفاده",value:(0,v.N)(C.uses)}),(0,u.jsx)(k,{label:"کاربران یکتا",value:(0,v.N)(C.distinctUsers)}),(0,u.jsx)(k,{label:"مصرف قطعی",value:(0,v.N)(C.consumed)}),(0,u.jsx)(k,{label:"در انتظار پرداخت",value:(0,v.N)(C.reserved)}),(0,u.jsx)(k,{label:"آزادشده (لغو یا انقضا)",value:(0,v.N)(C.released)}),(0,u.jsx)(k,{label:"ظرفیت باقی‌مانده",value:null===C.remainingUses?"نامحدود":(0,v.N)(C.remainingUses)}),(0,u.jsx)(k,{label:"نرخ رسیدن به رزرو قطعی",value:"".concat((0,v.N)(C.completionRate),"٪")})]}),(0,u.jsxs)("div",{className:"mt-14 grid grid-cols-2 gap-8",children:[(0,u.jsxs)("div",{className:"rounded-10 bg-[#FEF2F2] px-12 py-10",children:[(0,u.jsx)("p",{className:"text-11 text-[#9B2C2C] mb-2",children:"سایت پرداخت کرد"}),(0,u.jsx)("p",{className:"text-14 font-m text-[#C62828]",children:(0,v.ND)(C.totalDiscountGiven)}),(0,u.jsxs)("p",{className:"mt-2 text-10 text-gray-9B9BAA",children:["میانگین ",(0,v.ND)(C.averageDiscount)]})]}),(0,u.jsxs)("div",{className:"rounded-10 bg-[#E8F5E9] px-12 py-10",children:[(0,u.jsx)("p",{className:"text-11 text-[#1B5E20] mb-2",children:"ارزش رزروها"}),(0,u.jsx)("p",{className:"text-14 font-m text-[#1B5E20]",children:(0,v.ND)(C.totalBookingValue)}),(0,u.jsxs)("p",{className:"mt-2 text-10 text-gray-9B9BAA",children:["میانگین ",(0,v.ND)(C.averageBookingValue)]})]})]}),C.byCity.length>0&&(0,u.jsxs)("div",{className:"mt-16",children:[(0,u.jsx)("h3",{className:"text-12 font-m text-gray-6C6A7D mb-8",children:"شهرهای استفاده‌شده"}),(0,u.jsx)("dl",{className:"flex flex-col gap-y-6 text-12",children:C.byCity.slice(0,8).map(function(e){return(0,u.jsx)(k,{label:e.name,value:"".concat((0,v.N)(e.uses)," بار \xb7 ").concat((0,v.ND)(e.discount))},e.locationId)})})]}),C.byResidence.length>0&&(0,u.jsxs)("div",{className:"mt-16",children:[(0,u.jsx)("h3",{className:"text-12 font-m text-gray-6C6A7D mb-8",children:"پرفروش‌ترین اقامتگاه‌ها"}),(0,u.jsx)("dl",{className:"flex flex-col gap-y-6 text-12",children:C.byResidence.slice(0,8).map(function(e){return(0,u.jsx)(k,{label:"".concat(e.name," (").concat((0,v.N)(e.publicId),")"),value:"".concat((0,v.N)(e.uses)," بار")},e.residenceId)})})]}),C.byReservationState.length>0&&(0,u.jsxs)("div",{className:"mt-16",children:[(0,u.jsx)("h3",{className:"text-12 font-m text-gray-6C6A7D mb-8",children:"وضعیت رزروها"}),(0,u.jsx)("dl",{className:"flex flex-col gap-y-6 text-12",children:C.byReservationState.map(function(e){return(0,u.jsx)(k,{label:null!==(o=y.ZB[e.state])&&void 0!==o?o:e.state,value:(0,v.N)(e.count)},e.state)})})]}),(0,u.jsxs)("p",{className:"mt-14 text-11 text-gray-9B9BAA",children:["آخرین استفاده: ",C.lastUsedAt?(0,v.IY)(C.lastUsedAt):"—"]})]})]})})}function F(e){var n,t=e.rows,s=(0,l.Z)((0,d.useState)(!1),2),a=s[0],i=s[1],r=a?t:t.slice(0,6);return(0,u.jsx)(v.Zb,{children:(0,u.jsx)(b.$0,{title:"تاریخچه تغییرات",children:0===t.length?(0,u.jsx)("p",{className:"text-13 text-gray-9B9BAA",children:"هنوز تغییری ثبت نشده."}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("ol",{className:"flex flex-col gap-y-12",children:r.map(function(e){return(0,u.jsxs)("li",{className:"border-r-2 border-gray-E5E5E6 pr-10",children:[(0,u.jsx)("p",{className:"text-12 leading-20 text-black",children:e.summary}),(0,u.jsxs)("p",{className:"mt-2 text-11 text-gray-9B9BAA",children:[null!==(n=e.actorName)&&void 0!==n?n:"سیستم"," \xb7 ",(0,v.IY)(e.createdAt)]})]},e.id)})}),t.length>6&&(0,u.jsx)(v.zx,{variant:"ghost",type:"button",className:"mt-10",onClick:function(){return i(function(e){return!e})}
1,children:a?"کمتر":"نمایش همه (".concat((0,v.N)(t.length),")")})]})})})}}},function(e){e.O(0,[4885,9791,8289,9759,5107,9774,2888,179],function(){return e(e.s=17838)}),_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.