1import{j as e}from"./vendor-motion-Bz-Qfxi2.js";import{j as ne,r as a}from"./vendor-react-C1aoCBoL.js";import{d as ce,s as c,f as l,M as N,U as oe}from"./index-__ztCQbY.js";import{D as M,a as I,b as O,c as B,d as K}from"./dialog-CgRaEe89.js";import{B as m}from"./button-_w00JV78.js";import{I as q}from"./input-Bf0yNUQ2.js";import{L as o}from"./label-BI0YNJvf.js";import{T as V}from"./textarea-CIOXr-cZ.js";import{S as F,a as Q,b as $,c as U,d as f}from"./select-9Z1ZuyQj.js";import{D as de,a as he,b as me,c as G}from"./dropdown-menu-CcnB745e.js";import{P as ue}from"./plus-CGhZDKUE.js";import{S as xe}from"./search-HYhQ5W76.js";import{L as H}from"./loader-circle-CglMY1ei.js";import{E as pe}from"./ellipsis-vertical-D21E5KKm.js";import{P as fe}from"./pencil-DFnAGZSj.js";import{T as je}from"./trash-2-B1r1f_6L.js";import{C as ge}from"./clock-T5KXhWHy.js";import"./vendor-radix-CuWXd84w.js";import"./vendor-recharts-bz2IR28z.js";import"./vendor-query-CUWq-kxt.js";import"./vendor-supabase-DejbfhW3.js";import"./chevron-up-CnDdDTa3.js";import"./chevron-right-BtJqP4gg.js";import"./circle-Ba1Mwj4j.js";const R={active:"bg-green-500/20 text-green-400",paused:"bg-yellow-500/20 text-yellow-400",archived:"bg-white/10 text-white/40"},we={active:"Aktiv",paused:"Pausiert",archived:"Archiviert"},$e=()=>{const{user:v,isAdmin:_}=ce(),J=ne(),[W,X]=a.useState([]),[Y,j]=a.useState(!0),[y,Z]=a.useState(""),[ee,u]=a.useState(!1),[C,g]=a.useState(!1),[r,d]=a.useState(null),[se,x]=a.useState(!1),[p,k]=a.useState(""),[S,P]=a.useState(""),[w,D]=a.useState(""),[te,ae]=a.useState([]),h=a.useCallback(async()=>{j(!0);const{data:s,error:i}=await c.from("content_projects").select("*").order("updated_at",{ascending:!1});if(i){l.error("Fehler beim Laden"),j(!1);return}const T=[...new Set((s||[]).filter(t=>t.customer_id).map(t=>t.customer_id))];let E={};if(T.length>0){const{data:t}=await c.from("profiles").select("id, user_id, full_name, company_name").in("user_id",T);if(t)for(const n of t)E[n.user_id]=n.company_name||n.full_name||"Kunde"}const A=(s||[]).map(t=>t.id);let b={};if(A.length>0){const{data:t}=await c.from("scheduled_posts").select("content_project_id").in("content_project_id",A);if(t)for(const n of t)n.content_project_id&&(b[n.content_project_id]=(b[n.content_project_id]||0)+1)}X((s||[]).map(t=>({...t,customer_name:E[t.customer_id]||"",post_count:b[t.id]||0}))),j(!1)},[]),z=a.useCallback(async()=>{if(!_)return;const{data:s}=await c.from("profiles").select("id, user_id, full_name, company_name").eq("is_active",!0).order("full_name");s&&ae(s)},[_]);a.useEffect(()=>{h(),z()},[h,z]);const re=async()=>{if(!p.trim()||!w){l.error("Titel und Kunde erforderlich");return}if(!v)return;g(!0);const{error:s}=await c.from("content_projects").insert({title:p.trim(),description:S.trim()||null,customer_id:w,created_by:v.id});if(s){l.error("Fehler: "+s.message),g(!1);return}l.success(`Projekt â${p.trim()}" erstellt!`),u(!1),k(""),P(""),D(""),g(!1),h()},ie=async s=>{if(!confirm("Content-Projekt wirklich löschen?"))return;const{error:i}=await c.from("content_projects").delete().eq("id",s);i?l.error(i.message):(l.success("Gelöscht"),h())},le=async()=>{if(!r)return;const{error:s}=await c.from("content_projects").update({title:r.title,description:r.description,status:r.status,customer_id:r.customer_id}).eq("id",r.id);s?l.error(s.message):(l.success("Aktualisiert"),x(!1),d(null),h())},L=W.filter(s=>{const i=y.toLowerCase();return s.title.toLowerCase().includes(i)||(s.customer_name||"").toLowerCase().includes(i)});return e.jsxs("div",{className:"h-full w-full bg-[hsl(222,84%,5%)] text-white flex flex-col overflow-hidden",children:[e.jsxs("div",{className:"border-b border-white/10 px-6 py-5 flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold",children:"Content Manager"}),e.jsx("p",{className:"text-white/40 text-sm mt-1",children:"Social-Media-Projekte pro Kunde verwalten"})]}),e.jsxs(m,{onClick:()=>u(!0),className:"bg-accent text-accent-foreground hover:bg-accent/90 gap-2",children:[e.jsx(ue,{size:16})," Neues Projekt"]})]}),e.jsx("div",{className:"px-6 py-4",children:e.jsxs("div",{className:"relative max-w-sm",children:[e.jsx(xe,{size:16,className:"absolute left-3 top-1/2 -translate-y-1/2 text-white/30"}),e.jsx("input",{value:y,onChange:s=>Z(s.target.value),placeholder:"Projekte durchsuchenâ¦",className:"w-full bg-white/5 border border-white/10 rounded-lg pl-10 pr-3 py-2.5 text-white text-sm focus:outline-none focus:border-accent/50 placeholder:text-white/30"})]})}),e.jsx("div",{className:"flex-1 overflow-y-auto px-6 pb-8 hub-scrollbar",children:Y?e.jsx("div",{className:"flex items-center justify-center py-20",children:e.jsx(H,{size:24,className:"animate-spin text-accent"})}):L.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-20 text-white/30",children:[e.jsx(N,{size:48,className:"mb-4 opacity-30"}),e.jsx("p",{className:"text-lg font-medium",children:"Noch keine Content-Projekte"}),e.jsx("p",{className:"text-sm mt-1",children:"Erstelle dein erstes Projekt, um loszulegen."})]}):e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 2xl:grid-cols-4 gap-
15",children:L.map(s=>e.jsxs("div",{className:"group bg-white/[0.03] border border-white/10 rounded-2xl overflow-hidden hover:border-accent/30 hover:bg-white/[0.05] transition-all cursor-pointer",onClick:()=>J(`/kundenbereich/content/${s.id}`),children:[e.jsxs("div",{className:"h-36 bg-gradient-to-br from-sky-500/10 to-purple-500/10 flex items-center justify-center relative",children:[s.thumbnail_url?e.jsx("img",{src:s.thumbnail_url,alt:s.title,className:"w-full h-full object-cover"}):e.jsx(N,{size:40,className:"text-white/10"}),e.jsx("span",{className:`absolute top-3 right-3 px-2 py-0.5 rounded-full text-[10px] font-bold uppercase tracking-wider ${R[s.status]||R.active}`,children:we[s.status]||s.status})]}),e.jsxs("div",{className:"p-4 space-y-2",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("h3",{className:"font-semibold text-white truncate",children:s.title}),s.description&&e.jsx("p",{className:"text-xs text-white/40 line-clamp-2",children:s.description})]}),e.jsxs(de,{children:[e.jsx(he,{onClick:i=>i.stopPropagation(),className:"p-1 rounded hover:bg-white/10 opacity-0 group-hover:opacity-100 transition-opacity shrink-0",children:e.jsx(pe,{size:16,className:"text-white/40"})}),e.jsxs(me,{align:"end",className:"bg-[hsl(222,40%,12%)] border-white/10 text-white",children:[e.jsxs(G,{onClick:i=>{i.stopPropagation(),d(s),x(!0)},className:"gap-2 hover:bg-white/5 cursor-pointer",children:[e.jsx(fe,{size:14})," Bearbeiten"]}),e.jsxs(G,{onClick:i=>{i.stopPropagation(),ie(s.id)},className:"gap-2 text-red-400 hover:bg-red-500/10 cursor-pointer",children:[e.jsx(je,{size:14})," Löschen"]})]})]})]}),e.jsxs("div",{className:"flex items-center gap-3 text-xs text-white/30 pt-1",children:[e.jsxs("span",{className:"flex items-center gap-1 text-accent/60",children:[e.jsx(oe,{size:12}),s.customer_name]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(N,{size:12}),s.post_count," Posts"]}),e.jsxs("span",{className:"flex items-center gap-1 ml-auto",children:[e.jsx(ge,{size:12}),new Date(s.updated_at).toLocaleDateString("de-DE")]})]})]})]},s.id))})}),e.jsx(M,{open:ee,onOpenChange:u,children:e.jsxs(I,{className:"bg-[hsl(222,40%,10%)] border-white/10 text-white max-w-md",children:[e.jsx(O,{children:e.jsx(B,{children:"Neues Content-Projekt"})}),e.jsxs("div",{className:"space-y-4 py-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"text-white/70",children:"Kunde *"}),e.jsxs(F,{value:w,onValueChange:D,children:[e.jsx(Q,{className:"bg-white/5 border-white/10 text-white",children:e.jsx($,{placeholder:"Kunde wählenâ¦"})}),e.jsx(U,{className:"bg-[hsl(222,40%,12%)] border-white/10 text-white",children:te.map(s=>e.jsx(f,{value:s.user_id,children:s.company_name||s.full_name||s.user_id},s.user_id))})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"text-white/70",children:"Titel *"}),e.jsx(q,{value:p,onChange:s=>k(s.target.value),placeholder:"z. B. Social Media Q2 2026",className:"bg-white/5 border-white/10 text-white"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"text-white/70",children:"Beschreibung"}),e.jsx(V,{value:S,onChange:s=>P(s.target.value),placeholder:"Optionalâ¦",className:"bg-white/5 border-white/10 text-white",rows:3})]})]}),e.jsxs(K,{children:[e.jsx(m,{variant:"ghost",onClick:()=>u(!1),className:"text-white/50",children:"Abbrechen"}),e.jsxs(m,{onClick:re,disabled:C,className:"bg-accent text-accent-foreground gap-2",children:[C&&e.jsx(H,{size:14,className:"animate-spin"})," Erstellen"]})]})]})}),e.jsx(M,{open:se,onOpenChange:x,children:e.jsxs(I,{className:"bg-[hsl(222,40%,10%)] border-white/10 text-white max-w-md",children:[e.jsx(O,{children:e.jsx(B,{children:"Projekt bearbeiten"})}),r&&e.jsxs("div",{className:"space-y-4 py-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"text-white/70",children:"Titel"}),e.jsx(q,{value:r.title,onChange:s=>d({...r,title:s.target.value}),className:"bg-white/5 border-white/10 text-white"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"text-white/70",children:"Beschreibung"}),e.jsx(V,{value:r.description||"",onChange:s=>d({...r,description:s.target.value}),className:"bg-white/5 border-white/10 text-white",rows:3})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"text-white/70",children:"Status"}),e.jsxs(F,{value:r.status,onValueChange:s=>d({...r,status:s}),children:[e.jsx(Q,{className:"bg-white/5 border-white/10 text-white",children:e.jsx($,{})}),e.jsxs(U,{className:"bg-[hsl(222,40%,12%)] border-white/10 text-white",children:[e.jsx(f,{value:"active",children:"Aktiv"}),e.jsx(f,{value:"paused",children:"Pausiert"}),e.jsx(f,{value:"archived",children:"Archiviert"})]})]})]})]}),e.jsxs(K,{children:[e.jsx(m,{variant:"ghost",onClick:()=>x(!1),className:"text-white/50",children:"Abbrechen"}),e.jsx(m,{onClick:le,className:"bg-accent text-accent-foreground",children:"Speichern"})]})]})})]})};export{$e as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.