import{u as d}from"./vendor-query-Dz__kayo.js";import{s as g}from"./PublicLayout-CkZXacde.js";const c="id, slug, title, excerpt, category, tags, author_name, author_photo_url, published_at, read_time, featured_image_url, featured_image_alt";function y({page:r,pageSize:e=9,tag:s,search:a,sortOrder:n="newest"}){return d({queryKey:["blog_posts_paginated",r,e,s,a,n],queryFn:async()=>{const i=(r-1)*e,u=i+e-1;let t=g.from("blog_posts").select(c,{count:"exact"}).eq("is_published",!0);if(n==="oldest"?t=t.order("published_at",{ascending:!0}):n==="a-z"?t=t.order("title",{ascending:!0}):t=t.order("published_at",{ascending:!1}),s&&(t=t.contains("tags",[s])),a!=null&&a.trim()){const l=a.trim();t=t.or(`title.ilike.%${l}%,excerpt.ilike.%${l}%,author_name.ilike.%${l}%`)}t=t.range(i,u);const{data:f,error:o,count:_}=await t;if(o)throw new Error(o.message);const m=_??0;return{posts:(f??[]).map(l=>({...l,tags:l.tags??[]})),total:m,totalPages:Math.ceil(m/e)}},staleTime:1e3*60*5})}function q(){return d({queryKey:["blog_tags"],queryFn:async()=>{const{data:r,error:e}=await g.from("blog_posts").select("tags").eq("is_published",!0);if(e)throw new Error(e.message);const s=new Set;return(r??[]).forEach(a=>(a.tags??[]).forEach(n=>s.add(n))),Array.from(s).sort()},staleTime:1e3*60*10})}function h(r){return d({queryKey:["blog_posts",r],enabled:!!r,queryFn:async()=>{const{data:e,error:s}=await g.from("blog_posts").select("*").eq("slug",r).eq("is_published",!0).maybeSingle();if(s)throw new Error(s.message);if(!e)throw new Error("Post not found");return{...e,tags:e.tags??[]}},staleTime:1e3*60*5})}function w(r,e,s=3){return d({queryKey:["blog_posts","related",r,e],enabled:!!r&&!!e,queryFn:async()=>{const{data:a,error:n}=await g.from("blog_posts").select(c).eq("is_published",!0).eq("category",r).neq("slug",e).order("published_at",{ascending:!1}).limit(s);if(n)throw new Error(n.message);const i=(a??[]).map(u=>({...u,tags:u.tags??[]}));if(i.length<s){const{data:u}=await g.from("blog_posts").select(c).eq("is_published",!0).neq("slug",e).order("published_at",{ascending:!1}).limit(s),t=new Set(i.map(o=>o.slug));return[...i,...(u??[]).map(o=>({...o,tags:o.tags??[]})).filter(o=>!t.has(o.slug))].slice(0,s)}return i},staleTime:1e3*60*5})}export{y as a,h as b,w as c,q as u};