2026-06-17 14:02:02 +03:30
|
|
|
import{_ as xe}from"./BasicMainCard-5c0935a0.js";import{_ as ge}from"./BasicModal.vue_vue_type_style_index_0_lang-0a56944e.js";import{_ as be}from"./BasicTextArea.vue_vue_type_style_index_0_lang-227d1ebf.js";import{a as ee,_ as ye,u as G}from"./useBaseTable-733b78fc.js";import{_ as te}from"./BasicInput.vue_vue_type_style_index_0_lang-f55e9984.js";import{_ as ae}from"./button.vue_vue_type_style_index_0_lang-251932bc.js";import{_ as he,I as A,d as ne,g as h,h as U,v as we,D as m,o as P,c as L,F as ke,a as t,b as c,t as D,p as Ie,w as f,e as Z,j as y,G as V,k as X,H as Ae}from"./index-a788bd53.js";import{d as Re,e as Se,f as Pe}from"./supabaseTableQuery-48420152.js";import{t as F}from"./useDataTime-c57a768a.js";import{I as z}from"./Icon-417849dc.js";import{g as Le}from"./index-42f5befb.js";import{e as Y,g as J}from"./convert-67c23be8.js";import{T as W}from"./index-d8ab383c.js";import{M as Ne}from"./index-0cdee960.js";import{S as Ce}from"./index-eb51b631.js";import{T as q}from"./shallowequal-f5e87a5a.js";import{U as $e}from"./index-4acd1bcb.js";import"./index-8174d632.js";import"./index-bdb5a596.js";import"./Col-c7805dec.js";import"./vnode-cf6f01a4.js";import"./_plugin-vue_export-helper-dc00b431.js";import"./isPlainObject-91b090bb.js";import"./index-c82b54d0.js";import"./FormItemContext-b811304e.js";import"./fa_IR-d5b5c457.js";import"./toArray-16bbe0cf.js";import"./pickAttrs-81a356a6.js";import"./useState-01af796f.js";import"./lodash-315d8ef5.js";import"./index-619be9cd.js";import"./usePrice-bc935b83.js";import"./useRefs-7f6d723f.js";import"./index-6cf8818b.js";function se(e,i){return Math.max(0,Math.round(e*(1-(i||0)/100)))}async function Te(e){const{TableEngineRequest:i}=await he(()=>import("./buildSupabaseQuery-279a98f9.js"),["assets/buildSupabaseQuery-279a98f9.js","assets/index-a788bd53.js","assets/index-f5b104f4.css"]),o={...e};!o.sort&&!o.order&&(o.order="-sort_order");const a=await i(o,"subscription_plans");if(Array.isArray(a==null?void 0:a.rows)){const d=a.rows.map((x,g)=>({...x,index:g,final_price:se(Number(x.price),Number(x.discount_percent||0))}));return{...a,rows:d}}return a}async function ze(e){const{limit:i=20,page:o=1,search:a}=e;let d=A.from("subscription_purchases").select("*, users(name, phone, first_name, last_name)",{count:"exact"});if(a!=null&&a.trim()){const u=`%${a.trim()}%`;d=d.or(`plan_title.ilike.${u},payment_status.ilike.${u},status.ilike.${u},users.name.ilike.${u},users.phone.ilike.${u},users.first_name.ilike.${u},users.last_name.ilike.${u}`)}d=Re(d,e,"-created_at",["created_at","plan_title","payment_status","status"]),d=Se(d,o,i);const{data:x,error:g,count:R}=await d;if(g)throw g;return Pe(x,R,e,u=>{const l=Array.isArray(u.users)?u.users[0]:u.users;let p="نامشخص";return l!=null&&l.name?p=l.name:l!=null&&l.first_name||l!=null&&l.last_name?p=`${l.first_name||""} ${l.last_name||""}`.trim():l!=null&&l.phone&&(p=l.phone),{...u,user_name:p,user_phone:(l==null?void 0:l.phone)||""}})}async function Be(e){const{data:i,error:o}=await A.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 Ue(e,i){const{data:o,error:a}=await A.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(a)throw a;return o}async function De(e){const{error:i}=await A.from("subscription_plans").delete().eq("id",e);if(i)throw i}async function Ee(e,i){const{data:o,error:a}=await A.from("subscription_plans").update({is_active:i,updated_at:new Date().toISOString()}).eq("id",e).select();if(a)throw a;return o}function Q(e){return Number(e||0).toLocaleString("fa-IR")}const Me=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"cente
|