import{u as p,b as P,c as y}from"./vendor-data-CmfOUh6U.js";import{s as u}from"./index-DkUOqT_v.js";const h={id:"17ae5acb-3370-4674-a3ab-fde7923e6d60",name:"Guides",slug:"guides",created_at:"",updated_at:""};let m=null;async function x(t){try{const e=await fetch(t);return!e.ok||!(e.headers.get("content-type")||"").includes("json")?null:await e.json()}catch{return null}}function C(){return m||(m=x("/content/blog/index.json").then(t=>t||[])),m}function v(t,e=""){return{id:t.id,title:t.title,slug:t.slug,content_md:e,excerpt:t.excerpt,featured_image_url:t.featured_image_url,featured_image_alt:t.featured_image_alt,author_id:null,category_id:h.id,meta_title:t.meta_title,meta_description:t.meta_description,is_published:!0,published_at:t.published_at,is_featured:!1,views_count:0,created_at:t.published_at,updated_at:t.updated_at,deleted_at:null,language:t.language,author:{id:"repo-author",name:t.author,title:t.author_title,bio:null,image_url:null,created_at:"",updated_at:""},category:h,tags:[]}}let q=null;function F(){return q||(q=x("/content/blog/supabase-allowed.json")),q}function k(t){return{id:t.slug,title:t.title,slug:t.slug,content_md:"",excerpt:t.excerpt,featured_image_url:t.featured_image_url,featured_image_alt:t.featured_image_alt,author_id:null,category_id:h.id,meta_title:null,meta_description:null,is_published:!0,published_at:t.published_at,is_featured:!1,views_count:0,created_at:t.published_at,updated_at:t.updated_at,deleted_at:null,language:t.language||"en",author:null,category:h,tags:[]}}async function B(t){const[e,s]=await Promise.all([C(),F()]);if(!s)return null;const l=a=>!t||(a||"en")===t;return[...e.filter(a=>l(a.language)).map(a=>v(a)),...s.filter(a=>l(a.language)).sort((a,n)=>n.published_at.localeCompare(a.published_at)).map(k)]}async function G(t){const e=(await C()).find(l=>l.slug===t);if(!e)return null;const s=await x(`/content/blog/posts/${t}.json`);return s?v(e,s.content_md):null}function D({page:t=1,limit:e=9,categoryId:s=null,sortBy:l="recent",adminView:a=!1,status:n="all",search:i="",language:o="en"}={}){return p({queryKey:["blog-posts",t,e,s,l,a,n,i,o],queryFn:async()=>{if(!a){const _=await B(o||void 0);if(_){const g=_.filter(T=>(!s||T.category_id===s)&&(!i||T.title.toLowerCase().includes(i.toLowerCase()))),b=(t-1)*e;return{posts:g.slice(b,b+e),totalCount:g.length,totalPages:Math.ceil(g.length/e)}}}const d=a?[]:(await C()).filter(_=>(!o||_.language===o)&&(!s||s==="17ae5acb-3370-4674-a3ab-fde7923e6d60")&&(!i||_.title.toLowerCase().includes(i.toLowerCase()))),c=(t-1)*e,f=d.slice(c,c+e).map(_=>v(_)),w=a?"blog_authors":"blog_authors_public";let r=u.from("blog_posts").select(` *, author:${w}(*), category:blog_categories(*), tags:blog_post_tags(tag:blog_tags(*)) `,{count:"exact"});r=r.is("deleted_at",null),a&&(n==="published"?r=r.eq("is_published",!0):n==="draft"&&(r=r.eq("is_published",!1))),i&&(r=r.ilike("title",`%${i}%`)),!a&&o&&(r=r.eq("language",o)),s&&(r=r.eq("category_id",s)),l==="popularity"?r=r.order("views_count",{ascending:!1}):r=r.order("published_at",{ascending:!1,nullsFirst:!1});const K=e-f.length,S=Math.max(0,c-d.length);r=r.range(S,S+Math.max(K,1)-1);const{data:j,error:M,count:A}=await r;if(M)throw M;const R=(j||[]).map(_=>{var g;return{..._,tags:((g=_.tags)==null?void 0:g.map(b=>b.tag).filter(Boolean))||[]}}),Q=(A||0)+d.length;return{posts:[...f,...R.slice(0,K)],totalCount:Q,totalPages:Math.ceil(Q/e)}}})}function E(t){return p({queryKey:["blog-post",t],queryFn:async()=>{const e=await G(t);if(e)return e;const s=await F();if(s&&!s.some(o=>o.slug===t))return null;const{data:l,error:a}=await u.from("blog_posts").select(` *, author:blog_authors_public(*), category:blog_categories(*) `).eq("slug",t).maybeSingle();if(a)throw a;if(!l)return null;const{data:n}=await u.from("blog_post_tags").select("tag:blog_tags(*)").eq("post_id",l.id),i=(n==null?void 0:n.map(o=>o.tag))||[];return{...l,tags:i}},enabled:!!t})}function J(t){return p({queryKey:["blog-post-by-id",t],queryFn:async()=>{const{data:e,error:s}=await u.from("blog_posts").select(` *, author:blog_authors(*), category:blog_categories(*) `).eq("id",t).maybeSingle();if(s)throw s;if(!e)return null;const{data:l}=await u.from("blog_post_tags").select("tag:blog_tags(*)").eq("post_id",e.id),a=(l==null?void 0:l.map(n=>n.tag))||[];return{...e,tags:a}},enabled:!!t})}function N(t,e,s=6,l="",a=""){return p({queryKey:["related-posts",t,e,l,a],queryFn:async()=>{const n=await B(a||void 0);if(n)return n.filter(c=>c.slug!==l&&c.id!==t).slice(0,s);const{data:i,error:o}=await u.from("blog_posts").select(` *, author:blog_authors_public(*), category:blog_categories(*) `).neq("id",t).eq("is_published",!0).is("deleted_at",null).order("published_at",{ascending:!1}).limit(s);if(o)throw o;return i.sort((c,f)=>{const w=c.category_id===e?0:1,r=f.category_id===e?0:1;return w-r})},enabled:!!t})}function O(t,e,s=3){return p({queryKey:["author-posts",t,e],queryFn:async()=>{const{data:l,error:a}=await u.from("blog_posts").select(` *, author:blog_authors_public(*), category:blog_categories(*) `).eq("author_id",t).neq("id",e).eq("is_published",!0).is("deleted_at",null).order("published_at",{ascending:!1}).limit(s);if(a)throw a;const n=await F(),i=n?new Set(n.map(o=>o.slug)):null;return l.filter(o=>!i||i.has(o.slug))},enabled:!!t})}function Y(){const t=P();return y({mutationFn:async e=>{const{tagNames:s,...l}=e,{data:a,error:n}=await u.from("blog_posts").insert([l]).select().single();if(n)throw n;return s&&s.length>0&&await L(a.id,s),a},onSuccess:()=>{t.invalidateQueries({queryKey:["blog-posts"]})}})}function z(){const t=P();return y({mutationFn:async({id:e,...s})=>{const{tagNames:l,author:a,category:n,tags:i,...o}=s,{data:d,error:c}=await u.rpc("update_blog_post",{p_id:e,p_title:o.title||null,p_slug:o.slug||null,p_content_md:o.content_md||null,p_excerpt:o.excerpt||null,p_featured_image_url:o.featured_image_url||null,p_featured_image_alt:o.featured_image_alt||null,p_author_id:o.author_id||null,p_category_id:o.category_id||null,p_meta_title:o.meta_title||null,p_meta_description:o.meta_description||null,p_is_published:o.is_published??null,p_is_featured:o.is_featured??null,p_published_at:o.published_at||null});if(c)throw c;return l!==void 0&&await L(e,l),d},onSuccess:()=>{t.invalidateQueries({queryKey:["blog-posts"]}),t.invalidateQueries({queryKey:["blog-post"]}),t.invalidateQueries({queryKey:["blog-post-by-id"]})}})}function H(){const t=P();return y({mutationFn:async e=>{const{error:s}=await u.rpc("delete_blog_post",{p_id:e});if(s)throw s},onSuccess:()=>{t.invalidateQueries({queryKey:["blog-posts"]})}})}async function L(t,e){if(await u.from("blog_post_tags").delete().eq("post_id",t),e.length===0)return;const s=a=>a.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-"),l=e.map(a=>({name:a.trim(),slug:s(a)}));for(const a of l){const{data:n}=await u.from("blog_tags").select("id").eq("slug",a.slug).maybeSingle();let i;if(n)i=n.id;else{const{data:o,error:d}=await u.from("blog_tags").insert(a).select("id").single();if(d)continue;i=o.id}await u.from("blog_post_tags").insert({post_id:t,tag_id:i})}}function W(){return y({mutationFn:async t=>{const{data:e,error:s}=await u.rpc("increment_post_view",{p_slug:t});if(s)throw s;return e}})}export{E as a,W as b,N as c,O as d,H as e,J as f,Y as g,z as h,D as u};