Files
machartaa_admin_dist/dist/assets/products-f4f303c3.js
T

2 lines
9.1 KiB
JavaScript
Raw Normal View History

2026-06-18 20:24:23 +03:30
import{X as d,_ as N}from"./index-fe7e9f3a.js";const b="*, product_attributes(*, attributes(*)), variants(*, variant_attribute_values(*))",k=new Set(["description","price","sku","is_active","code","title","title_fa","brand_id","collection_id","body","original_image","is_show","display_price","count_order","count_fav","count_view","count","seo_title","meta","min_price","max_price","type","files","owner_id","discount","discount_type","box_size","sell_type","weight","product_type","rial_fee","percent_fee","auto_calculate","is_exist","post_shipping_cost"]);function g(t){var e;return(((e=t.variants)==null?void 0:e.length)??0)>0||t.type==="variant"}function y(t){const e=g(t),r=new Set(["discount","discount_type","count","display_price","min_price","max_price","price"]),i={};for(const[a,n]of Object.entries(t))!k.has(a)||n===void 0||e&&r.has(a)||(i[a]=n);if(i.type=e?"variant":"simple",e){const a=t.variants??[],n=a.map(o=>m(o.price,o.discount,o.discount_type)),s=a.map(o=>Number(o.stock??0));i.price=0,i.discount=null,i.discount_type=null,i.count=s.reduce((o,u)=>o+u,0),i.display_price=n.length?Math.min(...n):0,i.min_price=n.length?Math.min(...n):0,i.max_price=n.length?Math.max(...n):0,i.is_exist=s.length?s.some(o=>o>0):t.is_exist??!0}else{const a=Number(t.price??0),n=t.discount!=null?Number(t.discount):null,s=t.discount_type??"percent";i.price=a,i.display_price=m(a,n,s),i.min_price=i.display_price,i.max_price=i.display_price}return i}function m(t,e,r){const i=Number(t??0),a=Number(e??0);return a?r==="percent"?Math.max(0,Math.round(i*(100-a)/100)):Math.max(0,i-a):i}function V(t){if(t==null||t==="")return null;const e=Number(t);return Number.isFinite(e)?e:null}function q(t){const e=((t==null?void 0:t.variant_attribute_values)??[]).map(r=>{var i;return r.attribute_value_id??((i=r.attribute_values)==null?void 0:i.id)}).filter(r=>r!=null);return{id:V(t.id),sku:t.sku??"",price:t.price??0,box_price:t.box_price??t.price??0,stock:t.stock??0,discount:t.discount??void 0,discount_type:t.discount_type??"percent",is_default:t.is_default??!1,attribute_values:e,attribute_values_name:[]}}function x(t){const e=new Map;for(const r of t){if(r.attribute_id==null)continue;const i=(r.attribute_values??[]).filter(n=>n!=null),a=e.get(r.attribute_id);if(!a){e.set(r.attribute_id,{id:r.id,attribute_id:r.attribute_id,use_in_product_page:r.use_in_product_page??!0,use_in_variant:r.use_in_variant??!1,attribute_values:[...i]});continue}a.attribute_values=[...new Set([...a.attribute_values??[],...i])],a.use_in_variant=a.use_in_variant||r.use_in_variant,a.use_in_product_page=a.use_in_product_page||r.use_in_product_page}return[...e.values()]}function w(t){var r;if(!t)return t;const e=(((r=t.variants)==null?void 0:r.length)??0)>0||t.type==="variant";return{...t,type:e?"variant":"simple",product_attributes:x(t.product_attributes??[]),variants:(t.variants??[]).map(q)}}async function A(){const{data:t,error:e}=await d.from("attribute_values").select("id, attribute_id");if(e)throw e;return new Map((t??[]).map(r=>[r.id,r.attribute_id]))}async function M(t=[]){const{data:e,error:r}=await d.from("attributes").select("id, name");if(r)throw r;const i=new Map((e??[]).map(n=>[String(n.name).trim().toLowerCase(),n.id])),a=[];for(const n of t){if(n.attribute_id!=null){a.push(n);continue}const s=(n.attribute_name??"").trim();if(!s)continue;const o=s.toLowerCase();let u=i.get(o);if(u==null){const{data:l,error:c}=await d.from("attributes").insert({name:s}).select("id").single();if(c)throw c;u=l.id,i.set(o,u)}a.push({...n,attribute_id:u,is_new:!1})}return a}async function E(t,e){const{data:r,error:i}=await d.from("attribute_values").select("id, value").eq("attribute_id",t);if(i)throw i;const a=new Map((r??[]).map(s=>[s.value,s.id])),n=[];for(const s of e){if(s==null||s==="")continue;if(typeof s=="number"){n.push(s);continue}const o=String(s).trim();if(!o)continue;const u=a.get(o);if(u!=null){n.push(u);continue}const{data:l,error:c}=await d.from("attribute_values").insert({attribute_id:t,value:o}).select("id").single();if(c)throw c;a.set(o,l.id),n.push(l.id)}return[...new Set(n)]}async