import{e as Ne,g as ye,r as n,u as E,j as s,b as Ce,s as I}from"./index-BnqvTfda.js";import{H as re,b as be}from"./Header-KCLMYIRV.js";import{B as f,I as g,F as ve}from"./Footer-D3yiUcm3.js";import{C as Se}from"./ComparisonBar-Cfz2qcBc.js";import{P as Pe}from"./ProductCard-C-wt_b-G.js";import{S as we}from"./StructuredBreadcrumb-DbU3XcZc.js";import{u as Me,M as _e,C as Fe}from"./usePaginationMeta-DvX645gP.js";import{C as ke,a as Oe}from"./card-0DNxHdEP.js";import{C as q}from"./checkbox-DUmWkSIN.js";import{S as $e,a as Be,b as Le,c as Te,d as y}from"./select-CZZ9aQ79.js";import{u as Ee,a as Ie,b as qe}from"./useOpenGraph-BRitgQEb.js";import{u as Re}from"./useDocumentTitle-BRLVJu1_.js";import{C as Ve}from"./chevron-right-D-Yshan1.js";import"./OptimizedImage-CJaMU9lB.js";import"./check-xk1slcF6.js";import"./index-B-44TBOv.js";import"./index-Tu_SaZ1r.js";import"./badge-CbC-LCnk.js";import"./external-link-7WLGoFFF.js";import"./index-D0mUvkau.js";import"./chevron-down-C2A9Yjri.js";const os=()=>{var te,ae;Ne();const[h,R]=ye(),V=h.get("search")||"",z=h.get("category")||"",ne=parseInt(h.get("page")||"1",10),ie=((te=h.get("brand"))==null?void 0:te.split(",").filter(Boolean))||[],le=((ae=h.get("vendor"))==null?void 0:ae.split(",").filter(Boolean))||[],oe=h.get("minPrice")||"",ce=h.get("maxPrice")||"",de=h.get("sort")||"newest",[c,C]=n.useState(oe),[d,b]=n.useState(ce),[x,v]=n.useState(V),[u,j]=n.useState(V),[S,P]=n.useState(""),[w,M]=n.useState(""),[a,U]=n.useState(z?[z]:[]),[o,K]=n.useState(ie),[i,A]=n.useState(le),[_,F]=n.useState(""),[m,D]=n.useState(de),[r,J]=n.useState(ne),N=12,k=n.useMemo(()=>{const e=new URLSearchParams;u&&e.set("search",u),a.length>0&&e.set("category",a.join(",")),o.length>0&&e.set("brand",o.join(",")),i.length>0&&e.set("vendor",i.join(",")),c&&e.set("minPrice",c),d&&e.set("maxPrice",d),m!=="newest"&&e.set("sort",m);const t=e.toString();return`https://clyper.ro/products${t?"?"+t:""}`},[u,a,o,i,c,d,m]);Ee("/products");const O=a.length===1?r>1?`${a[0]} - Pagina ${r} | Clyper.ro`:`${a[0]} - Comparator prețuri | Clyper.ro`:r>1?`Toate produsele - Pagina ${r} | Clyper.ro`:"Toate produsele - Compară prețuri | Clyper.ro",$=a.length===1?`Explorează produse din categoria ${a[0]}. Compară prețuri și găsește cele mai bune oferte pe Clyper.ro.`:r>1?`Explorează produse - Pagina ${r}. Compară prețuri și găsește ofertele perfecte din toate categoriile.`:"Explorează mii de produse și compară prețuri din toate categoriile. Filtrează după preț, categorie și brand pentru a găsi ofertele perfecte.";Re(O),Ie($),qe({title:O,description:$,type:"website",siteName:"Clyper"});const me=n.useMemo(()=>JSON.stringify([...i].sort()),[i]),ue=n.useMemo(()=>JSON.stringify([...a].sort()),[a]),he=n.useMemo(()=>JSON.stringify([...o].sort()),[o]),{data:B,isLoading:W}=E({queryKey:["products",me,ue,he,c,d,u,m,r],queryFn:async()=>{const e=(r-1)*N;console.log("🔍 Fetching products with filters:",{vendors:i,categories:a,brands:o,minPrice:c,maxPrice:d,search:u,page:r,sortBy:m});const{data:t,error:l}=await I.rpc("search_products_normalized",{search_term:u||null,vendor_filter:i.length>0?i:null,category_filter:a.length>0?a:null,brand_filter:o.length>0?o:null,min_price_filter:c?parseFloat(c):null,max_price_filter:d?parseFloat(d):null,sort_option:m,page_offset:e,page_limit:N});if(l)throw console.error("❌ Error fetching products:",l),l;return console.log(`✅ Fetched ${t.length} products`),{products:t}},staleTime:3e4,gcTime:12e4,refetchOnMount:!1,refetchOnWindowFocus:!1}),p=(B==null?void 0:B.products)||[];console.log("📦 Products loaded:",{count:p.length,filters:{selectedVendors:i,selectedCategories:a,selectedBrands:o,productNameSearch:u,sortBy:m}});const H=p.length===N;Me({currentPage:r,totalPages:999,baseUrl:k}),E({queryKey:["unique-brands"],queryFn:async()=>{const{data:e,error:t}=await I.rpc("get_unique_brands");if(t)throw t;return e.map(l=>l.brand)},staleTime:30*60*1e3,gcTime:60*60*1e3,refetchOnMount:!1,refetchOnWindowFocus:!1});const{data:L=[]}=E({queryKey:["unique-vendors"],queryFn:async()=>{console.log("🔍 Fetching vendors...");const{data:e,error:t}=await I.rpc("get_unique_store_names");if(t)throw console.error("❌ Error fetching vendors:",t),t;const l=e.map(je=>je.store_name);return console.log(`✅ Fetched ${l.length} vendors:`,l.slice(0,5)),l},staleTime:30*60*1e3,gcTime:60*60*1e3,refetchOnMount:!1,refetchOnWindowFocus:!1});console.log("🏪 Vendors loaded:",{count:L.length,selected:i,first5:L.slice(0,5)});const pe=n.useMemo(()=>[...new Set(p.map(e=>e.category).filter(e=>e!=null))].sort(),[p]),ge=n.useMemo(()=>[...new Set(p.map(e=>e.brand).filter(e=>e!=null))].sort(),[p]),G=pe.filter(e=>e.toLowerCase().includes(S.toLowerCase())),Z=ge.filter(e=>e.toLowerCase().includes(w.toLowerCase())),Q=L.filter(e=>e.toLowerCase().includes(_.toLowerCase())),X=e=>{U(t=>t.includes(e)?t.filter(l=>l!==e):[...t,e])},Y=e=>{K(t=>t.includes(e)?t.filter(l=>l!==e):[...t,e])},ee=e=>{A(t=>t.includes(e)?t.filter(l=>l!==e):[...t,e])},se=()=>{C(""),b(""),v(""),j(""),P(""),M(""),U([]),K([]),A([]),F(""),D("newest"),T(1)},T=e=>{const t=new URLSearchParams(h);e===1?t.delete("page"):t.set("page",e.toString()),R(t),J(e),window.scrollTo({top:0,behavior:"smooth"})};n.useEffect(()=>{const e=new URLSearchParams;u&&e.set("search",u),a.length>0&&e.set("category",a.join(",")),o.length>0&&e.set("brand",o.join(",")),i.length>0&&e.set("vendor",i.join(",")),c&&e.set("minPrice",c),d&&e.set("maxPrice",d),m!=="newest"&&e.set("sort",m),r>1&&e.set("page",r.toString());const t=e.toString(),l=h.toString();t!==l&&R(e,{replace:!0})},[u,a,o,i,c,d,m,r]),n.useEffect(()=>{r!==1&&J(1)},[c,d,u,a,o,i,m]);const fe=e=>{e.key==="Enter"&&j(x)};if(W)return s.jsxs("div",{className:"min-h-screen bg-background",children:[s.jsx(re,{}),s.jsx("div",{className:"container mx-auto px-4 py-8 flex items-center justify-center",children:s.jsx(Ce,{className:"h-8 w-8 animate-spin text-primary"})})]});const xe={"@context":"https://schema.org","@type":"CollectionPage",name:O,description:$,url:r===1?k:`${k}&page=${r}`,...r>1&&{isPartOf:{"@type":"WebSite",name:"Clyper",url:"https://clyper.ro"}},mainEntity:{"@type":"ItemList",numberOfItems:58e4,itemListElement:p.map((e,t)=>({"@type":"ListItem",position:(r-1)*N+t+1,url:`https://clyper.ro/product/${e.slug||e.id}`,name:e.name,item:{"@type":"Product",name:e.name,image:e.image_url,offers:{"@type":"Offer",price:e.price,priceCurrency:"RON",availability:"https://schema.org/InStock",url:e.affiliate_link}}}))}};return s.jsxs("div",{className:"min-h-screen bg-background",children:[s.jsx(re,{}),s.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(xe)}}),s.jsxs("div",{className:"container mx-auto px-4 py-8",children:[s.jsx(we,{items:a.length===1?[{label:"Acasă",href:"/"},{label:"Produse",href:"/products"},{label:a[0]}]:[{label:"Acasă",href:"/"},{label:"Produse"}]}),s.jsx("div",{className:"lg:hidden mb-4",children:s.jsx(_e,{minPrice:c,maxPrice:d,setMinPrice:C,setMaxPrice:b,categorySearch:S,setCategorySearch:P,filteredCategories:G,selectedCategories:a,toggleCategory:X,brandSearch:w,setBrandSearch:M,filteredBrands:Z,selectedBrands:o,toggleBrand:Y,vendorSearch:_,setVendorSearch:F,filteredVendors:Q,selectedVendors:i,toggleVendor:ee,clearAllFilters:se,activeFiltersCount:a.length+o.length+i.length+(c?1:0)+(d?1:0)})}),s.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-4 gap-6",children:[s.jsx("aside",{className:"hidden lg:block lg:col-span-1",children:s.jsx(ke,{children:s.jsxs(Oe,{className:"p-6 space-y-6",children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("h3",{className:"font-semibold text-lg",children:"Filtre"}),s.jsx(f,{variant:"ghost",size:"sm",onClick:se,className:"text-xs",children:"Șterge toate"})]}),s.jsxs("div",{children:[s.jsx("h3",{className:"font-semibold mb-4",children:"PREȚ (RON):"}),s.jsxs("div",{className:"flex gap-2",children:[s.jsx(g,{placeholder:"Minimum",type:"number",value:c,onChange:e=>C(e.target.value)}),s.jsx(g,{placeholder:"Max",type:"number",value:d,onChange:e=>b(e.target.value)})]})]}),s.jsxs("div",{children:[s.jsx("h3",{className:"font-semibold mb-4",children:"CATEGORII:"}),s.jsx(g,{placeholder:"caută după categorie",className:"mb-3",value:S,onChange:e=>P(e.target.value)}),s.jsx("div",{className:"space-y-3 max-h-64 overflow-y-auto",children:G.map(e=>s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(q,{id:e,checked:a.includes(e),onCheckedChange:()=>X(e)}),s.jsx("label",{htmlFor:e,className:"text-sm cursor-pointer",children:e})]},e))})]}),s.jsxs("div",{children:[s.jsx("h3",{className:"font-semibold mb-4",children:"BRAND:"}),s.jsx(g,{placeholder:"caută după nume brand",className:"mb-3",value:w,onChange:e=>M(e.target.value)}),s.jsx("div",{className:"space-y-3 max-h-64 overflow-y-auto",children:Z.map(e=>s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(q,{id:`brand-${e}`,checked:o.includes(e),onCheckedChange:()=>Y(e)}),s.jsx("label",{htmlFor:`brand-${e}`,className:"text-sm cursor-pointer",children:e})]},e))})]}),s.jsxs("div",{children:[s.jsx("h3",{className:"font-semibold mb-4",children:"VÂNZĂTOR:"}),s.jsx(g,{placeholder:"caută după vânzător",className:"mb-3",value:_,onChange:e=>F(e.target.value)}),s.jsx("div",{className:"space-y-3 max-h-64 overflow-y-auto",children:Q.map(e=>s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(q,{id:`vendor-${e}`,checked:i.includes(e),onCheckedChange:()=>ee(e)}),s.jsx("label",{htmlFor:`vendor-${e}`,className:"text-sm cursor-pointer",children:e})]},e))})]})]})})}),s.jsxs("main",{className:"lg:col-span-3",children:[s.jsxs("div",{className:"mb-6",children:[s.jsx("h1",{className:"text-2xl font-bold mb-2",children:a.length===1?a[0]:"Produse disponibile"}),s.jsxs("p",{className:"text-muted-foreground mb-4",children:[a.length===1?`Produse din categoria ${a[0]}`:"Peste 580,000 de produse disponibile"," • Pagina ",r]}),s.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[s.jsxs("div",{className:"flex gap-2 flex-1",children:[s.jsxs("div",{className:"relative flex-1",children:[s.jsx(g,{placeholder:"Caută după numele produsului...",value:x,onChange:e=>v(e.target.value),onKeyDown:fe,className:"w-full"}),x&&s.jsx(f,{variant:"ghost",size:"sm",className:"absolute right-2 top-1/2 -translate-y-1/2 h-7",onClick:()=>{v(""),j("")},children:"Șterge"})]}),s.jsxs(f,{onClick:()=>j(x),className:"shrink-0",children:[s.jsx(be,{className:"h-4 w-4 mr-2"}),"Caută"]})]}),s.jsxs($e,{value:m,onValueChange:D,children:[s.jsx(Be,{className:"w-full sm:w-[200px]",children:s.jsx(Le,{placeholder:"Sortează după"})}),s.jsxs(Te,{children:[s.jsx(y,{value:"newest",children:"Cele mai noi"}),s.jsx(y,{value:"price-asc",children:"Preț: Mic la Mare"}),s.jsx(y,{value:"price-desc",children:"Preț: Mare la Mic"}),s.jsx(y,{value:"name-asc",children:"Nume: A-Z"})]})]})]})]}),s.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-6",children:p.map(e=>s.jsx(Pe,{product:e},e.id))}),p.length===0&&!W&&s.jsx("div",{className:"text-center py-12",children:s.jsx("p",{className:"text-muted-foreground",children:"Nu au fost găsite produse."})}),(r>1||H)&&s.jsxs("nav",{className:"flex items-center justify-center gap-4 mt-8","aria-label":"Paginare produse",children:[s.jsxs(f,{variant:"outline",onClick:()=>T(r-1),disabled:r===1,"aria-label":"Pagina anterioară",className:"gap-2",children:[s.jsx(Fe,{className:"h-4 w-4"}),s.jsx("span",{className:"hidden sm:inline",children:"Anterior"})]}),s.jsxs("span",{className:"text-sm text-muted-foreground",children:["Pagina ",r]}),s.jsxs(f,{variant:"outline",onClick:()=>T(r+1),disabled:!H,"aria-label":"Pagina următoare",className:"gap-2",children:[s.jsx("span",{className:"hidden sm:inline",children:"Următorul"}),s.jsx(Ve,{className:"h-4 w-4"})]})]})]})]})]}),s.jsx(Se,{}),s.jsx(ve,{})]})};export{os as default};