15 lines
44 KiB
JavaScript
15 lines
44 KiB
JavaScript
import{_ as _t}from"./BasicMainCard-9c458ce7.js";import{_ as Fe}from"./BasicModal.vue_vue_type_style_index_0_lang-5bce5515.js";import{_ as dt,a as pt,u as Re}from"./useBaseTable-3b2d0853.js";import{_ as mt}from"./BasicInput.vue_vue_type_style_index_0_lang-cee0843c.js";import{_ as ft}from"./BasicTextArea.vue_vue_type_style_index_0_lang-ec68dcd2.js";import{_ as Ee}from"./button.vue_vue_type_style_index_0_lang-95946c23.js";import{G as D,_ as vt,d as Oe,g as E,h as ht,E as gt,o as k,i as Ne,w,a as e,b as r,e as F,c as S,j as B,t as N,k as L,F as we,n as ke,D as T,p as ze,v as bt,H as Le,y as ye,M as yt,N as xt,bC as wt,I as xe}from"./index-20d5dab1.js";import{f as Me,b as kt,c as qt,d as St,e as $t,t as Ut,M as je,g as At}from"./supabaseTableQuery-95762ff3.js";import{e as H,a as He,g as le}from"./convert-2ad76038.js";import{t as fe}from"./useDataTime-c147e135.js";import{S as We}from"./index-38a2f111.js";import{_ as Ct}from"./index-a59299a1.js";import{I as G}from"./Icon-06d3f751.js";import{a as De}from"./index-4284a867.js";import{M as It}from"./index-4f6342fa.js";import{a as Be}from"./updateLocale-6ea9ed84.js";import{T as pe}from"./isSymbol-f04930e1.js";import{U as me}from"./index-44ec8c49.js";import{_ as Pt}from"./_plugin-vue_export-helper-26f60d29.js";import"./index-857151a7.js";import"./index-0d016563.js";import"./Col-6ec89065.js";import"./styleChecker-6ae1ce26.js";import"./isPlainObject-769b8c03.js";import"./vnode-18b1f518.js";import"./useState-3cc4a0be.js";import"./FormItemContext-28b30746.js";import"./lodash-28ee46da.js";import"./index-f6eb678e.js";import"./css-0bca533a.js";import"./DialogWrap-a4cda90f.js";import"./pickAttrs-93039156.js";import"./index-f75dc027.js";import"./toArray-fb96c8b9.js";import"./usePrice-bc935b83.js";import"./useRefs-03151dab.js";import"./_flatRest-12208321.js";import"./index-84af5005.js";function Rt(n){if(Array.isArray(n))return n.map(String).filter(Boolean);if(typeof n=="string")try{const l=JSON.parse(n);if(Array.isArray(l))return l.map(String).filter(Boolean)}catch{return n.trim()?[n]:[]}return[]}function Lt(n){return{...n,duration_minutes:Math.round((Number(n.duration_seconds)||60)/60),kodoblu_voice_url:H(n.kodoblu_voice_url)||"",audio_section_url:H(n.audio_section_url)||"",step_images:Rt(n.step_images).map(l=>H(l)||l)}}function Je(n,l,p){var v,u,b,P,q;return{challenge_id:n,step_order:p,description:l.description||"",duration_seconds:Math.max(1,Math.round(Number(l.duration_minutes)*60)),aparat_embed_code:((v=l.aparat_embed_code)==null?void 0:v.trim())||null,kodoblu_voice_url:H((u=l.kodoblu_voice_url)==null?void 0:u.trim())||null,step_images:(l.step_images||[]).map(h=>H(h)||h).filter(Boolean),is_final_step:!!l.is_final_step,enable_feedback_text:!!l.enable_feedback_text,require_feedback_text:!!l.require_feedback_text,feedback_text_title:((b=l.feedback_text_title)==null?void 0:b.trim())||null,feedback_text_placeholder:((P=l.feedback_text_placeholder)==null?void 0:P.trim())||null,enable_photo_upload:!!(l.enable_photo_upload||l.requires_photo_upload),require_photo_upload:!!(l.require_photo_upload||l.requires_photo_upload),enable_voice_upload:!!l.enable_voice_upload,require_voice_upload:!!l.require_voice_upload,enable_mcq:!!l.enable_mcq,require_mcq:!!l.require_mcq,mcq_question:l.mcq_question||null,mcq_options:(l.mcq_options||[]).filter(h=>h.trim()),mcq_correct_index:l.enable_mcq?Number(l.mcq_correct_index??0):null,enable_audio_section:!!l.enable_audio_section,audio_section_url:H((q=l.audio_section_url)==null?void 0:q.trim())||null,punishment_description:l.punishment_description||"",requires_photo_upload:!!(l.enable_photo_upload||l.requires_photo_upload),updated_at:new Date().toISOString()}}function Mt(n,l){return l.map((p,v)=>Je(n,p,v+1))}async function Dt(n){const{data:l,error:p}=await D.from("step_challenges").select("*").eq("id",n).single();if(p)throw p;const{data:v,error:u}=await D.from("step_challenge_steps").select("*").eq("challenge_id",n).order("step_order",{ascending:!0});if(u)throw u;return{...l,steps:(v||[]).map(b=>Lt(b))}}async function Bt(n,l){const p={title:n.title,character_image_ur
|
|||
|
|
*,
|
||
|
|
step_challenge_steps (
|
||
|
|
step_order,
|
||
|
|
description,
|
||
|
|
is_final_step,
|
||
|
|
enable_mcq,
|
||
|
|
mcq_question,
|
||
|
|
mcq_options,
|
||
|
|
enable_feedback_text,
|
||
|
|
enable_photo_upload,
|
||
|
|
enable_voice_upload
|
||
|
|
)
|
||
|
|
`).eq("user_challenge_id",n).order("id",{ascending:!0});if(u)throw u;const b=(v||[]).map(h=>{const _=Array.isArray(h.step_challenge_steps)?h.step_challenge_steps[0]:h.step_challenge_steps;let d=[];const I=_==null?void 0:_.mcq_options;if(Array.isArray(I))d=I.map(String);else if(typeof I=="string")try{const A=JSON.parse(I);Array.isArray(A)&&(d=A.map(String))}catch{d=[]}return{...h,step_challenge_steps:_?{..._,mcq_options:d}:null}});b.sort((h,_)=>{var A,j;const d=((A=h.step_challenge_steps)==null?void 0:A.step_order)??999,I=((j=_.step_challenge_steps)==null?void 0:j.step_order)??999;return d-I});const P=Array.isArray(l.step_challenges)?l.step_challenges[0]:l.step_challenges,q=Array.isArray(l.users)?l.users[0]:l.users;return{...l,challenge_title:(P==null?void 0:P.title)||"",user_name:(q==null?void 0:q.name)||[q==null?void 0:q.first_name,q==null?void 0:q.last_name].filter(Boolean).join(" ")||(q==null?void 0:q.phone)||"نامشخص",user_phone:(q==null?void 0:q.phone)||"",steps_progress:b}}async function Wt(){const{data:n,error:l}=await D.from("step_challenge_config").select("*").eq("id",1).maybeSingle();if(l)throw l;return n||{id:1,rules_aparat_embed_code:null}}async function Jt(n){const{data:l,error:p}=await D.from("step_challenge_config").upsert({id:1,rules_aparat_embed_code:n.rules_aparat_embed_code||null,updated_at:new Date().toISOString()}).select().single();if(p)throw p;return l}const Vt=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:n=>n.record.index+1},{title:"عنوان",dataIndex:"title",key:"title"},{title:"مراحل",dataIndex:"steps_count",key:"steps_count",customRender:n=>{const l=n.record.steps_count||0,p=n.record.total_minutes||0;return l?`${l} مرحله / ${p} دقیقه`:"-"}},{title:"نمایش",dataIndex:"show",key:"show",customRender:n=>n.record.show?"فعال":"مخفی"},{title:"نوع",dataIndex:"access_type",key:"access_type",width:100,align:"center",customRender:n=>n.record.access_type==="subscription"?"اشتراکی":"رایگان"},{title:"ترتیب",dataIndex:"sort_order",key:"sort_order",width:80,align:"center"},{title:"زمان ایجاد",dataIndex:"created_at",key:"created_at",customRender:n=>fe(n.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}],Kt={in_progress:"در حال انجام",completed:"تکمیل شده",abandoned:"رها شده"},Xt=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:n=>n.record.index+1},{title:"چالش",dataIndex:"challenge_title",key:"challenge_title",filterField:"challenge_title"},{title:"کاربر",dataIndex:"user_name",key:"user_name",filterField:"user_name"},{title:"موبایل",dataIndex:"user_phone",key:"user_phone",filterField:"user_phone"},{title:"وضعیت",dataIndex:"status",key:"status",customRender:n=>Kt[n.record.status]||n.record.status},{title:"مرحله فعلی",dataIndex:"current_step_order",key:"current_step_order",align:"center"},{title:"شروع",dataIndex:"started_at",key:"started_at",customRender:n=>fe(n.record.started_at)},{title:"پایان",dataIndex:"completed_at",key:"completed_at",customRender:n=>n.record.completed_at?fe(n.record.completed_at):"-"},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center",width:90}],Gt={key:0,class:"py-16 flex justify-center"},Qt={key:1,class:"space-y-4 max-h-[70vh] overflow-y-auto pr-1"},Yt={class:"grid grid-cols-1 sm:grid-cols-2 gap-3 text-sm"},Zt=e("span",{class:"text-gray-500"},"چالش:",-1),es={class:"font-600"},ts=e("span",{class:"text-gray-500"},"کاربر:",-1),ss={class:"font-600"},as=e("span",{class:"text-gray-500"},"موبایل:",-1),os={class:"font-600"},ls=e("span",{class:"text-gray-500"},"وضعیت:",-1),ns={class:"font-600"},is=e("span",{class:"text-gray-500"},"شروع:",-1),rs={class:"font-600"},cs=e("span",{class:"text-gray-500"},"پایان:",-1),us={class:"font-600"},_s={key:0},ds=e("span",{class:"text-gray-500"},"امتیاز:",-1),ps={class:"font-600"},ms={key:0,class
|