2026-06-18 20:24:23 +03:30
|
|
|
import{_ as xe}from"./BasicMainCard-9d8af607.js";import{_ as be}from"./BasicModal.vue_vue_type_style_index_0_lang-2c965652.js";import{_ as ye}from"./BasicTextArea.vue_vue_type_style_index_0_lang-5b0e2685.js";import{a as te,_ as he,u as G}from"./useBaseTable-e8654654.js";import{_ as ae}from"./BasicInput.vue_vue_type_style_index_0_lang-96e71e2f.js";import{_ as ne}from"./button.vue_vue_type_style_index_0_lang-61c18c46.js";import{_ as we,I as w,d as se,g as I,h as E,v as Ie,D as v,o as P,c as L,F as ke,a,b as c,t as $,p as Ae,w as g,e as H,j as h,G as V,k as X,H as Se}from"./index-fe7e9f3a.js";import{f as Y,a as Re,b as Pe,c as Le,d as Ne,e as Ce}from"./supabaseTableQuery-be932edd.js";import{t as q}from"./useDataTime-6319c12a.js";import{I as z}from"./Icon-b952e603.js";import{g as Te}from"./index-9a272e1e.js";import{e as J,g as W}from"./convert-67c23be8.js";import{T as Q}from"./index-66219801.js";import{M as Ue}from"./index-4bebce71.js";import{S as ze}from"./index-c3b05d68.js";import{T as O}from"./shallowequal-84daf276.js";import{U as Be}from"./index-207b9df5.js";import"./index-a0d96113.js";import"./index-265527df.js";import"./Col-4a3e6527.js";import"./vnode-4e2eb49f.js";import"./_plugin-vue_export-helper-84433aaa.js";import"./isPlainObject-8df7c091.js";import"./index-6e5ff446.js";import"./FormItemContext-b538849a.js";import"./fa_IR-23a1f71d.js";import"./toArray-1e9f5cfb.js";import"./pickAttrs-c6e9cc38.js";import"./useState-fbb2e402.js";import"./lodash-7b4e0250.js";import"./index-63f18912.js";import"./usePrice-bc935b83.js";import"./useRefs-f56804c8.js";import"./index-9caf69a4.js";function ie(e,i){return Math.max(0,Math.round(e*(1-(i||0)/100)))}async function Ee(e){const{TableEngineRequest:i}=await we(()=>import("./buildSupabaseQuery-64c97ab8.js"),["assets/buildSupabaseQuery-64c97ab8.js","assets/index-fe7e9f3a.js","assets/index-457f5e42.css","assets/supabaseTableQuery-be932edd.js"]),o={...e};!o.sort&&!o.order&&(o.order="-sort_order");const t=await i(o,"subscription_plans");if(Array.isArray(t==null?void 0:t.rows)){const p=t.rows.map((d,x)=>({...d,index:x,final_price:ie(Number(d.price),Number(d.discount_percent||0))}));return{...t,rows:p}}return t}const $e=new Set(["plan_title","payment_status","status","final_price","expires_at","created_at","user_id","plan_id"]),De=["plan_title","payment_status","status"];async function Me(e){const{limit:i=20,page:o=1,search:t,filters:p}=e;let d=w.from("subscription_purchases").select("*, users(name, phone, first_name, last_name)",{count:"exact"});if(t!=null&&t.trim()){const u=await Y(w,t);d=Re(d,t,De,u)}if(p!=null&&p.length){for(const u of p)if(!(u.hidden||!u.field)){if(u.field==="user_name"||u.field==="user_phone"){if(["eq","has","like"].includes(u.op)){const r=await Y(w,String(u.value));r.length?d=d.in("user_id",r):d=d.eq("user_id","00000000-0000-0000-0000-000000000000")}continue}$e.has(u.field)&&(d=Pe(d,u))}}d=Le(d,e,"-created_at",["created_at","plan_title","payment_status","status"]),d=Ne(d,o,i);const{data:x,error:k,count:m}=await d;if(k)throw k;return Ce(x,m,e,u=>{const r=Array.isArray(u.users)?u.users[0]:u.users;let b="نامشخص";return r!=null&&r.name?b=r.name:r!=null&&r.first_name||r!=null&&r.last_name?b=`${r.first_name||""} ${r.last_name||""}`.trim():r!=null&&r.phone&&(b=r.phone),{...u,user_name:b,user_phone:(r==null?void 0:r.phone)||""}})}async function Fe(e){const{data:i,error:o}=await w.from("subscription_plans").insert([{title:e.title,description:e.description||null,image_url:e.image_url,price:e.price,discount_percent:e.discount_percent??0,duration_days:e.duration_days,is_active:e.is_active??!0,sort_order:e.sort_order??0}]).select().single();if(o)throw o;return i}async function Oe(e,i){const{data:o,error:t}=await w.from("subscription_plans").update({title:i.title,description:i.description||null,image_url:i.image_url,price:i.price,discount_percent:i.discount_percent??0,duration_days:i.duration_days,is_active:i.is_active??!0,sort_order:i.sort_order??0,updated_at:new Date().toISOString()}).eq("id",e).select();if(t)throw t;return o}async function qe(e){const{error:i}=await w.from
|