Files
machartaa_admin_dist/dist/assets/index-a1021179.js
T
2026-06-21 18:11:33 +03:30

2 lines
30 KiB
JavaScript

import{af as De,ag as Me,I as Q,d as Fe,g as I,E as de,v as Ee,_ as me,L as fe,o as F,c as W,b as D,w as q,a as i,e as ie,G as ve,j as A,t as ee,i as je,k as X,y as he,D as z,H as _e}from"./index-f631c110.js";import{_ as We}from"./BasicMainCard-cf2d8f92.js";import{_ as Ze}from"./BasicModal.vue_vue_type_style_index_0_lang-c66396f6.js";import{_ as Je}from"./BasicInput.vue_vue_type_style_index_0_lang-d6c0091d.js";import{u as pe,_ as Ge,l as Xe}from"./useBaseTable-9e299021.js";import{_ as Ke}from"./button.vue_vue_type_style_index_0_lang-3ed7a72f.js";import{d as Z}from"./fa_IR-0562c7ac.js";import{I as K}from"./Icon-5c7639a7.js";import{_ as ge}from"./BasicSelect.vue_vue_type_style_index_0_lang-53d26144.js";import{t as oe}from"./useDataTime-6dd38ed7.js";import{g as ae}from"./convert-67c23be8.js";import{g as be}from"./index-a868174e.js";import{M as ye}from"./index-db7412b1.js";import{S as ke}from"./index-f17553d9.js";import{D as Qe}from"./dayjs-df82c98e.js";import{T as te}from"./shallowequal-c640e904.js";import{U as we}from"./index-dd5cdd35.js";import"./index-30b0ab58.js";import"./index-e58427e3.js";import"./_plugin-vue_export-helper-57ba18f2.js";import"./Col-147430ab.js";import"./vnode-cc5d0bff.js";import"./useState-753455e7.js";import"./useRefs-ef7dcf5e.js";import"./index-0251545b.js";import"./isPlainObject-69fc442c.js";import"./usePrice-bc935b83.js";import"./index-2a48464f.js";import"./FormItemContext-36a6ff93.js";import"./lodash-592aa0fc.js";import"./index-8961debc.js";import"./pickAttrs-3ce44213.js";import"./toArray-17a639be.js";import"./index-87d0a607.js";var Se={exports:{}};(function(r,o){(function(y,x){r.exports=x()})(Me,function(){var y="minute",x=/[+-]\d\d(?::?\d\d)?/g,U=/([+-]|\d\d)/g;return function(V,k,u){var m=k.prototype;u.utc=function(e){var t={date:e,utc:!0,args:arguments};return new k(t)},m.utc=function(e){var t=u(this.toDate(),{locale:this.$L,utc:!0});return e?t.add(this.utcOffset(),y):t},m.local=function(){return u(this.toDate(),{locale:this.$L,utc:!1})};var c=m.parse;m.parse=function(e){e.utc&&(this.$u=!0),this.$utils().u(e.$offset)||(this.$offset=e.$offset),c.call(this,e)};var L=m.init;m.init=function(){if(this.$u){var e=this.$d;this.$y=e.getUTCFullYear(),this.$M=e.getUTCMonth(),this.$D=e.getUTCDate(),this.$W=e.getUTCDay(),this.$H=e.getUTCHours(),this.$m=e.getUTCMinutes(),this.$s=e.getUTCSeconds(),this.$ms=e.getUTCMilliseconds()}else L.call(this)};var h=m.utcOffset;m.utcOffset=function(e,t){var S=this.$utils().u;if(S(e))return this.$u?0:S(this.$offset)?h.call(this):this.$offset;if(typeof e=="string"&&(e=function(B){B===void 0&&(B="");var E=B.match(x);if(!E)return null;var P=(""+E[0]).match(U)||["-",0,0],g=P[0],R=60*+P[1]+ +P[2];return R===0?0:g==="+"?R:-R}(e),e===null))return this;var d=Math.abs(e)<=16?60*e:e,v=this;if(t)return v.$offset=d,v.$u=e===0,v;if(e!==0){var O=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(v=this.local().add(d+O,y)).$offset=d,v.$x.$localOffset=O}else v=this.utc();return v};var f=m.format;m.format=function(e){var t=e||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return f.call(this,t)},m.valueOf=function(){var e=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*e},m.isUTC=function(){return!!this.$u},m.toISOString=function(){return this.toDate().toISOString()},m.toString=function(){return this.toDate().toUTCString()};var M=m.toDate;m.toDate=function(e){return e==="s"&&this.$offset?u(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():M.call(this)};var T=m.diff;m.diff=function(e,t,S){if(e&&this.$u===e.$u)return T.call(this,e,t,S);var d=this.local(),v=u(e).local();return T.call(d,v,t,S)}}})})(Se);var et=Se.exports;const tt=De(et);var Te={exports:{}};(function(r,o){(function(y,x){r.exports=x()})(Me,function(){var y={year:0,month:1,day:2,hour:3,minute:4,second:5},x={};return function(U,V,k){var u,m=function(f,M,T){T===void 0&&(T={});var e=new Date(f),t=function(S,d){d===void 0&&(d={});var v=d.timeZoneName||"short",O=S+"|"+v,B=x[O];return B||(B=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:S,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:v}),x[O]=B),B}(M,T);return t.formatToParts(e)},c=function(f,M){for(var T=m(f,M),e=[],t=0;t<T.length;t+=1){var S=T[t],d=S.type,v=S.value,O=y[d];O>=0&&(e[O]=parseInt(v,10))}var B=e[3],E=B===24?0:B,P=e[0]+"-"+e[1]+"-"+e[2]+" "+E+":"+e[4]+":"+e[5]+":000",g=+f;return(k.utc(P).valueOf()-(g-=g%1e3))/6e4},L=V.prototype;L.tz=function(f,M){f===void 0&&(f=u);var T=this.utcOffset(),e=this.toDate(),t=e.toLocaleString("en-US",{timeZone:f}),S=Math.round((e-new Date(t))/1e3/60),d=k(t).$set("millisecond",this.$ms).utcOffset(15*-Math.round(e.getTimezoneOffset()/15)-S,!0);if(M){var v=d.utcOffset();d=d.add(T-v,"minute")}return d.$x.$timezone=f,d},L.offsetName=function(f){var M=this.$x.$timezone||k.tz.guess(),T=m(this.valueOf(),M,{timeZoneName:f}).find(function(e){return e.type.toLowerCase()==="timezonename"});return T&&T.value};var h=L.startOf;L.startOf=function(f,M){if(!this.$x||!this.$x.$timezone)return h.call(this,f,M);var T=k(this.format("YYYY-MM-DD HH:mm:ss:SSS"));return h.call(T,f,M).tz(this.$x.$timezone,!0)},k.tz=function(f,M,T){var e=T&&M,t=T||M||u,S=c(+k(),t);if(typeof f!="string")return k(f).tz(t);var d=function(E,P,g){var R=E-60*P*1e3,C=c(R,g);if(P===C)return[R,P];var J=c(R-=60*(C-P)*1e3,g);return C===J?[R,C]:[E-60*Math.min(C,J)*1e3,Math.max(C,J)]}(k.utc(f,e).valueOf(),S,t),v=d[0],O=d[1],B=k(v).utcOffset(O);return B.$x.$timezone=t,B},k.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},k.tz.setDefault=function(f){u=f}}})})(Te);var st=Te.exports;const at=De(st),it=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:r=>r.record.index+1},{title:"عنوان",dataIndex:"title",key:"title"},{title:"زیرعنوان",dataIndex:"sub_title",key:"sub_title"},{title:"کتاب مرتبط",dataIndex:"book_id",key:"book_id",align:"center",customRender:r=>{const o=r.record.book_title,y=r.record.book_id;return o||(y?`کتاب #${y}`:"-")}},{title:"زمان",dataIndex:"time",key:"time",customRender:r=>{const o=r.record.time||{minutes:0,seconds:0},y=Number(o.minutes||0),x=Number(o.seconds||0),U=V=>String(V).padStart(2,"0");return`${U(y)}:${U(x)}`}},{title:"صوت",dataIndex:"src",key:"src",customRender:r=>r.record.src?"دارد":"-"},{title:"زمان ایجاد",dataIndex:"created_at",key:"created_at",customRender:r=>oe(r.record.created_at)},{title:"زمان انتشار",dataIndex:"time_show",key:"time_show",align:"center",width:180,customRender:r=>{const o=r.record.time_show;return o?oe(o,"jYYYY/jMM/jDD HH:mm:ss"):"-"}},{title:"وضعیت نمایش",dataIndex:"show",key:"show",align:"center",width:120,customRender:r=>r.record.show===!1?"مخفی":"نمایش"},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}],ot=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:r=>r.record.index+1},{title:"نام کاربر",dataIndex:"user_name",key:"user_name",filterable:!0,filterField:"user_name"},{title:"شماره همراه",dataIndex:"user_phone",key:"user_phone",filterable:!0,filterField:"user_phone"},{title:"تاریخ بازدید",dataIndex:"viewed_at",key:"viewed_at",filterable:!0,filterField:"viewed_at",customRender:r=>oe(r.record.viewed_at)}];async function lt(r){const{data:o,error:y}=await Q.from("storys").insert([{title:r.title,sub_title:r.sub_title,cover:r.cover,src:r.src,time:r.time,book_id:r.book_id||null,time_show:r.time_show||null}]).select();if(y)throw y;return o}async function xe(r,o){const{data:y,error:x}=await Q.from("storys").update({title:o.title,sub_title:o.sub_title,cover:o.cover,src:o.src,time:o.time,book_id:o.book_id||null,time_show:o.time_show||null}).eq("id",r).select();if(x)throw x;return y}async function nt(r,o){const{data:y,error:x}=await Q.from("storys").update({show:o}).eq("id",r).select();if(x)throw x;return y}async function rt(r){const{error:o}=await Q.from("storys").delete().eq("id",r);if(o)throw o}async function ut(r){try{const{limit:o,filters:y,page:x,sort:U,order:V,search:k}=r;let u=Q.from("storys").select("*, books!book_id(id, title, sub_title, cover)",{count:"exact"});if(k&&k.trim()){const e=`%${k.trim()}%`;u=u.or(`title.ilike.${e},sub_title.ilike.${e}`)}if(y&&Array.isArray(y)&&y.forEach(e=>{const{field:t,op:S,value:d,hidden:v}=e;if(!v)switch(S){case"eq":u=u.eq(t,d);break;case"neq":u=u.neq(t,d);break;case"gt":u=u.gt(t,d);break;case"lt":u=u.lt(t,d);break;case"gte":u=u.gte(t,d);break;case"lte":u=u.lte(t,d);break;case"has":u=u.ilike(t,`%${d}%`);break;case"like":u=u.like(t,`%${d}%`);break}}),U&&U.key){const e=U.order==="asc";u=u.order(U.key,{ascending:e})}else if(V){const e=!V.startsWith("-"),t=V.replace(/^[-+]/,"");u=u.order(t,{ascending:e})}else u=u.order("id",{ascending:!1});if(o&&x){const e=(x-1)*o,t=e+o-1;u=u.range(e,t)}const{data:m,error:c,count:L}=await u;if(c)return console.error("[getStorysTable] Supabase query error:",c),{query:{...r,limit:o||10,page:x||1,total:0},rows:[]};if(!m||m.length===0)return{query:{...r,limit:o||10,page:x||1,total:0},rows:[]};const h=x||1,f=o||20,M=(h-1)*f,T=m.map((e,t)=>{const d=(Array.isArray(e.books)?e.books[0]:e.books)||{};return{...e,id:e.id,title:e.title??"",sub_title:e.sub_title??"",cover:e.cover??null,src:e.src??null,time:e.time??{minutes:0,seconds:0},book_id:e.book_id??null,book_title:d.title||null,book_sub_title:d.sub_title||null,book_cover:d.cover||null,created_at:e.created_at??"",time_show:e.time_show??null,show:e.show!==void 0?e.show:!0,index:M+t}});return{query:{...r,limit:f,page:h,total:L||0},rows:T}}catch(o){throw console.error("[getStorysTable] Error:",o),o}}async function ct(r){try{const{data:o,error:y}=await Q.from("user_views").select("*, users!user_id(id, first_name, last_name, phone, name, email, username)").eq("item_id",r).order("viewed_at",{ascending:!1});if(y)throw console.error("[getStoryViews] Error fetching views:",y),y;const x=(o==null?void 0:o.length)||0,V=new Set((o==null?void 0:o.map(m=>m.user_id).filter(Boolean))||[]).size,k=new Map;(o||[]).forEach(m=>{const c=m.user_id;if(c&&!k.has(c)){const h=(Array.isArray(m.users)?m.users[0]:m.users)||{};let f="نامشخص";h&&Object.keys(h).length>0&&(h.name?f=h.name:h.first_name||h.last_name?f=`${h.first_name||""} ${h.last_name||""}`.trim():h.phone?f=h.phone:h.email?f=h.email:h.username&&(f=h.username)),k.set(c,{id:m.id,user_id:m.user_id,user_name:f,user_phone:(h==null?void 0:h.phone)||"",user_email:(h==null?void 0:h.email)||"",viewed_at:m.viewed_at||""})}});const u=Array.from(k.values());return{total_views:x,unique_viewers:V,viewers:u}}catch(o){throw console.error("[getStoryViews] Error:",o),o}}async function $e(r,o){const{limit:y=20,page:x=1,search:U,filters:V,sort:k,order:u}=r,m=["id","user_id","item_id","viewed_at"];let c=Q.from("user_views").select("*, users!user_id(id, first_name, last_name, phone, name, email, username)",{count:"exact"}).eq("item_id",o);if(U!=null&&U.trim()){const t=`%${U.trim()}%`;c=c.or(`users.name.ilike.${t},users.phone.ilike.${t},users.first_name.ilike.${t},users.last_name.ilike.${t},users.email.ilike.${t}`)}if(V!=null&&V.length&&V.forEach(t=>{if(!(!t.field||t.hidden)){if(t.field==="user_name"||t.field==="user_phone"){const S=`%${t.value}%`;if(["eq","has","like"].includes(t.op)){const d=t.field==="user_phone"?"users.phone":"users.name";c=c.ilike(d,S)}return}if(m.includes(t.field))switch(t.op){case"eq":c=c.eq(t.field,t.value);break;case"neq":c=c.neq(t.field,t.value);break;case"gt":c=c.gt(t.field,t.value);break;case"lt":c=c.lt(t.field,t.value);break;case"gte":c=c.gte(t.field,t.value);break;case"lte":c=c.lte(t.field,t.value);break;case"has":case"like":c=c.ilike(t.field,`%${t.value}%`);break}}}),k!=null&&k.key&&m.includes(k.key))c=c.order(k.key,{ascending:k.order==="asc"});else if(u){const t=u.replace(/^[-+]/,"");m.includes(t)&&(c=c.order(t,{ascending:!u.startsWith("-")}))}else c=c.order("viewed_at",{ascending:!1});const L=(x-1)*y;c=c.range(L,L+y-1);const{data:h,error:f,count:M}=await c;if(f)return console.error("[getStoryViewersTable] Supabase query error:",f),{query:{...r,limit:y,page:x,total:0},rows:[]};const T=(x-1)*y,e=(h||[]).map((t,S)=>{const v=(Array.isArray(t.users)?t.users[0]:t.users)||{};let O="نامشخص";return v.name?O=v.name:v.first_name||v.last_name?O=`${v.first_name||""} ${v.last_name||""}`.trim():v.phone?O=v.phone:v.email?O=v.email:v.username&&(O=v.username),{...t,id:t.id,user_id:t.user_id,user_name:O,user_phone:(v==null?void 0:v.phone)||"",user_email:(v==null?void 0:v.email)||"",viewed_at:t.viewed_at??"",index:T+S}});return{query:{...r,limit:y,page:x,total:M??0},rows:e}}const dt={class:"flex justify-between items-center mb-4"},mt=i("h2",null,"قصه ها",-1),ft={class:"gap-2 flex justify-center"},vt=i("span",null,"بازدیدها",-1),ht=i("span",null,"حذف",-1),_t=i("span",null,"ویرایش",-1),pt=i("span",null,"مرتبط کردن کتاب",-1),gt={class:"space-y-4 relative"},bt={key:0,class:"absolute inset-0 bg-white/60 z-10 flex items-center justify-center"},yt=i("div",{class:"mb-1 text-sm text-gray-600"},"عنوان",-1),kt=i("div",{class:"mb-1 text-sm text-gray-600"},"زیرعنوان",-1),wt=i("div",{class:"mb-1 text-sm text-gray-600"},"کتاب مرتبط",-1),xt=i("div",{class:"mb-1 text-sm text-gray-600"},[ie(" زمان انتشار "),i("span",{class:"text-xs text-gray-500"},"(در صورت خالی گذاشتن این فیلد زمان حال ثبت می شود)")],-1),$t={class:"flex gap-4"},Dt={class:"flex-1 flex justify-center gap-4"},Mt=i("div",{class:"mb-1 text-sm text-gray-600"},"آپلود تصویر کاور",-1),St={key:0},Tt=i("div",null,"آپلود کاور",-1),Ct={key:0,class:"mt-1"},Ut={class:"h-2 rounded bg-gray-200 overflow-hidden"},Ot={class:"text-xs text-gray-700 font-semibold text-center mt-1"},It=i("div",{class:"mb-1 text-sm text-gray-600"},"آپلود صوت (src)",-1),Yt={key:0},qt=i("div",null,"آپلود صوت",-1),Lt={key:0,class:"text-xs text-gray-500 mt-1 text-center"},zt={class:"h-2 rounded bg-gray-200 overflow-hidden"},Nt={class:"text-xs text-gray-700 font-semibold text-center mt-1"},Vt={class:"flex-1"},Ht=i("div",{class:"mb-1 text-sm text-gray-600"},[ie("زمان "),i("span",{class:"text-xs text-gray-500"},"(بعد از آپلود صوت قصه زمان آن به صورت خودکار وارد می شود)")],-1),Bt={class:"space-y-2"},Rt=i("div",{class:"mb-1 text-xs text-gray-500"},"دقیقه",-1),Pt=i("div",{class:"mb-1 text-xs text-gray-500"},"ثانیه",-1),At={class:"space-y-4"},Ft=i("div",{class:"mb-1 text-sm text-gray-600"},"کتاب مرتبط",-1),Et={class:"flex justify-end"},jt={key:0,class:"space-y-4"},Wt={class:"grid grid-cols-2 gap-4"},Zt={class:"bg-blue-50 p-4 rounded-lg"},Jt=i("div",{class:"text-sm text-gray-600 mb-1"},"تعداد بازدید",-1),Gt={class:"text-2xl font-bold text-blue-600"},Xt={class:"bg-purple-50 p-4 rounded-lg"},Kt=i("div",{class:"text-sm text-gray-600 mb-1"},"تعداد بازدیدکننده",-1),Qt={class:"text-2xl font-bold text-purple-600"},es=i("div",{class:"text-sm font-semibold text-gray-700 mb-2"},"لیست بازدیدکننده‌ها",-1),ts={key:0},ss={key:1,class:"text-center py-8 text-gray-500"},as={key:1,class:"flex justify-center items-center py-8"},Vs=Fe({__name:"index",setup(r){Z.extend(tt),Z.extend(at);const o=Qe,y={authorization:`Bearer ${be()||localStorage.getItem("tamin_token")||""}`},[x,U]=pe(),V=I({columns:it,api:ut,defaultPageLimit:20}),k=I(!1),u=I(!1),m=I(null),c=I([]),L=I([]),h=I(0),f=I(0),M=I(0),T=I([]),e=I(!1),t=I(null),S=I(!1),d=I(null),v=I(!1),O=I(null),[B,E]=pe(),P=I({columns:ot,api:s=>$e(s,O.value),defaultPageLimit:20}),g=I({title:"",sub_title:"",cover:null,src:null,time:{minutes:0,seconds:0},book_id:null,time_show:null}),R=I({book_id:null}),C=I(null),J=I(!1);let se=!1;de(()=>g.value.time_show,s=>{if(se){se=!1;return}if(s)try{const a=Z(s);(!C.value||!a.isSame(C.value))&&(C.value=a)}catch{C.value=null}else C.value&&(C.value=null)},{immediate:!0});function Ce(s,a){s?C.value=s:C.value=null}function Ue(s){if(s){se=!0;const l=s.calendar("gregory").locale("en").subtract(3,"hour").subtract(30,"minute").format("YYYY-MM-DD HH:mm:ss");g.value.time_show=l,C.value=s}else se=!0,g.value.time_show=null,C.value=null;J.value=!1}function Oe(){c.value=[],L.value=[],u.value=!1,m.value=null,g.value={title:"",sub_title:"",cover:null,src:null,time:{minutes:0,seconds:0},book_id:null,time_show:null},C.value=null,k.value=!0}function le(){k.value=!1}function Ie(s){return s.type.startsWith("audio/")?s.size/1024/1024<61?!0:(z.error("حجم فایل باید کمتر از 60MB باشد"),!1):(z.error("فقط فایل‌های صوتی مجاز است"),!1)}function Ye(s){const a=new Audio,_=URL.createObjectURL(s);a.addEventListener("loadedmetadata",()=>{const l=a.duration;if(l&&!isNaN(l)&&isFinite(l)){const $=Math.floor(l/60),H=Math.floor(l%60);g.value.time.minutes=$,g.value.time.seconds=H,z.info(`مدت زمان فایل صوتی: ${$} دقیقه و ${H} ثانیه`)}URL.revokeObjectURL(_)}),a.addEventListener("error",()=>{URL.revokeObjectURL(_),console.warn("Could not determine audio duration from file")}),a.src=_}async function qe(s){const{file:a,onSuccess:_,onError:l,onProgress:$}=s;Ye(a);const H=new FormData;H.append("file",a);const j=`${_e}/upload/machartaa-audio`;f.value=0,h.value++,await new Promise((n,Y)=>{const p=new XMLHttpRequest;p.open("POST",j),p.setRequestHeader("Authorization",`Bearer ${localStorage.getItem("tamin_token")||""}`),p.timeout=15*60*1e3,p.upload.onprogress=w=>{if(w.lengthComputable){const b=Math.round(w.loaded/w.total*100);f.value=b,$==null||$({percent:b})}},p.onload=()=>{if(f.value=100,p.status>=200&&p.status<300)try{const w=JSON.parse(p.responseText||"{}"),b=w.full_src||w.url||w.src||w.path||w.data&&(w.data.full_src||w.data.url||w.data.src||w.data.path)||"";let N=b;b!=null&&b.startsWith("http")&&(N=b.replace(/^https?:\/\/[^\/]+/,""));const G=ae(N);g.value.src=N,c.value=G?[{uid:`${Date.now()}`,name:"audio.mp3",status:"done",url:G,response:{path:N}}]:[],_==null||_(w,p),z.success("صوت با موفقیت آپلود شد!"),n()}catch(w){l==null||l(w,p),Y(w)}else if(p.status===413){const w=new Error("حجم فایل خیلی بزرگ است. لطفاً فایل کوچکتری انتخاب کنید.");z.error("حجم فایل خیلی بزرگ است. لطفاً فایل کوچکتری انتخاب کنید."),l==null||l(w,p),Y(w)}else{let w="خطا در آپلود فایل";try{const N=JSON.parse(p.responseText||"{}");N.message?w=N.message:N.error&&(w=N.error)}catch{}const b=new Error(w);z.error(w),l==null||l(b,p),Y(b)}},p.onerror=()=>{const w=new Error("خطا در آپلود صوت");l==null||l(w,p),Y(w)},p.ontimeout=()=>{const w=new Error("آپلود timeout شد - فایل خیلی بزرگ است");l==null||l(w,p),Y(w)},p.onloadend=()=>{h.value=Math.max(0,h.value-1),f.value=0},p.send(H)})}function ne(s){return{width:`${Math.max(0,Math.min(100,s))}%`}}function Le(s){return s.type.startsWith("image/")?s.size/1024/1024<5?!0:(z.error("حجم تصویر باید کمتر از 5MB باشد"),!1):(z.error("فقط فایل‌های تصویری مجاز است"),!1)}async function ze(s){const{file:a,onSuccess:_,onError:l,onProgress:$}=s,H=new FormData;H.append("file",a);const j=`${_e}/upload/machartaa-img`;M.value=0,h.value++,await new Promise((n,Y)=>{const p=new XMLHttpRequest;p.open("POST",j);const w=be()||localStorage.getItem("tamin_token")||"";p.setRequestHeader("Authorization",`Bearer ${w}`),p.upload.onprogress=b=>{if(b.lengthComputable){const N=Math.round(b.loaded/b.total*100);M.value=N,$==null||$({percent:N})}},p.onload=()=>{if(M.value=100,p.status>=200&&p.status<300)try{const b=JSON.parse(p.responseText||"{}"),N=b.full_src||b.url||b.src||b.path||b.data&&(b.data.full_src||b.data.url||b.data.src||b.data.path)||"";let G=N;N!=null&&N.startsWith("http")&&(G=N.replace(/^https?:\/\/[^\/]+/,""));const ce=ae(G);g.value.cover=G,L.value=ce?[{uid:`${Date.now()}`,name:"cover.jpg",status:"done",url:ce,response:{path:G}}]:[],_==null||_(b,p),z.success("کاور با موفقیت آپلود شد!"),n()}catch(b){l==null||l(b,p),Y(b)}else{const b=new Error("خطا در آپلود تصویر");l==null||l(b,p),Y(b)}},p.onerror=()=>{const b=new Error("خطا در آپلود کاور");l==null||l(b,p),Y(b)},p.onloadend=()=>{h.value=Math.max(0,h.value-1),M.value=0},p.send(H)})}async function Ne(){var _,l,$,H,j,n;if(!((_=g.value.title)!=null&&_.trim()))return;if(h.value>0){z.warning("لطفاً تا پایان آپلود صبر کنید");return}let s=g.value.time_show;if(!s||s.trim()==="")s=Z().calendar("gregory").locale("en").subtract(3,"hour").subtract(30,"minute").format("YYYY-MM-DD HH:mm:ss");else try{Z(s).isValid()||(s=Z(s).locale("fa").calendar("gregory").locale("en").subtract(3,"hour").subtract(30,"minute").format("YYYY-MM-DD HH:mm:ss"))}catch{s=Z().calendar("gregory").locale("en").subtract(3,"hour").subtract(30,"minute").format("YYYY-MM-DD HH:mm:ss")}const a={title:g.value.title.trim(),sub_title:((l=g.value.sub_title)==null?void 0:l.trim())||"",cover:(($=g.value.cover)==null?void 0:$.trim())||null,src:((H=g.value.src)==null?void 0:H.trim())||null,time:{minutes:Number((j=g.value.time)==null?void 0:j.minutes)||0,seconds:Number((n=g.value.time)==null?void 0:n.seconds)||0},book_id:g.value.book_id||null,time_show:s};try{u.value&&m.value?(await xe(m.value,a),z.success("قصه با موفقیت ویرایش شد")):(await lt(a),z.success("قصه با موفقیت افزوده شد")),le(),await U()}catch(Y){console.error("Error saving story:",Y),z.error("خطا در ذخیره قصه: "+(Y.message||"خطای ناشناخته"))}}function Ve(s){u.value=!0,m.value=s.id;let a=s.cover||null;a&&a.startsWith("http")&&(a=a.replace(/^https?:\/\/[^\/]+/,""));let _=s.src||null;_&&_.startsWith("http")&&(_=_.replace(/^https?:\/\/[^\/]+/,"")),g.value={title:s.title||"",sub_title:s.sub_title||"",cover:a,src:_,time:s.time&&typeof s.time=="object"?{minutes:Number(s.time.minutes)||0,seconds:Number(s.time.seconds)||0}:{minutes:0,seconds:0},book_id:s.book_id||null,time_show:s.time_show||null},s.time_show?C.value=Z(s.time_show):C.value=null;const l=_?ae(_):null,$=a?ae(a):null;c.value=l?[{uid:"-1",name:"audio.mp3",status:"done",url:l,response:{path:_}}]:[],L.value=$?[{uid:"-2",name:"cover.jpg",status:"done",url:$,response:{path:a}}]:[],k.value=!0}function He(s){t.value=s.id,R.value={book_id:s.book_id||null},e.value=!0}function re(){e.value=!1,t.value=null,R.value={book_id:null}}async function Be(){if(t.value)try{const{supabase:s}=await me(()=>import("./index-f631c110.js").then(j=>j.bO),["assets/index-f631c110.js","assets/index-457f5e42.css"]),{data:a,error:_}=await s.from("storys").select("*").eq("id",t.value).single();if(_||!a){z.error("قصه یافت نشد");return}let l=a.cover||null;l&&l.startsWith("http")&&(l=l.replace(/^https?:\/\/[^\/]+/,""));let $=a.src||null;$&&$.startsWith("http")&&($=$.replace(/^https?:\/\/[^\/]+/,""));const H={title:a.title||"",sub_title:a.sub_title||"",cover:l,src:$,time:a.time&&typeof a.time=="object"?{minutes:Number(a.time.minutes)||0,seconds:Number(a.time.seconds)||0}:{minutes:0,seconds:0},book_id:R.value.book_id||null};await xe(t.value,H),z.success("کتاب با موفقیت مرتبط شد"),re(),await U()}catch(s){console.error("Error linking book:",s),z.error("خطا در مرتبط کردن کتاب: "+(s.message||"خطای ناشناخته"))}}Ee(async()=>{try{const{getBooks:s}=await me(()=>import("./books-9de1a6e4.js"),["assets/books-9de1a6e4.js","assets/index-f631c110.js","assets/index-457f5e42.css"]),a=await s();T.value=a||[]}catch(s){console.error("Error loading books:",s)}});async function Re(s){const _=(s==null?void 0:s.show)===!1,l=!!_;ye.confirm({title:_?"نمایش دادن قصه":"مخفی کردن قصه",content:_?`آیا مطمئن هستید که می‌خواهید قصه "${s.title}" را نمایش دهید؟`:`آیا مطمئن هستید که می‌خواهید قصه "${s.title}" را مخفی کنید؟`,okText:_?"بله، نمایش بده":"بله، مخفی کن",cancelText:"انصراف",okType:"default",centered:!0,onOk:async()=>{try{await nt(s.id,l),z.success(_?"قصه با موفقیت نمایش داده شد":"قصه با موفقیت مخفی شد"),await U()}catch($){console.error("Error toggling show:",$),z.error("خطا در تغییر وضعیت قصه: "+($.message||"خطای ناشناخته"))}}})}function Pe(s){ye.confirm({title:"حذف قصه",content:`آیا مطمئن هستید که می‌خواهید قصه "${s.title}" را حذف کنید؟`,okText:"بله، حذف کن",cancelText:"انصراف",okType:"danger",centered:!0,onOk:async()=>{await rt(s.id),await U()}})}async function Ae(s){O.value=s.id,S.value=!0,v.value=!0,d.value=null;try{const a=await ct(s.id);d.value=a,P.value.api=_=>$e(_,s.id)}catch(a){console.error("Error loading views:",a),z.error("خطا در بارگذاری اطلاعات بازدیدها: "+(a.message||"خطای ناشناخته"))}finally{v.value=!1}}de([S,d],async([s,a])=>{if(s&&a&&a.total_views>0){await fe(),await fe();try{await E()}catch{setTimeout(async()=>{try{await E()}catch(l){console.warn("Could not reload viewers table:",l)}},200)}}},{immediate:!1});function ue(){S.value=!1,d.value=null,O.value=null}return(s,a)=>{const _=Ke,l=Ge,$=Je,H=Ze,j=We;return F(),W("div",null,[D(j,null,{default:q(()=>[i("div",dt,[mt,D(_,{type:"primary",onClick:Oe},{default:q(()=>[ie("افزودن قصه")]),_:1})]),D(l,ve(V.value,{ref:"table",onRegister:A(x)}),{action:q(({record:n})=>[i("div",ft,[D(A(te),{class:"cursor-pointer"},{title:q(()=>[vt]),default:q(()=>[D(K,{icon:"vuesax-linear:monitor",color:"#8B5CF6",onClick:Y=>Ae(n)},null,8,["onClick"])]),_:2},1024),D(A(te),{class:"cursor-pointer"},{title:q(()=>[i("span",null,ee((n==null?void 0:n.show)===!1?"نمایش دادن":"مخفی کردن"),1)]),default:q(()=>[D(K,{icon:(n==null?void 0:n.show)===!1?"vuesax-linear:eye":"vuesax-linear:eye-slash",color:(n==null?void 0:n.show)===!1?"#10B981":"#F59E0B",onClick:Y=>Re(n)},null,8,["icon","color","onClick"])]),_:2},1024),D(A(te),{class:"cursor-pointer"},{title:q(()=>[ht]),default:q(()=>[D(K,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:Y=>Pe(n)},null,8,["onClick"])]),_:2},1024),D(A(te),{class:"cursor-pointer"},{title:q(()=>[_t]),default:q(()=>[D(K,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:Y=>Ve(n)},null,8,["onClick"])]),_:2},1024),n!=null&&n.book_id?X("",!0):(F(),je(A(te),{key:0,class:"cursor-pointer"},{title:q(()=>[pt]),default:q(()=>[D(K,{icon:"vuesax-linear:book",color:"#217346",onClick:Y=>He(n)},null,8,["onClick"])]),_:2},1024))])]),_:1},16,["onRegister"]),D(H,{visible:k.value,"onUpdate:visible":a[9]||(a[9]=n=>k.value=n),title:u.value?"ویرایش قصه":"افزودن قصه",onOk:Ne,onCancel:le,width:"80%",confirmLoading:h.value>0},{default:q(()=>[i("div",gt,[h.value>0?(F(),W("div",bt,[D(A(ke),{size:"large"})])):X("",!0),i("div",null,[yt,D($,{value:g.value.title,"onUpdate:value":a[0]||(a[0]=n=>g.value.title=n),placeholder:"عنوان"},null,8,["value"])]),i("div",null,[kt,D($,{value:g.value.sub_title,"onUpdate:value":a[1]||(a[1]=n=>g.value.sub_title=n),placeholder:"زیرعنوان"},null,8,["value"])]),i("div",null,[wt,D(ge,{value:g.value.book_id??void 0,"onUpdate:value":a[2]||(a[2]=n=>g.value.book_id=n??null),items:T.value,keyName:"id",valueName:"title",placeholder:"انتخاب کتاب",allowClear:!0},null,8,["value","items"])]),i("div",null,[xt,D(A(o),{value:C.value,"onUpdate:value":a[3]||(a[3]=n=>C.value=n),open:J.value,"onUpdate:open":a[4]||(a[4]=n=>J.value=n),locale:A(Xe),"show-time":{format:"HH:mm:ss"},format:"YYYY-MM-DD HH:mm:ss",placeholder:"انتخاب تاریخ و زمان انتشار",class:"w-full",onChange:Ce,onOk:Ue},null,8,["value","open","locale"])]),i("div",$t,[i("div",Dt,[i("div",null,[Mt,D(A(we),{"file-list":L.value,"onUpdate:fileList":a[5]||(a[5]=n=>L.value=n),"before-upload":Le,"custom-request":ze,headers:y,accept:"image/*","max-count":1,"list-type":"picture-card"},{default:q(()=>[L.value.length<1?(F(),W("div",St,[D(K,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),Tt])):X("",!0)]),_:1},8,["file-list"]),M.value>0&&M.value<100?(F(),W("div",Ct,[i("div",Ut,[i("div",{class:"h-2 bg-blue-500 transition-all",style:he(ne(M.value))},null,4)]),i("div",Ot,ee(M.value)+"%",1)])):X("",!0)]),i("div",null,[It,D(A(we),{"file-list":c.value,"onUpdate:fileList":a[6]||(a[6]=n=>c.value=n),"before-upload":Ie,"custom-request":qe,headers:y,accept:"audio/*","max-count":1,"list-type":"picture-card"},{default:q(()=>[c.value.length<1?(F(),W("div",Yt,[D(K,{icon:"vuesax-linear:music",class:"text-2xl mb-2"}),qt])):X("",!0)]),_:1},8,["file-list"]),f.value>0&&f.value<100?(F(),W("div",Lt,[i("div",zt,[i("div",{class:"h-2 bg-blue-500 transition-all",style:he(ne(f.value))},null,4)]),i("div",Nt,ee(f.value)+"%",1)])):X("",!0)])]),i("div",Vt,[Ht,i("div",Bt,[i("div",null,[Rt,D($,{value:g.value.time.minutes,"onUpdate:value":a[7]||(a[7]=n=>g.value.time.minutes=n),type:"number",placeholder:"0",disabled:!0},null,8,["value"])]),i("div",null,[Pt,D($,{value:g.value.time.seconds,"onUpdate:value":a[8]||(a[8]=n=>g.value.time.seconds=n),type:"number",placeholder:"0",disabled:!0},null,8,["value"])])])])])])]),_:1},8,["visible","title","confirmLoading"]),D(H,{visible:e.value,"onUpdate:visible":a[11]||(a[11]=n=>e.value=n),title:"مرتبط کردن کتاب",onOk:Be,onCancel:re,width:"500px"},{default:q(()=>[i("div",At,[i("div",null,[Ft,D(ge,{value:R.value.book_id??void 0,"onUpdate:value":a[10]||(a[10]=n=>R.value.book_id=n??null),items:T.value,keyName:"id",valueName:"title",placeholder:"انتخاب کتاب",allowClear:!0},null,8,["value","items"])])])]),_:1},8,["visible"]),D(H,{visible:S.value,"onUpdate:visible":a[12]||(a[12]=n=>S.value=n),title:"اطلاعات بازدیدها",onCancel:ue,width:"800px",customFooter:!0,okText:""},{footer:q(()=>[i("div",Et,[D(_,{onClick:ue},{default:q(()=>[ie("بستن")]),_:1})])]),default:q(()=>[d.value?(F(),W("div",jt,[i("div",Wt,[i("div",Zt,[Jt,i("div",Gt,ee(d.value.total_views),1)]),i("div",Xt,[Kt,i("div",Qt,ee(d.value.unique_viewers),1)])]),i("div",null,[es,d.value&&d.value.total_views>0?(F(),W("div",ts,[D(l,ve(P.value,{onRegister:A(B)}),null,16,["onRegister"])])):(F(),W("div",ss," هنوز بازدیدی ثبت نشده است "))])])):v.value?(F(),W("div",as,[D(A(ke),{size:"large"})])):X("",!0)]),_:1},8,["visible"])]),_:1})])}}});export{Vs as default};