Files
machartaa_admin_dist/dist/assets/competition-47b1b41b.js
T
2026-07-04 17:32:23 +03:30

2 lines
4.4 KiB
JavaScript

import{_ as w,H as u}from"./index-14c3003c.js";async function E(){const{data:s,error:t}=await u.from("matchs").select("*");if(t)throw t;return s}async function y(s,t){const{data:e,error:r}=await u.from("matchs").update(t).eq("id",s).select();if(r)throw r;return e}async function b(s){const{data:t,error:e}=await u.from("matchs").select("*").eq("id",s).single();if(e)throw e;const{data:r,error:n}=await u.from("questions").select("*").eq("match_id",s);if(n)throw n;return{...t,questions:r||[]}}async function S(s){console.log("addMatchWithQuestions payload:",s);const{data:t,error:e}=await u.from("matchs").insert([s.match]).select().single();if(console.log("Match insert result:",{matchData:t,matchError:e}),e)throw console.error("Match insert error:",e),e;for(const r of s.questions){const{data:n,error:a}=await u.from("questions").insert([{match_id:t.id,question:r.question,options:r.options,correct_answer:r.correct_answer}]).select().single();if(a)throw a;console.log("Question created:",n)}return t}async function W(s,t){const{error:e}=await u.from("matchs").update(t.match).eq("id",s);if(e)throw e;const{data:r}=await u.from("questions").select("id").eq("match_id",s);if(r)for(const n of r)await u.from("questions").delete().eq("id",n.id);for(const n of t.questions){const{data:a,error:d}=await u.from("questions").insert([{match_id:s,question:n.question,options:n.options,correct_answer:n.correct_answer}]).select().single();if(d)throw d;console.log("Question updated:",a)}return{id:s}}async function R(s){await u.from("questions").delete().eq("match_id",s);const{error:t}=await u.from("matchs").delete().eq("id",s);if(t)throw t}async function D(s){const{TableEngineRequest:t}=await w(()=>import("./buildSupabaseQuery-267b483f.js"),["assets/buildSupabaseQuery-267b483f.js","assets/index-14c3003c.js","assets/index-210d4b6a.css","assets/supabaseTableQuery-95762ff3.js"]),e={...s};!e.sort&&!e.order&&(e.order="-id");const r=await t(e,"matchs");try{if(Array.isArray(r==null?void 0:r.rows)){const n=e.page||1,a=e.limit||200,d=(n-1)*a,m=r.rows.map((l,f)=>({id:l.id,title:l.title??"",description:l.description??"",created_at:l.created_at??"",index:d+f,...l}));return{...r,rows:m}}}catch(n){console.log("[getMatchTable] normalize error:",n)}return r}async function q(s){const{TableEngineRequest:t}=await w(()=>import("./buildSupabaseQuery-267b483f.js"),["assets/buildSupabaseQuery-267b483f.js","assets/index-14c3003c.js","assets/index-210d4b6a.css","assets/supabaseTableQuery-95762ff3.js"]),e={...s};return!e.sort&&!e.order&&(e.order="-created_at"),t(e,"competition_winners")}const _=1e3;async function Q(s){var r;const t=[];let e=1;for(;;){const n=await q({page:e,limit:_,filters:[{field:"match_id",op:"eq",value:s,cr:"and",hidden:!1,type:"number"}]}),a=n.rows||[];if(!a.length)break;t.push(...a);const d=(r=n.query)==null?void 0:r.total;if(typeof d=="number"&&t.length>=d||a.length<_)break;e++}return t}async function k(s){const t=s.map(n=>{const a={match_id:n.match_id,rank:n.rank};return n.user_id!==void 0?a.user_id=n.user_id:n.winner_id!==void 0&&(a.user_id=n.winner_id),a}),{data:e,error:r}=await u.from("winners_match").insert(t).select();if(r)throw r;return e}async function v(s){const{data:t,error:e}=await u.from("winners_match").select("*").eq("match_id",s).order("rank",{ascending:!0});if(e)throw e;if(!t||t.length===0)return[];const r=[...new Set(t.map(o=>o.user_id||o.winner_id).filter(Boolean))];if(r.length===0)return[];const[n,a]=await Promise.all([u.from("users").select("*").in("id",r),u.from("answers").select("user_id, score").eq("match_id",s).in("user_id",r)]),d=n.data||[],m=a.data||[],l=new Map;d.forEach(o=>{const c=o.id;if(l.set(c,o),l.set(String(c),o),typeof c=="string"){const i=c.toLowerCase().replace(/-/g,"");l.set(i,o),c.includes("-")&&(l.set(c.replace(/-/g,""),o),l.set(c.replace(/-/g,"").toLowerCase(),o))}});const f=new Map;return m.forEach(o=>{const c=o.user_id;f.set(c,o.score||0),f.set(String(c),o.score||0)}),t.map(o=>{const c=o.user_id||o.winner_id,i=l.get(c)||l.get(String(c))||d.find(p=>String(p.id)===String(c))||{},g=f.get(c)||f.get(String(c))||0;let h="نامشخص";return i&&Object.keys(i).length>0&&(i.name?h=i.name:i.first_name||i.last_name?h=`${i.first_name||""} ${i.last_name||""}`.trim():i.phone?h=i.phone:i.email?h=i.email:i.username&&(h=i.username)),{...o,user_name:h,user_mobile:(i==null?void 0:i.phone)||"",user_email:(i==null?void 0:i.email)||"",score:Number(g)||0}})}export{E as a,Q as b,D as c,S as d,b as e,y as f,q as g,R as h,v as i,k as s,W as u};