import{u as g,b as p,c as _}from"./vendor-data-D4F9-7cQ.js";import{s as i}from"./index-E4maWKVN.js";function v({page:t=1,limit:e=9,categoryId:s=null,sortBy:r="recent",adminView:a=!1,status:n="all",search:u="",language:l="en"}={}){return g({queryKey:["blog-posts",t,e,s,r,a,n,u,l],queryFn:async()=>{const c=a?"blog_authors":"blog_authors_public";let o=i.from("blog_posts").select(` *, author:${c}(*), category:blog_categories(*), tags:blog_post_tags(tag:blog_tags(*)) `,{count:"exact"});o=o.is("deleted_at",null),a&&(n==="published"?o=o.eq("is_published",!0):n==="draft"&&(o=o.eq("is_published",!1))),u&&(o=o.ilike("title",`%${u}%`)),!a&&l&&(o=o.eq("language",l)),s&&(o=o.eq("category_id",s)),r==="popularity"?o=o.order("views_count",{ascending:!1}):o=o.order("published_at",{ascending:!1,nullsFirst:!1});const d=(t-1)*e;o=o.range(d,d+e-1);const{data:q,error:b,count:f}=await o;if(b)throw b;return{posts:(q||[]).map(y=>{var h;return{...y,tags:((h=y.tags)==null?void 0:h.map(w=>w.tag).filter(Boolean))||[]}}),totalCount:f||0,totalPages:Math.ceil((f||0)/e)}}})}function C(t){return g({queryKey:["blog-post",t],queryFn:async()=>{const{data:e,error:s}=await i.from("blog_posts").select(` *, author:blog_authors_public(*), category:blog_categories(*) `).eq("slug",t).maybeSingle();if(s)throw s;if(!e)return null;const{data:r}=await i.from("blog_post_tags").select("tag:blog_tags(*)").eq("post_id",e.id),a=(r==null?void 0:r.map(n=>n.tag))||[];return{...e,tags:a}},enabled:!!t})}function Q(t){return g({queryKey:["blog-post-by-id",t],queryFn:async()=>{const{data:e,error:s}=await i.from("blog_posts").select(` *, author:blog_authors(*), category:blog_categories(*) `).eq("id",t).maybeSingle();if(s)throw s;if(!e)return null;const{data:r}=await i.from("blog_post_tags").select("tag:blog_tags(*)").eq("post_id",e.id),a=(r==null?void 0:r.map(n=>n.tag))||[];return{...e,tags:a}},enabled:!!t})}function S(t,e,s=6){return g({queryKey:["related-posts",t,e],queryFn:async()=>{const{data:r,error:a}=await i.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(a)throw a;return r.sort((u,l)=>{const c=u.category_id===e?0:1,o=l.category_id===e?0:1;return c-o})},enabled:!!t})}function T(t,e,s=3){return g({queryKey:["author-posts",t,e],queryFn:async()=>{const{data:r,error:a}=await i.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;return r},enabled:!!t})}function x(){const t=p();return _({mutationFn:async e=>{const{tagNames:s,...r}=e,{data:a,error:n}=await i.from("blog_posts").insert([r]).select().single();if(n)throw n;return s&&s.length>0&&await m(a.id,s),a},onSuccess:()=>{t.invalidateQueries({queryKey:["blog-posts"]})}})}function B(){const t=p();return _({mutationFn:async({id:e,...s})=>{const{tagNames:r,author:a,category:n,tags:u,...l}=s,{data:c,error:o}=await i.rpc("update_blog_post",{p_id:e,p_title:l.title||null,p_slug:l.slug||null,p_content_md:l.content_md||null,p_excerpt:l.excerpt||null,p_featured_image_url:l.featured_image_url||null,p_featured_image_alt:l.featured_image_alt||null,p_author_id:l.author_id||null,p_category_id:l.category_id||null,p_meta_title:l.meta_title||null,p_meta_description:l.meta_description||null,p_is_published:l.is_published??null,p_is_featured:l.is_featured??null,p_published_at:l.published_at||null});if(o)throw o;return r!==void 0&&await m(e,r),c},onSuccess:()=>{t.invalidateQueries({queryKey:["blog-posts"]}),t.invalidateQueries({queryKey:["blog-post"]}),t.invalidateQueries({queryKey:["blog-post-by-id"]})}})}function M(){const t=p();return _({mutationFn:async e=>{const{error:s}=await i.rpc("delete_blog_post",{p_id:e});if(s)throw s},onSuccess:()=>{t.invalidateQueries({queryKey:["blog-posts"]})}})}async function m(t,e){if(await i.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,"-"),r=e.map(a=>({name:a.trim(),slug:s(a)}));for(const a of r){const{data:n}=await i.from("blog_tags").select("id").eq("slug",a.slug).maybeSingle();let u;if(n)u=n.id;else{const{data:l,error:c}=await i.from("blog_tags").insert(a).select("id").single();if(c)continue;u=l.id}await i.from("blog_post_tags").insert({post_id:t,tag_id:u})}}function U(){return _({mutationFn:async t=>{const{data:e,error:s}=await i.rpc("increment_post_view",{p_slug:t});if(s)throw s;return e}})}export{C as a,U as b,S as c,T as d,M as e,Q as f,x as g,B as h,v as u};