Files
machartaa_admin_dist/dist/assets/index-874b6b77.js
T
2026-01-04 20:11:38 +03:30

2 lines
29 KiB
JavaScript

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