1"use strict";(self.webpackChunkfrontend=self.webpackChunkfrontend||[]).push([[440],{24440(e,t,s){s.r(t),s.d(t,{default:()=>ka});var a=s(89379),l=s(5544),r=s(65043),i=s(63362),n=s(34345),d=s(19917),o=s(34537),c=s(23165),x=s(34379),m=s(44919),u=s(42489),p=s(35327),h=s(86376),b=s(56790),g=s(7118),f=s(73062),j=s(70764),v=s(9333),N=s(51419),y=s(20073),w=s(76140),A=s(50516),_=s(71360),k=s(37719),S=s(50797),C=s(36210),z=s(63944),E=s(35087),R=s(94651),T=s(26533),F=s(9855),D=s(35746),I=s(79989),L=s(91286),q=s(40614),P=s(56099),M=s(9493),O=s(20254),V=s(28646),B=s(75088),U=s(39292),W=(s(87095),s(84669)),H=s(76245),Y=s(7104),G=s(23946),K=s(42983),J=s(47879),Q=s(877),Z=s(86375),X=s(52185),$=s(6026),ee=s(80379),te=s(1725),se=s(54528),ae=s(37151),le=s(70579);const re=window.location.origin,ie={name:"",buy_price:"",sell_price:"",margin:"",analysis:""};function ne(e){var t;let s=e.headers,i=e.msg;const d=(0,r.useState)([]),o=(0,l.A)(d,2),c=o[0],x=o[1],m=(0,r.useState)(null),u=(0,l.A)(m,2),p=u[0],h=u[1],b=(0,r.useState)(!1),g=(0,l.A)(b,2),f=g[0],j=g[1],v=(0,r.useState)(null),N=(0,l.A)(v,2),w=N[0],_=N[1],k=(0,r.useState)({week_label:"",niches:[(0,a.A)({},ie)],bonus_tip:""}),S=(0,l.A)(k,2),z=S[0],E=S[1],R=async()=>{try{const e=await n.A.get("".concat(re,"/api/admin/niches"),{headers:s()});x(e.data)}catch(e){}},T=async()=>{j(!0);try{const e=await n.A.get("".concat(re,"/api/admin/niches/ai-current"),{headers:s()});h(e.data)}catch(e){}finally{j(!1)}};(0,r.useEffect)(()=>{R(),T()},[]);const L=(e,t,s)=>E(l=>(0,a.A)((0,a.A)({},l),{},{niches:l.niches.map((l,r)=>r===e?(0,a.A)((0,a.A)({},l),{},{[t]:s}):l)}));return(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsx)("h1",{className:"text-2xl font-bold text-white",style:{fontFamily:"Outfit, sans-serif"},children:"Niches priv\xe9es de la semaine"}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-emerald-500/20 rounded-2xl p-5 space-y-4",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2",children:[(0,le.jsx)(y.A,{size:16,className:"text-emerald-400"}),(0,le.jsx)("h3",{className:"text-white font-bold",children:"Niches IA \u2014 Semaine en cours"})]}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsxs)("button",{onClick:T,disabled:f,className:"flex items-center gap-1.5 px-3 py-1.5 rounded-xl bg-slate-800 border border-white/8 text-slate-400 hover:text-white text-xs transition-all",children:[(0,le.jsx)(A.A,{size:12,className:f?"animate-spin":""})," Actualiser"]}),(0,le.jsxs)("button",{onClick:async()=>{try{await n.A.post("".concat(re,"/api/admin/niches/generate-ai"),{},{headers:s()}),i("Cache supprim\xe9 \u2014 les niches IA seront r\xe9g\xe9n\xe9r\xe9es \xe0 la prochaine visite membre"),h(null)}catch(e){i("Erreur lors de la r\xe9g\xe9n\xe9ration","error")}},className:"flex items-center gap-1.5 px-3 py-1.5 rounded-xl bg-red-600/10 border border-red-500/20 text-red-400 hover:bg-red-600/20 text-xs transition-all",children:[(0,le.jsx)(A.A,{size:12})," R\xe9g\xe9n\xe9rer les niches IA"]})]})]}),(null===p||void 0===p||null===(t=p.niches)||void 0===t?void 0:t.length)>0?(0,le.jsxs)("div",{className:"space-y-3",children:[(0,le.jsxs)("p",{className:"text-slate-500 text-xs",children:[p.week_label," \xb7 Cl\xe9 : ",p.week_key]}),p.week_insight&&(0,le.jsx)("div",{className:"bg-emerald-500/5 border border-emerald-500/15 rounded-xl p-3",children:(0,le.jsx)("p",{className:"text-emerald-300 text-xs",children:p.week_insight})}),(0,le.jsx)("div",{className:"grid md:grid-cols-3 gap-3",children:p.niches.map((e,t)=>(0,le.jsxs)("div",{className:"bg-slate-800/50 border border-white/5 rounded-xl p-3 space-y-1.5",children:[(0,le.jsx)("p",{className:"text-white font-semibold text-sm",children:e.brand}),(0,le.jsx)("p",{className:"text-slate-400 text-xs",children:e.product}),(0,le.jsxs)("div",{className:"flex gap-2 text-xs",children:[(0,le.jsxs)("span",{className:"text-slate-500",children:["Achat: ",(0,le.jsx)("span",{className:"text-amber-400",children:e.buy_price})]}),(0,le.jsxs)("span",{className:"text-slate-500",children:["Vente: ",(0,le.jsx)("span",{className:"text-green-400",children:e.sell_price})]}),(0,le.jsx)("span",{className:"text-emerald-400 font-bold",children:e.margin})]}),e.tip&&(0,le.jsx)("p",{className:"text-slate-500 text-xs italic",children:e.tip})]},t))})]}):(0,le.jsx)("p",{className:"text-slate-500 text-sm",children:f?"Chargement...":"Aucune niche IA cette semaine. Auto-g\xe9n\xe9r\xe9es lors de la prochaine visite d'un membre."})]}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-amber-500/20 rounded-2xl p-5 space-y-4",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsx)("h3",{className:"text-white font-bold",children:w?"Modifier les niches":"Publier de nouvelles niches"}),w&&(0,le.jsx)("button",{onClick:()=>{_(null),E({week_label:"",niches:[(0,a.A)({},ie)],bonus_tip:""})},className:"text-slate-400 hover:text-white text-xs transition-colors",children:"Annuler modification"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Semaine *"}),(0,le.jsx)("input",{value:z.week_label,onChange:e=>E(t=>(0,a.A)((0,a.A)({},t),{},{week_label:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",placeholder:"ex: Semaine du 3 mars 2025"})]}),z.niches.map((e,t)=>(0,le.jsxs)("div",{className:"bg-slate-800/50 rounded-xl p-4 space-y-3 border border-white/5",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsxs)("span",{className:"text-white font-semibold text-sm",children:["Niche #",t+1]}),t>0&&(0,le.jsx)("button",{onClick:()=>E(e=>(0,a.A)((0,a.A)({},e),{},{niches:e.niches.filter((e,s)=>s!==t)})),className:"text-red-400 text-xs",children:"Supprimer"})]}),(0,le.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3",children:[["name","Produit *","ex: Levi's 501"],["buy_price","Prix achat","25\u20ac"],["sell_price","Prix vente","80\u20ac"],["margin","Marge","x3.2"]].map(s=>{let a=(0,l.A)(s,3),r=a[0],i=a[1],n=a[2];return(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:i}),(0,le.jsx)("input",{value:e[r],onChange:e=>L(t,r,e.target.value),className:"w-full bg-slate-800 border border-white/8 rounded-lg px-3 py-1.5 text-white text-xs",placeholder:n})]},r)})}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Analyse rapide"}
1),(0,le.jsx)("input",{value:e.analysis,onChange:e=>L(t,"analysis",e.target.value),className:"w-full bg-slate-800 border border-white/8 rounded-lg px-3 py-1.5 text-white text-xs",placeholder:"Forte demande en Q4..."})]})]},t)),(0,le.jsx)("button",{onClick:()=>E(e=>(0,a.A)((0,a.A)({},e),{},{niches:[...e.niches,(0,a.A)({},ie)]})),className:"text-amber-400 text-sm hover:underline",children:"+ Ajouter une niche"}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Conseil bonus"}),(0,le.jsx)("textarea",{value:z.bonus_tip,onChange:e=>E(t=>(0,a.A)((0,a.A)({},t),{},{bonus_tip:e.target.value})),rows:2,className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm resize-none"})]}),(0,le.jsx)("button",{onClick:async()=>{try{w?(await n.A.put("".concat(re,"/api/admin/niches/").concat(w),z,{headers:s()}),i("Niches mises \xe0 jour"),_(null)):(await n.A.post("".concat(re,"/api/admin/niches"),z,{headers:s()}),i("Niches publi\xe9es + membres notifi\xe9s")),E({week_label:"",niches:[(0,a.A)({},ie)],bonus_tip:""}),R()}catch(l){var e,t;i((null===(e=l.response)||void 0===e||null===(t=e.data)||void 0===t?void 0:t.detail)||"Erreur","error")}},"data-testid":"publish-niches-btn",className:"px-5 py-2 rounded-xl text-sm font-semibold transition-all flex items-center gap-2 ".concat(w?"bg-blue-600/20 border border-blue-500/20 text-blue-400 hover:bg-blue-600/30":"bg-amber-600/20 border border-amber-500/20 text-amber-400 hover:bg-amber-600/30"),children:w?(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)(C.A,{size:13}
1)," Mettre \xe0 jour"]}):(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)(D.A,{size:13})," Publier + notifier"]})})]}),c.length>0&&(0,le.jsxs)("div",{className:"space-y-3",children:[(0,le.jsx)("h3",{className:"text-white font-semibold",children:"Historique"}),c.map(e=>{var t;return(0,le.jsxs)("div",{className:"bg-slate-900 border rounded-2xl p-4 flex items-center justify-between gap-4 ".concat(w===e.id?"border-blue-500/30":"border-white/5"),children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-white font-semibold text-sm",children:e.week_label}),(0,le.jsxs)("p",{className:"text-slate-400 text-xs",children:[(null===(t=e.niches)||void 0===t?void 0:t.length)||0," niches \xb7 ",new Date(e.published_at).toLocaleDateString("fr-FR")]})]}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsx)("button",{onClick:()=>(e=>{var t;E({week_label:e.week_label,niches:null!==(t=e.niches)&&void 0!==t&&t.length?e.niches:[(0,a.A)({},ie)],bonus_tip:e.bonus_tip||""}),_(e.id),window.scrollTo({top:0,behavior:"smooth"})})(e),"data-testid":"edit-niche-".concat(e.id),className:"p-2 rounded-lg bg-blue-600/10 border border-blue-500/10 text-blue-400 hover:bg-blue-600/20 transition-all",children:(0,le.jsx)(I.A,{size:13})}),(0,le.jsx)("button",{onClick:()=>(async e=>{await n.A.delete("".concat(re,"/api/admin/niches/").concat(e),{headers:s()}),i("Entr\xe9e supprim\xe9e"),R()})(e.id),className:"p-2 rounded-lg bg-red-600/10 text-red-400 hover:bg-red-600/20 transition-all",children:(0,le.jsx)(F.A,{size:13})})]})]},e.id)})]})]})}const de=window.location.origin,oe=["Jeans & Denim","Sweatshirts & Hoodies","T-shirts & Tops","Vestes & Manteaux","Sneakers","Accessoires","Robes & Jupes","Pantalons & Shorts","Maillots de sport","Autres"],ce={name:"",category:"Jeans & Denim",buy_price_min:"",buy_price_max:"",sell_price_min:"",sell_price_max:"",demand:"Forte",season:"",source_tips:""};function xe(e){let t=e.headers,s=e.msg;const i=(0,r.useState)([]),d=(0,l.A)(i,2),o=d[0],c=d[1],x=(0,r.useState)((0,a.A)({},ce)),m=(0,l.A)(x,2),u=m[0],p=m[1],h=(0,r.useState)(null),b=(0,l.A)(h,2),g=b[0],f=b[1],j=(0,r.useState)(!1),v=(0,l.A)(j,2),N=v[0],y=v[1],w=async()=>{try{const e=await n.A.get("".concat(de,"/api/products/admin"),{headers:t()});c(e.data)}catch(e){}};(0,r.useEffect)(()=>{w()},[]);return(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsxs)("h1",{className:"text-2xl font-bold text-white",style:{fontFamily:"Outfit, sans-serif"},children:["Base de donn\xe9es produits ",(0,le.jsxs)("span",{className:"text-slate-500 text-base font-normal ml-1",children:["(",o.length,")"]})]}),(0,le.jsxs)("button",{onClick:()=>{y(!N),f(null),p((0,a.A)({},ce))},className:"flex items-center gap-1.5 bg-blue-600/20 border border-blue-500/30 text-blue-400 hover:bg-blue-600/30 px-4 py-2 rounded-xl text-sm font-semibold transition-all",children:[(0,le.jsx)(_.A,{size:14})," Ajouter un produit"]})]}),N&&(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl p-5 space-y-4",children:[(0,le.jsx)("h2",{className:"text-white font-bold text-sm",children:g?"Modifier le produit":"Nouveau produit rentable"}),(0,le.jsxs)("div",{className:"grid md:grid-cols-2 gap-4",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Nom du produit *"}),(0,le.jsx)("input",{value:u.name,onChange:e=>p(t=>(0,a.A)((0,a.A)({},t),{},{name:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",placeholder:"Ex: Levi's 501 Vintage"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Cat\xe9gorie"}),(0,le.jsx)("select",{value:u.category,onChange:e=>p(t=>(0,a.A)((0,a.A)({},t),{},{category:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",children:oe.map(e=>(0,le.jsx)("option",{children:e},e))})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Achat min \u2192 max (\u20ac)"}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsx)("input",{type:"number",value:u.buy_price_min,onChange:e=>p(t=>(0,a.A)((0,a.A)({},t),{},{buy_price_min:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",placeholder:"Min"}),(0,le.jsx)("input",{type:"number",value:u.buy_price_max,onChange:e=>p(t=>(0,a.A)((0,a.A)({},t),{},{buy_price_max:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",placeholder:"Max"})]})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Revente min \u2192 max (\u20ac)"}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsx)("input",{type:"number",value:u.sell_price_min,onChange:e=>p(t=>(0,a.A)((0,a.A)({},t),{},{sell_price_min:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",placeholder:"Min"}),(0,le.jsx)("input",{type:"number",value:u.sell_price_max,onChange:e=>p(t=>(0,a.A)((0,a.A)({},t),{},{sell_price_max:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",placeholder:"Max"})]})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Demande"}),(0,le.jsx)("select",{value:u.demand,onChange:e=>p(t=>(0,a.A)((0,a.A)({},t),{},{demand:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",children:["Forte","Moyenne","Faible"].map(e=>(0,le.jsx)("option",{children:e},e))})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Saisonnalit\xe9"}),(0,le.jsx)("input",{value:u.season,onChange:e=>p(t=>(0,a.A)((0,a.A)({},t),{},{season:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",placeholder:"Ex: Toute l'ann\xe9e, Hiver..."})]}),(0,le.jsxs)("div",{className:"md:col-span-2",children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Conseils sourcing"}),(0,le.jsx)("textarea",{value:u.source_tips,onChange:e=>p(t=>(0,a.A)((0,a.A)({},t),{},{source_tips:e.target.value})),rows:2,className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm resize-none",placeholder:"O\xf9 trouver ce produit..."})]})]}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsxs)("button",{onClick:async()=>{try{const e=(0,a.A)((0,a.A)({},u),{},{buy_price_min:+u.buy_price_min,buy_price_max:+u.buy_price_max,sell_price_min:+u.sell_price_min,sell_price_max:+u.sell_price_max});g?(await n.A.put("".concat(de,"/api/products/admin/").concat(g),e,{headers:t()}),s("Produit mis \xe0 jour")):(await n.A.post("".concat(de,"/api/products/admin"),e,{headers:t()}),s("Produit ajout\xe9")),p((0,a.A)({},ce)),f(null),y(!1),w()}catch(r){var e,l;s((null===(e=r.response)||void 0===e||null===(l=e.data)||void 0===l?void 0:l.detail)||"Erreur","error")}},className:"bg-blue-600/20 border border-blue-500/20 text-blue-400 hover:bg-blue-600/30 px-5 py-2 rounded-xl text-sm font-semibold transition-all flex items-center gap-2",children:[(0,le.jsx)(C.A,{size:13}
1)," ",g?"Mettre \xe0 jour":"Ajouter"]}),(0,le.jsx)("button",{onClick:()=>{y(!1),f(null)},className:"text-slate-400 hover:text-white px-4 py-2 text-sm transition-colors",children:"Annuler"})]})]}),(0,le.jsxs)("div",{className:"space-y-3",children:[o.map(e=>(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl p-4 flex items-start gap-4",children:[(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[(0,le.jsx)("p",{className:"text-white font-semibold text-sm",children:e.name}),(0,le.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-full bg-slate-800 text-slate-400 border border-white/8",children:e.category}),(0,le.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-full border font-semibold ".concat("Forte"===e.demand?"text-green-400 bg-green-500/10 border-green-500/20":"Moyenne"===e.demand?"text-amber-400 bg-amber-500/10 border-amber-500/20":"text-slate-400 bg-slate-500/10 border-slate-500/20"),children:e.demand})]}),(0,le.jsxs)("p",{className:"text-slate-400 text-xs",children:["Achat: ",e.buy_price_min,"\u20ac-",e.buy_price_max,"\u20ac \xb7 Revente: ",e.sell_price_min,"\u20ac-",e.sell_price_max,"\u20ac \xb7 Marge: ",e.margin_pct]}),e.source_tips&&(0,le.jsx)("p",{className:"text-slate-500 text-xs mt-1 line-clamp-1",children:e.source_tips})]}),(0,le.jsxs)("div",{className:"flex gap-2 flex-shrink-0",children:[(0,le.jsx)("button",{onClick:()=>(e=>{f(e.id),p({name:e.name,category:e.category,buy_price_min:e.buy_price_min,buy_price_max:e.buy_price_max,sell_price_min:e.sell_price_min,sell_price_max:e.sell_price_max,demand:e.demand,season:e.season||"",source_tips:e.source_tips||""}),y(!0)})(e),className:"p-1.5 rounded-lg bg-blue-600/10 text-blue-400 hover:bg-blue-600/20 transition-all",children:(0,le.jsx)(I.A,{size:12})}),(0,le.jsx)("button",{onClick:()=>(async e=>{window.confirm("Supprimer ce produit ?")&&(await n.A.delete("".concat(de,"/api/products/admin/").concat(e),{headers:t()}),s("Produit supprim\xe9"),w())})(e.id),className:"p-1.5 rounded-lg bg-red-600/10 text-red-400 hover:bg-red-600/20 transition-all",children:(0,le.jsx)(F.A,{size:12})})]})]},e.id)),0===o.length&&(0,le.jsx)("p",{className:"text-slate-500 text-sm",children:"Aucun produit dans la base."})]})]})}var me=s(42043);const ue=window.location.origin,pe=e=>e?e.startsWith("starter")?"starter":e.startsWith("pro")?"pro":e.startsWith("elite")?"elite":["free_test",""].includes(e)?"free":["bot_starter","tools","lp_tools","bot","trial","starter_live"].includes(e)?"starter":["methode","formation","lp_ecosystem"].includes(e)?"pro":["mini_elite","all_access","lp_premium"].includes(e)?"elite":"free":"free",he={free:"Free",starter:"Starter",pro:"Pro",elite:"Elite"},be={free:"text-slate-400 border-slate-500/30 bg-slate-600/10",starter:"text-sky-400 border-sky-500/30 bg-sky-600/10",pro:"text-teal-400 border-teal-500/30 bg-teal-600/10",elite:"text-indigo-400 border-indigo-500/30 bg-indigo-600/10"},ge=[{id:"member",label:"Membre",color:"text-blue-400 border-blue-500/30 bg-blue-600/10"},{id:"affiliate",label:"Affili\xe9",color:"text-purple-400 border-purple-500/30 bg-purple-600/10"},{id:"moderator",label:"Mod\xe9rateur",color:"text-green-400 border-green-500/30 bg-green-600/10"},{id:"admin",label:"Admin",color:"text-amber-400 border-amber-500/30 bg-amber-600/10"}];function fe(e){let t=e.headers,s=e.msg;const i=(0,r.useState)([]),d=(0,l.A)(i,2),o=d[0],c=d[1],x=(0,r.useState)(null),m=(0,l.A)(x,2),u=m[0],p=m[1],h=(0,r.useState)({plan:"free",roles:[],stripe_customer_id:"",credits_permanent:0,credits_monthly:0}),b=(0,l.A)(h,2),g=b[0],f=b[1],j=(0,r.useState)(!1),v=(0,l.A)(j,2),N=v[0],y=v[1],w=(0,r.useState)({text:"",type:""}),A=(0,l.A)(w,2),_=A[0],k=A[1],S=async()=>{try{const e=await n.A.get("".concat(ue,"/api/admin/members"),{headers:t()});c(e.data)}catch(e){}};(0,r.useEffect)(()=>{S()},[]);return(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsxs)("h1",{className:"text-2xl font-bold text-white",style:{fontFamily:"Outfit, sans-serif"},children:["Gestion des membres ",(0,le.jsxs)("span",{className:"text-slate-500 text-base font-normal ml-1",children:["(",o.length,")"]})]}),u&&(0,le.jsx)("div",{className:"fixed inset-0 bg-black/70 z-50 flex items-center justify-center p-4",onClick:()=>{N||p(null)},children:(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/10 rounded-2xl p-6 w-full max-w-md
1space-y-5",onClick:e=>e.stopPropagation(),children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsx)("h2",{className:"text-white font-bold text-lg",style:{fontFamily:"Outfit, sans-serif"},children:"Modifier le membre"}),(0,le.jsx)("button",{onClick:()=>{N||p(null)},className:"text-slate-400 hover:text-white",children:(0,le.jsx)(q.A,{size:18})})]}),(0,le.jsx)("div",{className:"bg-slate-800/60 rounded-xl px-4 py-3",children:(0,le.jsx)("p",{className:"text-slate-300 text-sm font-semibold truncate",children:u.email})}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-sm mb-2 block font-medium",children:"Plan"}),(0,le.jsx)("div",{className:"grid grid-cols-2 gap-2",children:[{value:"free",label:"Free",color:"text-slate-400"},{value:"starter",label:"Starter",color:"text-sky-400"},{value:"pro",label:"Pro",color:"text-teal-400"},{value:"elite",label:"Elite",color:"text-indigo-400"}].map(e=>(0,le.jsxs)("button",{onClick:()=>f(t=>(0,a.A)((0,a.A)({},t),{},{plan:e.value})),"data-testid":"plan-option-".concat(e.value),className:"px-3 py-2.5 rounded-xl text-sm font-semibold border transition-all ".concat(g.plan===e.value?"bg-white/10 border-white/30 text-white shadow-lg":"border-white/8 ".concat(e.color," hover:border-white/20")),children:[g.plan===e.value&&"\u2713 ",e.label]},e.value))})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-sm mb-2 block font-medium",children:"R\xf4les"}),(0,le.jsx)("div",{className:"flex flex-wrap gap-2",children:ge.map(e=>(0,le.jsxs)("button",{onClick:()=>(e=>f(t=>(0,a.A)((0,a.A)({},t),{},{roles:t.roles.includes(e)?t.roles.filter(t=>t!==e):[...t.roles,e]})))(e.id),"data-testid":"role-toggle-".concat(e.id),className:"px-3 py-1.5 rounded-full text-xs font-semibold border transition-all ".concat(g.roles.includes(e.id)?e.color:"border-white/8 text-slate-500 hover:border-white/20 hover:text-slate-300"),children:[g.roles.includes(e.id)?"\u2713 ":"",e.label]},e.id))})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-sm mb-2 block font-medium",children:"Stripe Customer ID"}),(0,le.jsx)("input",{type:"text",value:g.stripe_customer_id,onChange:e=>f(t=>(0,a.A)((0,a.A)({},t),{},{stripe_customer_id:e.target.value})),placeholder:"cus_...",className:"w-full bg-slate-900 border border-white/10 rounded-xl px-4 py-2.5 text-white text-sm focus:border-blue-500/50 outline-none"})]}),(0,le.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-sm mb-2 block font-medium",children:"Cr\xe9dits Permanents"}),(0,le.jsx)("input",{type:"number",value:g.credits_permanent,onChange:e=>f(t=>(0,a.A)((0,a.A)({},t),{},{credits_permanent:e.target.value})),className:"w-full bg-slate-900 border border-white/10 rounded-xl px-4 py-2.5 text-white text-sm focus:border-blue-500/50 outline-none"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-sm mb-2 block font-medium",children:"Cr\xe9dits Mensuels"}),(0,le.jsx)("input",{type:"number",value:g.credits_monthly,onChange:e=>f(t=>(0,a.A)((0,a.A)({},t),{},{credits_monthly:e.target.value})),className:"w-full bg-slate-900 border border-white/10 rounded-xl px-4 py-2.5 text-white text-sm focus:border-blue-500/50 outline-none"})]})]}),_.text&&(0,le.jsxs)("div",{"data-testid":"member-save-feedback",className:"px-4 py-3 rounded-xl text-sm font-semibold flex items-center gap-2 ".concat("error"===_.type?"bg-red-600/15 border border-red-500/30 text-red-400":"bg-green-600/15 border border-green-500/30 text-green-400"),children:["error"===_.type?(0,le.jsx)(q.A,{size:14}):(0,le.jsx)(C.A,{size:14}),_.text]}),(0,le.jsxs)("div",{className:"flex gap-3 pt-1",children:[(0,le.jsx)("button",{onClick:async()=>{if(u&&!N){y(!0),k({text:"",type:""});try{await Promise.all([n.A.put("".concat(ue,"/api/admin/members/").concat(u.id,"/plan?plan=").concat(g.plan),{},{headers:t()}),n.A.put("".concat(ue,"/api/admin/members/").concat(u.id,"/roles"),{roles:g.roles},{headers:t()}),n.A.put("".concat(ue,"/api/admin/members/").concat(u.id,"/stripe"),{stripe_customer_id:g.stripe_customer_id},{headers:t()}),n.A.put("".concat(ue,"/api/admin/members/").concat(u.id,"/credits"),{credits_permanent:Number(g.credits_permanent),credits_monthly:Number(g.credits_monthly)},{headers:t()})]),c(e=>e.map(e=>e.id===u.id?(0,a.A)((0,a.A)({},e),{},{plan:g.plan,roles:g.roles,stripe_customer_id:g.stripe_customer_id,credits_permanent:Number(g.credits_permanent),credits_monthly:Number(g.credits_monthly)}):e)),k({text:"Membre mis \xe0 jour avec succ\xe8s !",type:"success"}),setTimeout(()=>{p(null),s("Membre mis \xe0 jour \u2713")},900)}catch(r){var e,l;const t=(null===(e=r.response)||void 0===e||null===(l=e.data)||void 0===l?void 0:l.detail)||r.message||"Erreur inconnue";k({text:"Erreur : ".concat(t),type:"error"})}finally{y(!1)}}},"data-testid":"save-member-btn",disabled:N,className:"flex-1 bg-blue-600/20 border border-blue-500/30 text-blue-400 hover:bg-blue-600/30 disabled:opacity-60 disabled:cursor-not-allowed py-2.5 rounded-xl text-sm font-semibold transition-all flex items-center justify-center gap-2",children:N?(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)(me.A,{size:14,className:"animate-spin"})," Enregistrement\u2026"]}):(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)(C.A,{size:14})," Enregistrer"]})}),(0,le.jsx)("button",{onClick:()=>{N||p(null)},className:"px-4 py-2.5 border border-white/8 text-slate-400 hover:text-white rounded-xl text-sm transition-all disabled:opacity-50",disabled:N,children:"Annuler"})]})]})}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl overflow-hidden",children:[(0,le.jsxs)("table",{className:"w-full",children:[(0,le.jsx)("thead",{children:(0,le.jsxs)("tr",{className:"border-b border-white/5",children:[(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3",children:"Email"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3 hidden md:table-cell",children:"R\xf4les"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3 hidden md:table-cell",children:"Plan"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3 hidden lg:table-cell",children:"Inscrit le"}),(0,le.jsx)("th",{className:"px-4 py-3 text-right text-slate-500 text-xs font-semibold",children:"Actions"})]})}),(0,le.jsx)("tbody",{children:o.map(e=>(0,le.jsxs)("tr",{className:"border-b border-white/5 last:border-0 hover:bg-white/2",children:[(0,le.jsx)("td",{className:"px-4 py-3 text-white text-sm",children:e.email}),(0,le.jsx)("td",{className:"px-4 py-3 hidden md:table-cell",children:(0,le.jsx)("div",{className:"flex gap-1 flex-wrap",children:(0,ae.VM)(e).map(e=>{const t=ge.find(t=>
1t.id===e);return(0,le.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-full border font-medium ".concat((null===t||void 0===t?void 0:t.color)||"text-slate-300 border-white/8 bg-white/5"),children:e},e)})})}),(0,le.jsx)("td",{className:"px-4 py-3 hidden md:table-cell",children:(()=>{const t=pe(e.plan);return(0,le.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-full border font-bold ".concat(be[t]),children:he[t]})})()}),(0,le.jsx)("td",{className:"px-4 py-3 text-slate-400 text-xs hidden lg:table-cell",children:e.created_at?new Date(e.created_at).toLocaleDateString("fr-FR"):"\u2014"}),(0,le.jsx)("td",{className:"px-4 py-3",children:(0,le.jsxs)("div",{className:"flex items-center gap-2 justify-end",children:[(0,le.jsx)("button",{onClick:()=>(e=>{p(e),k({text:"",type:""}),f({plan:pe(e.plan),roles:(0,ae.VM)(e),stripe_customer_id:e.stripe_customer_id||"",credits_permanent:e.credits_permanent||0,credits_monthly:e.credits_monthly||0})})(e),"data-testid":"edit-member-".concat(e.id),className:"p-1.5 rounded-lg text-blue-400 hover:bg-blue-500/10 transition-all",children:(0,le.jsx)(I.A,{size:12})}),(0,le.jsx)("button",{onClick:()=>(async e=>{if(window.confirm("Supprimer ce membre d\xe9finitivement ?"))try{await n.A.delete("".concat(ue,"/api/admin/members/").concat(e),{headers:t()}),s("Membre supprim\xe9"),S()}catch(a){s("Erreur suppression","error")}})(e.id),className:"p-1.5 rounded-lg text-red-400 hover:bg-red-500/10 transition-all",children:(0,le.jsx)(F.A,{size:12})})]})})]},e.id))})]}),0===o.length&&(0,le.jsx)("p",{className:"text-slate-500 text-sm p-4",children:"Aucun membre."})]})]})}const je=window.location.origin,ve={title:"",category:"Sneakers",description:"",is_published:!0,niches:[{brand:"",product_type:"",avg_sell_price:"",buy_price:"",profit:"",potential:"\xc9lev\xe9",tip:""}]},Ne=["Sneakers","Jeans & Denim","Sweatshirts & Hoodies","Vestes & Manteaux","T-shirts & Tops","Sacs & Maroquinerie","V\xeatements Femme","Autres"];function ye(e){let t=e.headers,s=e.msg;const i=(0,r.useState)("history"),d=(0,l.A)(i,2),c=d[0],x=d[1],m=(0,r.useState)([]),u=(0,l.A)(m,2),p=u[0],h=u[1],b=(0,r.useState)([]),g=(0,l.A)(b,2),f=g[0],j=g[1],v=(0,r.useState)(!1),N=(0,l.A)(v,2),w=N[0],k=N[1],S=(0,r.useState)(null),z=(0,l.A)(S,2),T=z[0],D=z[1],L=(0,r.useState)((0,a.A)({},ve)),q=(0,l.A)(L,2),P=q[0],M=q[1],O=async()=>{try{const e=await n.A.get("".concat(je,"/api/admin/reselltrack"),{headers:t()});h(e.data)}catch(e){}},V=async()=>{try{const e=await n.A.get("".concat(je,"/api/admin/reselltrack-reports"),{headers:t()});j(e.data)}catch(e){}};(0,r.useEffect)(()=>{O(),V()},[]);const B=(e,t,s)=>M(l=>(0,a.A)((0,a.A)({},l),{},{niches:l.niches.map((l,r)=>r===e?(0,a.A)((0,a.A)({},l),{},{[t]:s}):l)}));return(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsx)("h1",{className:"text-2xl font-bold text-white",style:{fontFamily:"Outfit, sans-serif"},children:"VINTYTRACK Admin"}),(0,le.jsx)("div",{className:"flex gap-2 border-b border-white/5",children:[{id:"history",label:"Historique des analyses",icon:o.A},{id:"reports",label:"Rapports manuels",icon:y.A}].map(e=>(0,le.jsxs)("button",{onClick:()=>x(e.id),className:"flex items-center gap-2 px-4 py-2.5 text-sm font-semibold border-b-2 transition-all ".concat(c===e.id?"border-amber-400 text-amber-400":"border-transparent text-slate-400 hover:text-white"),children:[(0,le.jsx)(e.icon,{size:14}),e.label]},e.id))}),"history"===c&&(0,le.jsxs)("div",{className:"space-y-4",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsxs)("p",{className:"text-slate-400 text-sm",children:[p.length," analyse(s) g\xe9n\xe9r\xe9e(s) par les membres"]}),(0,le.jsxs)("button",{onClick:O,className:"flex items-center gap-1.5 px-3 py-1.5 rounded-xl bg-slate-800 border border-white/8 text-slate-400 hover:text-white text-xs transition-all",children:[(0,le.jsx)(A.A,{size:12})," Actualiser"]})]}),0===p.length?(0,le.jsxs)("div",{className:"text-center py-12 text-slate-500 bg-slate-900 rounded-2xl border border-white/5",children:[(0,le.jsx)(o.A,{size:32,className:"mx-auto mb-3 opacity-30"}),(0,le.jsx)("p",{children:"Aucune analyse VINTYTRACK encore g\xe9n\xe9r\xe9e par les membres."})]}):(0,le.jsx)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl overflow-hidden",children:(0,le.jsxs)("table",{className:"w-full",children:[(0,le.jsx)("thead",{children:(0,le.jsxs)("tr",{className:"border-b border-white/5",children:[(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3",children:"Membre"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3",children:"Cat\xe9gorie"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3 hidden md:table-cell",children:"Prix min"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3 hidden md:table-cell",children:"Niches"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3 hidden lg:table-cell",children:"Date"})]})}),(0,le.jsx)("tbody",{children:p.map(e=>(0,le.jsxs)("tr",{className:"border-b border-white/5 last:border-0 hover:bg-white/2",children:[(0,le.jsx)("td",{className:"px-4 py-3 text-slate-300 text-sm",children:e.user_email}),(0,le.jsx)("td",{className:"px-4 py-3",children:(0,le.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-full bg-emerald-600/10 text-emerald-400 border border-emerald-500/20",children:e.category})}),(0,le.jsxs)("td",{className:"px-4 py-3 text-amber-400 text-sm hidden md:table-cell",children:[e.min_price,"\u20ac+"]}),(0,le.jsxs)("td",{className:"px-4 py-3 text-slate-400 text-sm hidden md:table-cell",children:[e.niches_count," niches"]}),(0,le.jsx)("td",{className:"px-4 py-3 text-slate-500 text-xs hidden lg:table-cell",children:new Date(e.created_at).toLocaleDateString("fr-FR")})]},e.id))})]})})]}),"reports"===c&&(0,le.jsxs)("div",{className:"space-y-4",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsx)("p",{className:"text-slate-400 text-sm",children:"Rapports manuels visibles par les membres"}),(0,le.jsxs)("button",{onClick:()=>{k(!w),D(null),M((0,a.A)({},ve))},className:"flex items-center gap-1.5 bg-emerald-600/15 border border-emerald-500/20 text-emerald-400 hover:bg-emerald-600/25 px-4 py-2 rounded-xl text-sm font-semibold transition-all",children:[(0,le.jsx)(_.A,{size:14})," Nouveau rapport"]})]}),w&&(0,le.jsxs)("div",{className:"bg-slate-900 border border-emerald-500/20 rounded-2xl p-5 space-y-4",children:[(0,le.jsx)("h3",{className:"text-white font-bold text-sm",children:T?"Modifier le rapport VINTYTRACK":"Nouveau rapport VINTYTRACK"}),(0,le.jsxs)("div",{className:"grid md:grid-cols-2 gap-4",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Titre *"}),(0,le.jsx)("input",{value:P.title,onChange:e=>M(t=>(0,a.A)((0,a.A)({},t),{},{title:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",placeholder:"Ex: Top niches Sneakers Janvier 2025"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Cat\xe9gorie"}),(0,le.jsx)("select",{value:P.category,onChange:e=>M(t=>(0,a.A)((0,a.A)({},t),{},{category:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",children:Ne.map(e=>(0,le.jsx)("option",{children:e},e))})]}),(0,le.jsxs)("div",{className:"md:col-span-2",children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Description"}),(0,le.jsx)("textarea",{value:P.description,onChange:e=>M(t=>(0,a.A)((0,a.A)({},t),{},{description:e.target.value})),rows:2,className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm resize-none"})]})]}),(0,le.jsxs)("div",{className:"space-y-3",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsx)("label",{className:"text-white text-sm font-semibold",children:"Niches"}),(0,le.jsx)("button",{onClick:()=>M(e=>(0,a.A)((0,a.A)({},e),{},{niches:[...e.niches,{brand:"",product_type:"",avg_sell_price:"",buy_price:"",profit:"",potential:"\xc9lev\xe9",tip:""}]})),className:"text-emerald-400 text-xs hover:underline",children:"+ Ajouter une niche"})]}),P.niches.map((e,t)=>(0,le.jsxs)("div",{className:"bg-slate-800/50 rounded-xl p-3 border border-white/5 space-y-2",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsxs)("span",{className:"text-slate-400 text-xs",children:["Niche #",t+1]}),t>0&&(0,le.jsx)("button",{onClick:()=>M(e=>(0,a.A)((0,a.A)({},e),{},{niches:e.niches.filter((e,s)=>s!==t)})),className:"text-red-400 text-xs",children:"\xd7"})]}),(0,le.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-2",children:[(0,le.jsx)("input",{value:e.brand,onChange:e=>B(t,"brand",e.target.value),className:"bg-slate-800 border border-white/8 rounded-lg px-2 py-1.5 text-white text-xs",placeholder:"Marque"}
1),(0,le.jsx)("input",{value:e.product_type,onChange:e=>B(t,"product_type",e.target.value),className:"bg-slate-800 border border-white/8 rounded-lg px-2 py-1.5 text-white text-xs",placeholder:"Type produit"}),(0,le.jsx)("input",{value:e.buy_price,type:"number",onChange:e=>B(t,"buy_price",e.target.value),className:"bg-slate-800 border border-white/8 rounded-lg px-2 py-1.5 text-white text-xs",placeholder:"Achat (\u20ac)"}),(0,le.jsx)("input",{value:e.avg_sell_price,type:"number",onChange:e=>B(t,"avg_sell_price",e.target.value),className:"bg-slate-800 border border-white/8 rounded-lg px-2 py-1.5 text-white text-xs",placeholder:"Vente moy. (\u20ac)"})]}),(0,le.jsxs)("div",{className:"grid grid-cols-3 gap-2",children:[(0,le.jsx)("input",{value:e.profit,type:"number",onChange:e=>B(t,"profit",e.target.value),className:"bg-slate-800 border border-white/8 rounded-lg px-2 py-1.5 text-white text-xs",placeholder:"Profit (\u20ac)"}),(0,le.jsx)("select",{value:e.potential,onChange:e=>B(t,"potential",e.target.value),className:"bg-slate-800 border border-white/8 rounded-lg px-2 py-1.5 text-white text-xs",children:["\xc9lev\xe9","Bon","Moyen"].map(e=>(0,le.jsx)("option",{children:e},e))}),(0,le.jsx)("input",{value:e.tip,onChange:e=>B(t,"tip",e.target.value),className:"bg-slate-800 border border-white/8 rounded-lg px-2 py-1.5 text-white text-xs",placeholder:"Conseil"})]})]},t))]}),(0,le.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer",children:[(0,le.jsx)("input",{type:"checkbox",checked:P.is_published,onChange:e=>M(t=>(0,a.A)((0,a.A)({},t),{},{is_published:e.target.checked})),className:"rounded"}),(0,le.jsx)("span",{className:"text-slate-400 text-sm",children:"Publier imm\xe9diatement"})]}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsxs)("button",{onClick:async()=>{try{const e=(0,a.A)((0,a.A)({},P),{},{niches:P.niches.map(e=>(0,a.A)((0,a.A)({},e),{},{avg_sell_price:parseFloat(e.avg_sell_price)||0,buy_price:parseFloat(e.buy_price)||0,profit:parseFloat(e.profit)||0}))});T?(await n.A.put("".concat(je,"/api/admin/reselltrack-reports/").concat(T),e,{headers:t()}),s("Rapport mis \xe0 jour")):(await n.A.post("".concat(je,"/api/admin/reselltrack-reports"),e,{headers:t()}),s("Rapport cr\xe9\xe9")),M((0,a.A)({},ve)),D(null),k(!1),V()}catch(r){var e,l;s((null===(e=r.response)||void 0===e||null===(l=e.data)||void 0===l?void 0:l.detail)||"Erreur","error")}},className:"bg-emerald-600/20 border border-emerald-500/20 text-emerald-400 hover:bg-emerald-600/30 px-5 py-2 rounded-xl text-sm font-semibold transition-all flex items-center gap-2",children:[(0,le.jsx)(C.A,{size:13}
1)," ",T?"Mettre \xe0 jour":"Cr\xe9er le rapport"]}),(0,le.jsx)("button",{onClick:()=>{k(!1),D(null)},className:"text-slate-400 hover:text-white px-4 py-2 text-sm transition-colors",children:"Annuler"})]})]}),f.map(e=>{var l,r;return(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl p-5 space-y-3",children:[(0,le.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[(0,le.jsx)("p",{className:"text-white font-semibold",children:e.title}),(0,le.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-full bg-emerald-600/10 text-emerald-400 border border-emerald-500/20",children:e.category}),e.is_published?(0,le.jsxs)("span",{className:"text-xs px-2 py-0.5 rounded-full bg-green-600/10 text-green-400 border border-green-500/20 flex items-center gap-1",children:[(0,le.jsx)(E.A,{size:9})," Publi\xe9"]}):(0,le.jsxs)("span",{className:"text-xs px-2 py-0.5 rounded-full bg-slate-600/10 text-slate-400 border border-slate-500/20 flex items-center gap-1",children:[(0,le.jsx)(R.A,{size:9})," Masqu\xe9"]})]}),e.description&&(0,le.jsx)("p",{className:"text-slate-400 text-xs",children:e.description}),(0,le.jsxs)("p",{className:"text-slate-500 text-xs mt-1",children:[(null===(l=e.niches)||void 0===l?void 0:l.length)||0," niches \xb7 ",new Date(e.created_at).toLocaleDateString("fr-FR")]})]}),(0,le.jsxs)("div",{className:"flex gap-2 flex-shrink-0",children:[(0,le.jsx)("button",{onClick:()=>(e=>{var t;M({title:e.title,category:e.category,description:e.description||"",is_published:e.is_published,niches:null!==(t=e.niches)&&void 0!==t&&t.length?e.niches.map(e=>{var t,s,l;return(0,a.A)((0,a.A)({},e),{},{avg_sell_price:(null===(t=e.avg_sell_price)||void 0===t?void 0:t.toString())||"",buy_price:(null===(s=e.buy_price)||void 0===s?void 0:s.toString())||"",profit:(null===(l=e.profit)||void 0===l?void 0:l.toString())||""})}):[{brand:"",product_type:"",avg_sell_price:"",buy_price:"",profit:"",potential:"\xc9lev\xe9",tip:""}]}),D(e.id),k(!0),window.scrollTo({top:0,behavior:"smooth"})})(e),className:"p-1.5 rounded-lg bg-blue-600/10 text-blue-400 hover:bg-blue-600/20 transition-all",children:(0,le.jsx)(I.A,{size:12})}),(0,le.jsx)("button",{onClick:()=>(async e=>{window.confirm("Supprimer ce rapport ?")&&(await n.A.delete("".concat(je,"/api/admin/reselltrack-reports/").concat(e),{headers:t()}),s("Rapport supprim\xe9"),j(t=>t.filter(t=>t.id!==e)))})(e.id),className:"p-1.5 rounded-lg bg-red-600/10 text-red-400 hover:bg-red-600/20 transition-all",children:(0,le.jsx)(F.A,{size:12})})]})]}),(null===(r=e.niches)||void 0===r?void 0:r.length)>0&&(0,le.jsx)("div",{className:"grid md:grid-cols-4 gap-2",children:e.niches.slice(0,4).map((e,t)=>(0,le.jsxs)("div",{className:"bg-slate-800/50 rounded-lg p-2.5 text-center",children:[(0,le.jsx)("p",{className:"text-white text-xs font-semibold",children:e.brand}),(0,le.jsx)("p",{className:"text-slate-500 text-xs",children:e.product_type}),(0,le.jsx)("p",{className:"text-xs font-bold mt-1 ".concat("\xc9lev\xe9"===e.potential?"text-green-400":"Bon"===e.potential?"text-amber-400":"text-slate-400"),children:e.potential})]},t))})]},e.id)}),0===f.length&&!w&&(0,le.jsxs)("div",{className:"text-center py-12 text-slate-500 bg-slate-900 rounded-2xl border border-white/5",children:[(0,le.jsx)(y.A,{size:32,className:"mx-auto mb-3 opacity-30"}),(0,le.jsx)("p",{children:"Aucun rapport manuel. Cr\xe9ez-en un pour enrichir l'outil VINTYTRACK des membres."})]})]})]})}var we=s(22024),Ae=s(81990),_e=s(4596);const ke=window.location.origin,Se=["V\xeatements","Chaussures","Accessoires","\xc9lectronique","Maison","Sports","Jouets","Autre"];function Ce(e){const t={pending:{label:"En attente",color:"text-amber-400 bg-amber-600/10 border-amber-500/20"},approved:{label:"Approuv\xe9e",color:"text-emerald-400 bg-emerald-600/10 border-emerald-500/20"},rejected:{label:"Refus\xe9e",color:"text-red-400 bg-red-600/10 border-red-500/20"}},s=t[e]||t.pending;return(0,le.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-full border font-semibold ".concat(s.color),children:s.label})}function ze(e){let t=e.initial,s=e.onSave,i=e.onCancel,n=e.loading;const d=(0,r.useState)(t||{title:"",description:"",category:"V\xeatements",quantity:50,unit_price:5,contact_info:"",location:""}),o=(0,l.A)(d,2),c=o[0],x=o[1],m=(e,t)=>
1x(s=>(0,a.A)((0,a.A)({},s),{},{[e]:t}));return(0,le.jsxs)("div",{className:"bg-slate-800/50 border border-blue-500/20 rounded-2xl p-5 space-y-4",children:[(0,le.jsx)("p",{className:"text-white font-bold text-sm",children:t?"Modifier l'offre":"Nouvelle offre"}),(0,le.jsxs)("div",{className:"grid md:grid-cols-2 gap-3",children:[(0,le.jsxs)("div",{className:"md:col-span-2",children:[(0,le.jsx)("label",{className:"text-slate-500 text-xs mb-1 block",children:"Titre *"}),(0,le.jsx)("input",{value:c.title,onChange:e=>m("title",e.target.value),placeholder:"Ex: Lot de 50 vestes Nike","data-testid":"admin-offer-title",className:"w-full bg-slate-900 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-500 text-xs mb-1 block",children:"Cat\xe9gorie"}),(0,le.jsx)("select",{value:c.category,onChange:e=>m("category",e.target.value),className:"w-full bg-slate-900 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm",children:Se.map(e=>(0,le.jsx)("option",{value:e,children:e},e))})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-500 text-xs mb-1 block",children:"Localisation"}),(0,le.jsx)("input",{value:c.location,onChange:e=>m("location",e.target.value),placeholder:"Ex: Lille, 59",className:"w-full bg-slate-900 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-500 text-xs mb-1 block",children:"Quantit\xe9"}),(0,le.jsx)("input",{type:"number",min:"1",value:c.quantity,onChange:e=>m("quantity",parseInt(e.target.value)||1),"data-testid":"admin-offer-qty",className:"w-full bg-slate-900 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-500 text-xs mb-1 block",children:"Prix unitaire (\u20ac)"}),(0,le.jsx)("input",{type:"number",step:"0.5",min:"0.5",value:c.unit_price,onChange:e=>m("unit_price",parseFloat(e.target.value)||1),"data-testid":"admin-offer-price",className:"w-full bg-slate-900 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm"})]}),(0,le.jsxs)("div",{className:"md:col-span-2",children:[(0,le.jsx)("label",{className:"text-slate-500 text-xs mb-1 block",children:"Description *"}),(0,le.jsx)("textarea",{value:c.description,onChange:e=>m("description",e.target.value),rows:3,placeholder:"D\xe9cris le lot, \xe9tat, marques, etc.",className:"w-full bg-slate-900 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm resize-none"})]}),(0,le.jsxs)("div",{className:"md:col-span-2",children:[(0,le.jsx)("label",{className:"text-slate-500 text-xs mb-1 block",children:"Contact"}),(0,le.jsx)("input",{value:c.contact_info,onChange:e=>m("contact_info",e.target.value),placeholder:"WhatsApp, email ou autre moyen de contact",className:"w-full bg-slate-900 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm"})]})]}),(0,le.jsxs)("div",{className:"flex gap-3 pt-1",children:[(0,le.jsx)("button",{onClick:i,className:"px-4 py-2 rounded-xl border border-white/8 text-slate-400 text-sm hover:text-white transition-all",children:"Annuler"}),(0,le.jsxs)("button",{onClick:()=>s(c),disabled:n||!c.title||!c.description,"data-testid":"admin-offer-save-btn",className:"flex items-center gap-2 px-5 py-2 rounded-xl bg-blue-600/20 border border-blue-500/30 text-blue-400 hover:bg-blue-600/30 disabled:opacity-50 text-sm font-bold transition-all",children:[n?(0,le.jsx)(we.A,{size:13,className:"animate-spin"}):(0,le.jsx)(C.A,{size:13}),"Enregistrer"]})]})]})}function Ee(e){let t=e.headers;const s=(0,r.useState)("offers"),a=(0,l.A)(s,2),i=a[0],d=a[1],o=(0,r.useState)([]),c=(0,l.A)(o,2),x=c[0],m=c[1],u=(0,r.useState)([]),p=(0,l.A)(u,2),h=p[0],b=p[1],f=(0,r.useState)(!0),j=(0,l.A)(f,2),v=j[0],N=j[1],y=(0,r.useState)(""),w=(0,l.A)(y,2),k=w[0],S=w[1],z=(0,r.useState)("all"),E=(0,l.A)(z,2),R=E[0],T=E[1],D=(0,r.useState)(!1),I=(0,l.A)(D,2),L=I[0],P=I[1],M=(0,r.useState)(null),O=(0,l.A)(M,2),V=O[0],B=O[1],W=(0,r.useState)(null),H=(0,l.A)(W,2),Y=H[0],G=H[1],K=(0,r.useState)(""),J=(0,l.A)(K,2),Q=J[0],Z=J[1],X=(0,r.useCallback)(async()=>{N(!0);try{const e=await Promise.all([n.A.get("".concat(ke,"/api/wholesalers/admin/offers"),{headers:t()}),n.A.get("".concat(ke,"/api/wholesalers/admin/requests"),{headers:t()})]),s=(0,l.A)(e,2),a=s[0],r=s[1];m(a.data||[]),b(r.data||[])}catch(e){}finally{N(!1)}},[t]);(0,r.useEffect)(()=>{X()},[X]);const $=e=>{Z(e),setTimeout(()=>Z(""),3e3)},ee=async function(e){G(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"global");try{await e(),await X()}catch(a){var t,s;$((null===(t=a.response)||void 0===t||null===(s=t.data)||void 0===s?void 0:s.detail)||"Erreur")}finally{G(null)}},te=x.filter(e=>{var t,s;const a=!k||(null===(t=e.title)||void 0===t?void 0:t.toLowerCase().includes(k.toLowerCase()))||(null===(s=e.user_email)||void 0===s?void 0:s.toLowerCase().includes(k.toLowerCase())),l="all"===R||e.status===R;return a&&l}),se=h.filter(e=>"pending"===e.status);return(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h1",{className:"text-2xl font-bold text-white",style:{fontFamily:"Outfit, sans-serif"},children:"Espace Grossistes"}),(0,le.jsxs)("p",{className:"text-slate-500 text-sm",children:[x.length," offres \xb7 ",se.length," demande(s) en attente"]})]}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsx)("button",{onClick:X,className:"p-2 rounded-lg bg-slate-800 border border-white/8 text-slate-400 hover:text-white transition-all",children:(0,le.jsx)(A.A,{size:14})}),(0,le.jsxs)("button",{onClick:()=>{P(!0),B(null)},"data-testid":"admin-wholesaler-create-btn",className:"flex items-center gap-2 px-4 py-2 rounded-xl bg-blue-600/15 border border-blue-500/25 text-blue-400 hover:bg-blue-600/25 text-sm font-bold transition-all",children:[(0,le.jsx)(_.A,{size:13})," Nouvelle offre"]})]})]}),Q&&(0,le.jsx)("div",{className:"px-3 py-2 rounded-xl bg-green-600/15 border border-green-500/20 text-green-400 text-sm font-semibold",children:Q}),L&&!V&&(0,le.jsx)(ze,{onSave:e=>ee(async()=>{await n.A.post("".concat(ke,"/api/wholesalers/admin/offers"),e,{headers:t()}),P(!1),$("Offre cr\xe9\xe9e avec succ\xe8s")},"create"),onCancel:()=>P(!1),loading:"create"===Y}),V&&(0,le.jsx)(ze,{initial:V,onSave:e=>ee(async()=>{await n.A.patch("".concat(ke,"/api/wholesalers/admin/offers/").concat(V.id
1),e,{headers:t()}),B(null),$("Offre mise \xe0 jour")},null===V||void 0===V?void 0:V.id),onCancel:()=>B(null),loading:Y===V.id}),(0,le.jsx)("div",{className:"flex border-b border-white/8",children:[{id:"offers",label:"Offres (".concat(x.length,")"),icon:Ae.A},{id:"requests",label:"Demandes r\xf4le (".concat(h.length,")"),icon:g.A}].map(e=>(0,le.jsxs)("button",{onClick:()=>d(e.id),className:"flex items-center gap-1.5 px-4 py-3 text-xs font-semibold transition-colors border-b-2 ".concat(i===e.id?"border-blue-500 text-blue-400":"border-transparent text-slate-500 hover:text-slate-300"),children:[(0,le.jsx)(e.icon,{size:13})," ",e.label,"requests"===e.id&&se.length>0&&(0,le.jsx)("span",{className:"ml-1 px-1.5 py-0.5 rounded-full bg-amber-600/20 text-amber-400 text-[10px] font-bold",children:se.length})]},e.id))}),v?(0,le.jsxs)("div",{className:"text-center py-16 text-slate-500 flex items-center justify-center gap-2",children:[(0,le.jsx)(we.A,{size:16,className:"animate-spin"})," Chargement\u2026"]}):"offers"===i?(0,le.jsxs)("div",{className:"space-y-4",children:[(0,le.jsxs)("div",{className:"flex gap-3 flex-wrap",children:[(0,le.jsxs)("div",{className:"relative flex-1 min-w-48",children:[(0,le.jsx)(U.A,{size:13,className:"absolute left-3 top-1/2 -translate-y-1/2 text-slate-500"}),(0,le.jsx)("input",{value:k,onChange:e=>S(e.target.value),placeholder:"Rechercher titre ou email\u2026",className:"w-full bg-slate-900 border border-white/8 rounded-xl pl-8 pr-3 py-2 text-white text-sm","data-testid":"admin-ws-search"})]}),(0,le.jsxs)("select",{value:R,onChange:e=>T(e.target.value),className:"bg-slate-900 border border-white/8 rounded-xl px-3 py-2 text-sm text-slate-300","data-testid":"admin-ws-filter",children:[(0,le.jsx)("option",{value:"all",children:"Tous les statuts"}),(0,le.jsx)("option",{value:"pending",children:"En attente"}),(0,le.jsx)("option",{value:"approved",children:"Approuv\xe9es"}),(0,le.jsx)("option",{value:"rejected",children:"Refus\xe9es"})]})]}),(0,le.jsx)("div",{className:"space-y-3",children:0===te.length?(0,le.jsx)("div",{className:"text-center py-12 text-slate-500 text-sm",children:"Aucune offre trouv\xe9e."}):te.map(e=>{var s;return(0,le.jsxs)("div",{"data-testid":"admin-offer-".concat(e.id),className:"bg-slate-900 border border-white/5 rounded-2xl p-4",children:[(0,le.jsxs)("div",{className:"flex items-start justify-between gap-3 mb-2",children:[(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[Ce(e.status),(0,le.jsx)("span",{className:"text-xs text-slate-600 bg-slate-800/60 px-2 py-0.5 rounded-lg",children:e.category}),e.is_admin_offer&&(0,le.jsx)("span",{className:"text-xs text-blue-400 bg-blue-600/10 border border-blue-500/20 px-2 py-0.5 rounded-lg",children:"Admin"})]}),(0,le.jsx)("p",{className:"text-white font-bold text-sm",children:e.title}),(0,le.jsx)("p",{className:"text-slate-500 text-xs mt-0.5 line-clamp-2",children:e.description})]}),(0,le.jsxs)("div",{className:"flex-shrink-0 text-right",children:[(0,le.jsxs)("p",{className:"text-white font-bold text-base",children:[e.unit_price,"\u20ac/unit\xe9"]}),(0,le.jsxs)("p",{className:"text-slate-500 text-xs",children:[e.quantity," unit\xe9s"]}),e.interest_count>0&&(0,le.jsxs)("p",{className:"text-blue-400 text-xs mt-0.5",children:[e.interest_count," int\xe9r\xeat(s)"]})]})]}),(0,le.jsxs)("div",{className:"flex items-center gap-2 mt-3 text-xs text-slate-600",children:[(0,le.jsxs)("span",{children:["Par: ",e.user_email]}),e.location&&(0,le.jsxs)("span",{children:["\xb7 ",e.location]}),(0,le.jsxs)("span",{children:["\xb7 ",null===(s=e.created_at)||void 0===s?void 0:s.slice(0,10)]})]}),(0,le.jsxs)("div",{className:"flex gap-2 mt-3 flex-wrap",children:["pending"===e.status&&(0,le.jsxs)(le.Fragment,{children:[(0,le.jsxs)("button",{onClick:()=>{return s=e.id,ee(async()=>{await n.A.post("".concat(ke,"/api/wholesalers/admin/approve/").concat(s),{},{headers:t()}),$("Offre approuv\xe9e")},s);var s},disabled:Y===e.id,"data-testid":"admin-offer-approve-".concat(e.id),className:"flex items-center gap-1.5 px-3 py-1.5 rounded-lg bg-emerald-600/15 border border-emerald-500/25 text-emerald-400 hover:bg-emerald-600/25 text-xs font-semibold transition-all disabled:opacity-50",children:[Y===e.id?(0,le.jsx)(we.A,{size:11,className:"animate-spin"}):(0,le.jsx)(C.A,{size:11})," Approuver"]}),(0,le.jsxs)("button",{onClick:()=>{return s=e.id,ee(async()=>{await n.A.post("".concat(ke,"/api/wholesalers/admin/reject/").concat(s),{},{headers:t()}),$("Offre refus\xe9e")},s);var s},disabled:Y===e.id,className:"flex items-center gap-1.5 px-3 py-1.5 rounded-lg bg-red-600/10 border border-red-500/20 text-red-400 hover:bg-red-600/15 text-xs font-semibold transition-all disabled:opacity-50",children:[(0,le.jsx)(q.A,{size:11})," Refuser"]})]}),(0,le.jsxs)("button",{onClick:()=>{B(e),P(!1)},className:"flex items-center gap-1.5 px-3 py-1.5 rounded-lg border border-white/8 text-slate-400 hover:text-white hover:border-white/15 text-xs transition-all",children:[(0,le.jsx)(_e.A,{size:11})," Modifier"]}),(0,le.jsxs)("button",{onClick:()=>{return s=e.id,void(window.confirm("Supprimer cette offre ? Cette action est irr\xe9versible.")&&ee(async()=>{await n.A.delete("".concat(ke,"/api/wholesalers/admin/offers/").concat(s),{headers:t()}),$("Offre supprim\xe9e")},s));var s},disabled:Y===e.id,"data-testid":"admin-offer-delete-".concat(e.id),className:"flex items-center gap-1.5 px-3 py-1.5 rounded-lg border border-red-500/15 text-red-500/70 hover:text-red-400 hover:border-red-500/30 text-xs transition-all disabled:opacity-50",children:[(0,le.jsx)(F.A,{size:11})," Supprimer"]})]})]},e.id)})})]}):(0,le.jsx)("div",{className:"space-y-3",children:0===h.length?(0,le.jsx)("div",{className:"text-center py-12 text-slate-500 text-sm",children:"Aucune demande de r\xf4le grossiste."}):h.map(e=>{var s;return(0,le.jsx)("div",{"data-testid":"admin-req-".concat(e.id),className:"bg-slate-900 border border-white/5 rounded-2xl p-4",children:(0,le.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[Ce(e.status),(0,le.jsx)("span",{className:"text-white font-bold text-sm",children:e.user_email})]}),e.business_type&&(0,le.jsxs)("p",{className:"text-slate-400 text-xs",children:["Business: ",e.business_type]}),e.motivation&&(0,le.jsx)("p",{className:"text-slate-500 text-xs mt-1 italic",children:e.motivation}),(0,le.jsx)("p",{className:"text-slate-700 text-xs mt-1",children:null===(s=e.created_at)||void 0===s?void 0:s.slice(0,10)})]}),"pending"===e.status&&(0,le.jsxs)("div",{className:"flex gap-2 flex-shrink-0",children:[(0,le.jsxs)("button",{onClick:()=>{return s=e.id,ee(async()=>{await n.A.post("".concat(ke,"/api/wholesalers/admin/requests/").concat(s,"/approve"),{},{headers:t()}),$("R\xf4le grossiste accord\xe9")},s);var s},disabled:Y===e.id,"data-testid":"admin-req-approve-".concat(e.id),className:"flex items-center gap-1.5 px-3 py-1.5 rounded-lg bg-emerald-600/15 border border-emerald-500/25 text-emerald-400 text-xs font-semibold transition-all disabled:opacity-50",children:[Y===e.id?(0,le.jsx)(we.A,{size:11,className:"animate-spin"}):(0,le.jsx)(C.A,{size:11})," Approuver"]}),(0,le.jsxs)("button",{onClick:()=>{return s=e.id,ee(async()=>{await n.A.post("".concat(ke,"/api/wholesalers/admin/requests/").concat(s,"/reject"),{},{headers:t()}),$("Demande refus\xe9e")},s);var s},disabled:Y===e.id,className:"flex items-center gap-1.5 px-3 py-1.5 rounded-lg bg-red-600/10 border border-red-500/20 text-red-400 text-xs font-semibold transition-all disabled:opacity-50",children:[(0,le.jsx)(q.A,{size:11})," Refuser"]})]})]})},e.id)})})]})}var Re=s(22626);const Te=window.location.origin,Fe=["Guide","Astuces","Outils","Comparatif","Fiscalit\xe9","Formation"],De={title:"",slug:"",description:"",content:"",category:"Guide",keywords:"",reading_time:5,published:!0};function Ie(){const e=(0,se.A)().authHeaders,t=(0,r.useState)([]),s=(0,l.A)(t,2),i=s[0],d=s[1],o=(0,r.useState)(!0),c=(0,l.A)(o,2),x=c[0],m=c[1],u=(0,r.useState)(!1),p=(0,l.A)(u,2),h=p[0],b=p[1],g=(0,r.useState)(null),f=(0,l.A)(g,2),v=f[0],N=f[1],y=(0,r.useState)(De),w=(0,l.A)(y,2),k=w[0],S=w[1],C=(0,r.useState)(!1),z=(0,l.A)(C,2),T=z[0],D=z[1],L=(0,r.useState)(""),q=(0,l.A)(L,2),P=q[0],M=q[1],O=(0,r.useState)(!1),V=(0,l.A)(O,2),B=V[0],U=V[1],W=async()=>{try{const e=await n.A.get("".concat(Te,"/api/blog/posts"),{params:{limit:50}});d(e.data.posts||[])}catch(e){}m(!1)};(0,r.useEffect)(()=>{W()},[]);return(0,le.jsxs)("div",{"data-testid":"admin-blog-panel",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between mb-6",children:[(0,le.jsxs)("div",{className:"flex items-center gap-3",children:[(0,le.jsx)("div",{className:"w-10 h-10 rounded-xl bg-blue-600/15 border border-blue-500/25 flex items-center justify-center",children:(0,le.jsx)(Re.A,{size:18,className:"text-blue-400"})}),(0,le.jsxs)("div",{children:[(0,le.jsx)("h2",{className:"text-white font-bold text-lg",children:"Gestion du Blog"}),(0,le.jsxs)("p",{className:"text-slate-500 text-xs",children:[i.length," articles \xb7 SEO"]})]})]}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsxs)("button",{onClick:async()=>{U(!0);try{const t=await n.A.post("".concat(Te,"/api/blog/seed"),{},{headers:e()});M("".concat(t.data.seeded," articles ajout\xe9s")),await W()}catch(t){}U(!1),setTimeout(()=>M(""),3e3)},disabled:B,className:"flex items-center gap-1.5 px-3 py-2 rounded-xl bg-slate-800/60 border border-white/8 text-slate-400 hover:text-white text-xs font-semibold transition-all disabled:opacity-50",children:[(0,le.jsx)(A.A,{size:12,className:B?"animate-spin":""}),"R\xe9importer les articles"]}),(0,le.jsxs)("button",{onClick:()=>{S(De),N(null),b(!0)},className:"flex items-center gap-1.5 px-4 py-2 rounded-xl bg-blue-600 hover:bg-blue-500 text-white text-sm font-semibold transition-all",children:[(0,le.jsx)(_.A,{size:14})," Nouvel article"]})]})]}),P&&(0,le.jsx)("div",{className:"mb-4 px-4 py-3 rounded-xl bg-emerald-600/15 border border-emerald-500/25 text-emerald-400 text-sm",children:P}),h&&(0,le.jsxs)("div",{className:"mb-6 bg-slate-900/60 border border-white/8 rounded-2xl p-5",children:[(0,le.jsx)("h3",{className:"text-white font-bold mb-4",children:v?"Modifier l'article":"Nouvel article"}),(0,le.jsxs)("form",{onSubmit:async t=>{t.preventDefault(),D(!0);try{const t=(0,a.A)((0,a.A)({},k),{},{keywords:k.keywords?k.keywords.split(",").map(e=>
1e.trim()).filter(Boolean):[],reading_time:parseInt(k.reading_time)||5});v?(await n.A.put("".concat(Te,"/api/blog/posts/").concat(v),t,{headers:e()}),M("Article mis \xe0 jour")):(await n.A.post("".concat(Te,"/api/blog/posts"),t,{headers:e()}),M("Article cr\xe9\xe9")),b(!1),await W()}catch(r){var s,l;M((null===(s=r.response)||void 0===s||null===(l=s.data)||void 0===l?void 0:l.detail)||"Erreur")}D(!1),setTimeout(()=>M(""),3e3)},className:"space-y-4",children:[(0,le.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold block mb-1",children:"Titre *"}),(0,le.jsx)("input",{value:k.title,onChange:e=>{const t=e.target.value;S(e=>{return(0,a.A)((0,a.A)({},e),{},{title:t,slug:v?e.slug:(s=t,s.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-"))});var s})},required:!0,className:"w-full bg-slate-800/60 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm placeholder-slate-500 focus:outline-none focus:border-blue-500/40",placeholder:"Titre SEO de l'article"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold block mb-1",children:"Slug URL *"}),(0,le.jsx)("input",{value:k.slug,onChange:e=>S(t=>(0,a.A)((0,a.A)({},t),{},{slug:e.target.value})),required:!0,className:"w-full bg-slate-800/60 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm font-mono placeholder-slate-500 focus:outline-none focus:border-blue-500/40",placeholder:"mon-article-seo"})]})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold block mb-1",children:"Meta description *"}),(0,le.jsx)("input",{value:k.description,onChange:e=>S(t=>(0,a.A)((0,a.A)({},t),{},{description:e.target.value})),required:!0,maxLength:160,className:"w-full bg-slate-800/60 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm placeholder-slate-500 focus:outline-none focus:border-blue-500/40",placeholder:"Description SEO (max 160 caract\xe8res)"}),(0,le.jsxs)("p",{className:"text-slate-600 text-xs mt-1",children:[k.description.length,"/160 caract\xe8res"]})]}),(0,le.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-4",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold block mb-1",children:"Cat\xe9gorie"}),(0,le.jsx)("select",{value:k.category,onChange:e=>S(t=>(0,a.A)((0,a.A)({},t),{},{category:e.target.value})),className:"w-full bg-slate-800/60 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm focus:outline-none",children:Fe.map(e=>(0,le.jsx)("option",{value:e,children:e},e))})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold block mb-1",children:"Temps de lecture (min)"}),(0,le.jsx)("input",{type:"number",value:k.reading_time,onChange:e=>S(t=>(0,a.A)((0,a.A)({},t),{},{reading_time:e.target.value})),min:1,max:30,className:"w-full bg-slate-800/60 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm focus:outline-none"})]}),(0,le.jsx)("div",{className:"flex items-end pb-1",children:(0,le.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer",children:[(0,le.jsx)("input",{type:"checkbox",checked:k.published,onChange:e=>S(t=>(0,a.A)((0,a.A)({},t),{},{published:e.target.checked})),className:"w-4 h-4 rounded accent-blue-600"}),(0,le.jsx)("span",{className:"text-slate-300 text-sm font-semibold",children:"Publi\xe9"})]})})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold block mb-1",children:"Mots-cl\xe9s SEO (s\xe9par\xe9s par virgule)"}),(0,le.jsx)("input",{value:k.keywords,onChange:e=>S(t=>(0,a.A)((0,a.A)({},t),{},{keywords:e.target.value})),className:"w-full bg-slate-800/60 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm placeholder-slate-500 focus:outline-none",placeholder:"gagner argent vinted, revente vinted, ..."})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold block mb-1",children:"Contenu (Mark
1down) *"}),(0,le.jsx)("textarea",{value:k.content,onChange:e=>S(t=>(0,a.A)((0,a.A)({},t),{},{content:e.target.value})),required:!0,rows:12,className:"w-full bg-slate-800/60 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm font-mono placeholder-slate-500 focus:outline-none focus:border-blue-500/40 resize-y",placeholder:"# Titre ## Section Contenu en **Markdown**..."})]}),(0,le.jsxs)("div",{className:"flex gap-3 pt-2",children:[(0,le.jsx)("button",{type:"submit",disabled:T,className:"px-5 py-2.5 rounded-xl bg-blue-600 hover:bg-blue-500 text-white text-sm font-semibold transition-all disabled:opacity-50",children:T?"Enregistrement...":v?"Mettre \xe0 jour":"Cr\xe9er"}),(0,le.jsx)("button",{type:"button",onClick:()=>b(!1),className:"px-5 py-2.5 rounded-xl border border-white/8 text-slate-400 hover:text-white text-sm font-semibold transition-all",children:"Annuler"})]})]})]}),x?(0,le.jsx)("div",{className:"space-y-3",children:[...Array(5)].map((e,t)=>(0,le.jsx)("div",{className:"h-14 bg-slate-900/40 rounded-xl animate-pulse"},t))}):(0,le.jsx)("div",{className:"space-y-2",children:i.map(t=>(0,le.jsxs)("div",{className:"flex items-center gap-4 p-4 bg-slate-900/40 border border-white/5 rounded-xl hover:border-white/10 transition-all","data-testid":"blog-post-row-".concat(t.slug),children:[(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsx)("p",{className:"text-white text-sm font-semibold truncate",children:t.title}),(0,le.jsxs)("div",{className:"flex items-center gap-3 mt-0.5",children:[(0,le.jsx)("span",{className:"text-slate-500 text-xs",children:t.category}),(0,le.jsx)("span",{className:"text-slate-600 text-xs",children:"\xb7"}),(0,le.jsxs)("span",{className:"text-slate-500 text-xs",children:[t.reading_time," min"]}),(0,le.jsx)("span",{className:"text-slate-600 text-xs",children:"\xb7"}),(0,le.jsxs)("span",{className:"text-slate-500 text-xs",children:[t.views||0," vues"]})]})]}),(0,le.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[(0,le.jsx)("span",{className:"text-[10px] font-bold px-2 py-0.5 rounded-full ".concat(t.published?"text-emerald-400 bg-emerald-600/15":"text-slate-500 bg-slate-800/60"),children:t.published?"Publi\xe9":"Brouillon"}),(0,le.jsx)("a",{href:"/blog/".concat(t.slug),target:"_blank",rel:"noreferrer",className:"p-1.5 rounded-lg text-slate-500 hover:text-blue-400 hover:bg-blue-500/8 transition-all",children:(0,le.jsx)(j.A,{size:13})}),(0,le.jsx)("button",{onClick:()=>(async t=>{try{await n.A.put("".concat(Te,"/api/blog/posts/").concat(t.slug),{published:!t.published},{headers:e()}),d(e=>e.map(e=>e.slug===t.slug?(0,a.A)((0,a.A)({},e),{},{published:!e.published}):e))}catch(s){}})(t),className:"p-1.5 rounded-lg text-slate-500 hover:text-amber-400 hover:bg-amber-500/8 transition-all",children:t.published?(0,le.jsx)(R.A,{size:13}):(0,le.jsx)(E.A,{size:13})}),(0,le.jsx)("button",{onClick:()=>(e=>{S((0,a.A)((0,a.A)({},e),{},{keywords:(e.keywords||[]).join(", ")})),N(e.slug),b(!0)})(t),className:"p-1.5 rounded-lg text-slate-500 hover:text-white hover:bg-white/8 transition-all",children:(0,le.jsx)(I.A,{size:13})}),(0,le.jsx)("button",{onClick:()=>(async t=>{if(window.confirm("Supprimer cet article ?"))try{await n.A.delete("".concat(Te,"/api/blog/posts/").concat(t),{headers:e()}),d(e=>e.filter(e=>e.slug!==t))}catch(s){}})(t.slug),className:"p-1.5 rounded-lg text-slate-500 hover:text-red-400 hover:bg-red-500/8 transition-all",children:(0,le.jsx)(F.A,{size:13})})]})]},t.id))})]})}var Le=s(67010),qe=s(74943),Pe=s(85347),Me=s(56804),Oe=s(82054),Ve=s(247),Be=s(14939),Ue=s(687);const We=window.location.origin;function He(e){let t=e.icon,s=e.label,a=e.value,l=e.sub,r=e.color,i=void 0===r?"#2dd4bf":r,n=e.trend,d=e.testId;return(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/[0.06] rounded-2xl p-4","data-testid":d,children:[(0,le.jsxs)("div",{className:"flex items-start justify-between mb-2",children:[(0,le.jsx)("div",{className:"p-2 rounded-xl",style:{background:"".concat(i,"15")},children:(0,le.jsx)(t,{size:15,style:{color:i}})}),null!=n&&(0,le.jsxs)("span",{className:"flex items-center gap-0.5 text-xs font-bold ".concat(n>=0?"text-emerald-400":"text-red-400"),children:[(0,le.jsx)(Le.A,{size:11,className:n<0?"rotate-180":""}),Math.abs(n),"%"]})]}),(0,le.jsx)("p",{className:"text-slate-500 text-xs font-medium mt
1-3",children:s}),(0,le.jsx)("p",{className:"text-white text-2xl font-black mt-0.5",style:{fontFamily:"Space Grotesk, sans-serif"},children:null!==a&&void 0!==a?a:"\u2014"}),l&&(0,le.jsx)("p",{className:"text-slate-600 text-xs mt-0.5",children:l})]})}function Ye(e){let t=e.children;return(0,le.jsx)("p",{className:"text-slate-500 text-xs font-bold uppercase tracking-widest mb-3",children:t})}function Ge(e){let t=e.label,s=e.value,a=e.max,l=e.color,r=void 0===l?"#2dd4bf":l,i=e.suffix,n=void 0===i?"":i,d=e.bold,o=void 0!==d&&d;const c=a>0?Math.min(s/a*100,100):0;return(0,le.jsxs)("div",{className:"flex items-center gap-3",children:[(0,le.jsx)("span",{className:"text-slate-400 text-xs w-32 truncate flex-shrink-0",children:t}),(0,le.jsx)("div",{className:"flex-1 h-1.5 bg-slate-800 rounded-full overflow-hidden",children:(0,le.jsx)("div",{className:"h-full rounded-full transition-all duration-700",style:{width:"".concat(c,"%"),background:r}})}),(0,le.jsxs)("span",{className:"text-xs font-bold w-14 text-right flex-shrink-0 ".concat(o?"text-white":"text-slate-400"),children:[s,n]})]})}function Ke(e){let t=e.data;if(!t||0===t.length)return(0,le.jsx)("p",{className:"text-slate-600 text-sm text-center py-6",children:"Pas encore de donn\xe9es"});const s=Math.max(...t.map(e=>e.revenue),1);return(0,le.jsx)("div",{className:"flex items-end gap-2 h-28 mt-4",children:t.map((e,t)=>(0,le.jsxs)("div",{className:"flex-1 flex flex-col items-center gap-1",children:[e.revenue>0&&(0,le.jsxs)("span",{className:"text-slate-500 text-[9px]",children:[e.revenue.toFixed(0),"\u20ac"]}),(0,le.jsx)("div",{className:"w-full rounded-t transition-all duration-700",style:{height:"".concat(Math.max(e.revenue/s*100,4),"%"),background:"linear-gradient(to top, rgba(45,212,191,.5), rgba(56,189,248,.4))"}}),(0,le.jsx)("span",{className:"text-slate-600 text-[9px]",children:(e.month||"").slice(5)})]},t))})}function Je(e){let t=e.data;if(!t||0===Object.keys(t).length)return(0,le.jsx)("p",{className:"text-slate-600 text-sm text-center py-6",children:"Pas encore de donn\xe9es"});const s=Object.entries(t).slice(-14),a=Math.max(...s.map(e=>(0,l.A)(e,2)[1]),1);return(0,le.jsx)("div",{className:"flex items-end gap-1 h-20 mt-4",children:s.map((e,t)=>{let s=(0,l.A)(e,2),r=s[0],i=s[1];return(0,le.jsx)("div",{className:"flex-1 flex flex-col items-center gap-0.5",title:"".concat(r,": ").concat(i),children:(0,le.jsx)("div",{className:"w-full bg-emerald-600/60 rounded-sm transition-all",style:{height:"".concat(Math.max(i/a*100,8),"%")}})},t)})})}function Qe(e){let t=e.authH;const s=(0,r.useState)([]),a=(0,l.A)(s,2),i=a[0],d=a[1],o=(0,r.useState)(!0),c=(0,l.A)(o,2),x=c[0],m=c[1];(0,r.useEffect)(()=>{n.A.get("".concat(We,"/api/admin/analytics/landing?days=30"),{headers:t()}).then(e=>{var t;d((null===(t=e.data)||void 0===t?void 0:t.events)||[]),m(!1)}).catch(()=>m(!1))},[]);const u={landing_visit:"Visites landing",scroll_depth_50:"Scroll > 50%",scroll_depth_90:"Scroll > 90%",cta_click:"Clics CTA",questionnaire_start:"Quiz d\xe9marr\xe9",questionnaire_complete:"Quiz termin\xe9",checkout_start:"Checkout d\xe9marr\xe9",payment_success:"Paiements r\xe9ussis"};if(x)return(0,le.jsx)("div",{className:"h-20 flex items-center justify-center",children:(0,le.jsx)("div",{className:"w-5 h-5 border-2 border-teal-400/30 border-t-teal-400 rounded-full animate-spin"})});if(!i.length)return(0,le.jsx)("p",{className:"text-slate-600 text-sm text-center py-6",children:"Aucun \xe9v\xe9nement landing (30j)"});const p=Math.max(...i.map(e=>e.count),1);return(0,le.jsx)("div",{className:"space-y-2.5",children:i.map(e=>(0,le.jsx)(Ge,{label:u[e.event]||e.event,value:e.count,max:p,color:"#2dd4bf"},e.event))})}function Ze(e){var t,s,a,i,d,x,u,p,b,j,v,N,w,_,S,C,z,E,R,T;const F=e.headers||(()=>({Authorization:"Bearer ".concat(localStorage.getItem("vr_token"))})),D=(0,r.useState)(null),I=(0,l.A)(D,2),L=I[0],q=I[1],P=(0,r.useState)(!0),M=(0,l.A)(P,2),B=M[0],U=M[1],W=(0,r.useState)(null),Y=(0,l.A)(W,2),G=Y[0],K=Y[1],J=(0,r.useCallback)(()=>{U(!0),n.A.get("".concat(We,"/api/admin/analytics"),{headers:F()}).then(e=>{q(e.data),K(new Date),U(!1)}).catch(()=>U(!1))},[]);if((0,r.useEffect)(()=>{J()},[J]),B&&!L)return(0,le.jsx)("div",{className:"flex items-center justify-center py-20",children:(0,le.jsx)("div",{className:"w-8 h-8 border-2 border-teal-400 border-t-transparent roun
1ded-full animate-spin"})});if(!L)return(0,le.jsx)("p",{className:"text-slate-500 text-center py-20",children:"Erreur de chargement"});const Q=L.members,Z=L.revenue,X=L.ia_usage||{},$=L.bot||{},ee=L.referrals||{},te=L.recent_payments||[],se={starter_monthly:"#38bdf8",starter_annual:"#38bdf8",pro_monthly:"#2dd4bf",pro_annual:"#2dd4bf",elite_monthly:"#818cf8",elite_annual:"#818cf8",elite:"#818cf8",methode:"#a78bfa",formation:"#a78bfa",all_access:"#f59e0b",tools:"#64748b",bot_starter:"#64748b",free:"#334155",free_test:"#334155"},ae=Math.max(...(null===(t=Q.by_plan)||void 0===t?void 0:t.map(e=>e.count))||[1]);return(0,le.jsxs)("div",{className:"space-y-8",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsxs)("div",{className:"flex items-center gap-3",children:[(0,le.jsx)(qe.A,{size:20,className:"text-teal-400"}),(0,le.jsx)("h2",{className:"text-white text-xl font-black",style:{fontFamily:"Space Grotesk, sans-serif"},children:"Analytics Admin"})]}),(0,le.jsxs)("div",{className:"flex items-center gap-3",children:[G&&(0,le.jsxs)("span",{className:"text-slate-600 text-xs",children:["M\xe0j ",G.toLocaleTimeString("fr-FR",{hour:"2-digit",minute:"2-digit"})]}),(0,le.jsxs)("button",{onClick:J,disabled:B,"data-testid":"analytics-refresh-btn",className:"flex items-center gap-1.5 text-slate-400 hover:text-white text-xs border border-white/[0.06] hover:border-white/20 px-3 py-1.5 rounded-xl transition-all disabled:opacity-40",children:[(0,le.jsx)(A.A,{size:11,className:B?"animate-spin":""})," Actualiser"]})]})]}),(0,le.jsxs)("div",{"data-testid":"revenue-section",children:[(0,le.jsx)(Ye,{children:"Revenus"}),(0,le.jsxs)("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-6 gap-3",children:[(0,le.jsx)(He,{icon:f.A,label:"CA Total",value:"".concat(null===(s=Z.total)||void 0===s?void 0:s.toFixed(0),"\u20ac"),color:"#34d399",testId:"kpi-ca-total"}),(0,le.jsx)(He,{icon:m.A,label:"CA 30j",value:"".concat(null===(a=Z.last_30d)||void 0===a?void 0:a.toFixed(0),"\u20ac"),color:"#38bdf8",testId:"kpi-ca-30j"}),(0,le.jsx)(He,{icon:o.A,label:"MRR estim\xe9",value:"".concat(null===(i=Z.mrr)||void 0===i?void 0:i.toFixed(0),"\u20ac"),color:"#2dd4bf",sub:"Mensuel r\xe9current",testId:"kpi-mrr"}),(0,le.jsx)(He,{icon:m.A,label:"ARR estim\xe9",value:"".concat(null===(d=Z.arr)||void 0===d?void 0:d.toFixed(0),"\u20ac"),color:"#818cf8",testId:"kpi-arr"}),(0,le.jsx)(He,{icon:H.A,label:"\xc9checs paiement",value:null!==(x=Z.failed_payments)&&void 0!==x?x:0,color:"#f87171",testId:"kpi-failed-payments"}),(0,le.jsx)(He,{icon:k.A,label:"Churn 30j",value:null!==(u=Z.churn)&&void 0!==u?u:0,color:"#f59e0b",sub:"R\xe9siliations",testId:"kpi-churn"})]}),(0,le.jsxs)("div",{className:"mt-4 bg-slate-900 border border-white/[0.06] rounded-2xl p-5",children:[(0,le.jsx)("p",{className:"text-white font-bold text-sm",children:"Revenus mensuels (6 derniers mois)"}),(0,le.jsx)(Ke,{data:Z.by_month})]})]}),(0,le.jsxs)("div",{"data-testid":"members-section",children:[(0,le.jsx)(Ye,{children:"Membres"}),(0,le.jsxs)("div",{className:"grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-8 gap-3",children:[(0,le.jsx)(He,{icon:g.A,label:"Total",value:Q.total,color:"#94a3b8",testId:"kpi-total-users"}),(0,le.jsx)(He,{icon:O.A,label:"Free",value:Q.free,color:"#475569",testId:"kpi-free-users"}),(0,le.jsx)(He,{icon:y.A,label:"Starter",value:Q.starter,color:"#38bdf8",testId:"kpi-starter-users"}),(0,le.jsx)(He,{icon:c.A,label:"Pro",value:Q.pro,color:"#2dd4bf",testId:"kpi-pro-users"}),(0,le.jsx)(He,{icon:Pe.A,label:"Elite",value:Q.elite,color:"#818cf8",testId:"kpi-elite-users"}),(0,le.jsx)(He,{icon:Me.A,label:"Legacy",value:Q.legacy,color:"#64748b",sub:"Anciens plans",testId:"kpi-legacy-users"}),(0,le.jsx)(He,{icon:V.A,label:"Nouveaux 7j",value:Q.new_7d,color:"#34d399",testId:"kpi-new-7d"}),(0,le.jsx)(He,{icon:V.A,label:"Nouveaux 30j",value:Q.new_30d,color:"#34d399",testId:"kpi-new-30d"})]}),(0,le.jsxs)("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-3 mt-3",children:[(0,le.jsx)(He,{icon:o.A,label:"Actifs 7j",value:Q.active_7d,color:"#fbbf24",testId:"kpi-active-7d"}),(0,le.jsx)(He,{icon:o.A,label:"Actifs 30j",value:Q.active_30d,color:"#f59e0b",testId:"kpi-active-30d"}),(0,le.jsx)(He,{icon:m.A,label:"Taux conversion",value:"".concat(Q.conversion_rate,"%"),color:"#2dd4bf",sub:"Free \u2192 Payant",testId:"kpi-conversion-rate"}),(0,le.jsx)(He,{icon:Oe.A,label:"Payants total",value:Q.paying,color:"#22c55e",testId:"kpi-paying-users"})]}),(0,le.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 mt-4",children:[(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/[0.06] rounded-2xl p-5",children:[(0,le.jsx)("p",{className:"text-white font-bold text-sm mb-3",children:"Distribution par plan"}),(0,le.jsx)("div",{className:"space-y-2.5",children:null===(p=Q.by_plan)||void 0===p?void 0:p.slice(0,12).map(e=>(0,le.jsx)(Ge,{label:e.plan||"free",value:e.count,max:ae,color:se[e.plan]||"#475569"},e.plan))})]}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/[0.06] rounded-2xl p-5",children:[(0,le.jsx)("p",{className:"text-white font-bold text-sm mb-1",children:"Nouvelles inscriptions (14j)"}),(0,le.jsx)("p",{className:"text-slate-600 text-xs",children:"Par jour"}),(0,le.jsx)(Je,{data:Q.signups_by_day})]})]})]}),(0,le.jsxs)("div",{"data-testid":"ia-usage-section",children:[(0,le.jsx)(Ye,{children:"Utilisation IA \u2014 ce mois"}),(0,le.jsxs)("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-3",children:[(0,le.jsx)(He,{icon:Ve.A,label:"Photos IA",value:null!==(b=X.photo_ia)&&void 0!==b?b:0,color:"#818cf8",testId:"kpi-ia-photo"}),(0,le.jsx)(He,{icon:qe.A,label:"Analyses",value:null!==(j=X.analyses)&&void 0!==j?j:0,color:"#2dd4bf",testId:"kpi-ia-analyses"}),(0,le.jsx)(He,{icon:y.A,label:"Total IA",value:null!==(v=X.total)&&void 0!==v?v:0,color:"#fbbf24",testId:"kpi-ia-total"})]}),(0,le.jsxs)("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-3 mt-3",children:[(0,le.jsx)(He,{icon:h.A,label:"Cr\xe9dits d\xe9pe
1ns\xe9s",value:null!==(N=X.credits_spent)&&void 0!==N?N:0,color:"#38bdf8",sub:"Ce mois",testId:"kpi-credits-spent"}),(0,le.jsx)(He,{icon:f.A,label:"Co\xfbt IA estim\xe9",value:"".concat(null!==(w=X.cost_estimated_eur)&&void 0!==w?w:0,"\u20ac"),color:"#f87171",sub:"0.02\u20ac/cr\xe9dit",testId:"kpi-ia-cost"}),(0,le.jsx)(He,{icon:g.A,label:"Users actifs IA",value:null!==(_=X.active_users)&&void 0!==_?_:0,color:"#34d399",testId:"kpi-ia-active-users"}),(0,le.jsx)(He,{icon:c.A,label:"Taux activation",value:"".concat(null!==(S=X.activation_rate)&&void 0!==S?S:0,"%"),color:"#2dd4bf",sub:"Payants avec \u22651 use",testId:"kpi-activation-rate"})]})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)(Ye,{children:"Bot Vinted"}),(0,le.jsxs)("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-3",children:[(0,le.jsx)(He,{icon:Be.A,label:"Sessions actives",value:$.active_sessions,color:"#22c55e"}),(0,le.jsx)(He,{icon:g.A,label:"Total sessions",value:$.total_sessions,color:"#94a3b8"}),(0,le.jsx)(He,{icon:y.A,label:"Items trouv\xe9s total",value:$.total_items_found,color:"#38bdf8"}),(0,le.jsx)(He,{icon:o.A,label:"Items aujourd'hui",value:$.items_today,color:"#34d399"})]})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)(Ye,{children:"Parrainage"}),(0,le.jsxs)("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-3",children:[(0,le.jsx)(He,{icon:Ue.A,label:"Parrainages total",value:null!==(C=ee.total)&&void 0!==C?C:0,color:"#f472b6"}),(0,le.jsx)(He,{icon:Oe.A,label:"Commissions pay\xe9es",value:null!==(z=ee.paid)&&void 0!==z?z:0,color:"#34d399"}),(0,le.jsx)(He,{icon:f.A,label:"Commissions en attente",value:"".concat(null!==(E=ee.pending_commissions)&&void 0!==E?E:0,"\u20ac"),color:"#f59e0b"}),(0,le.jsx)(He,{icon:g.A,label:"Affili\xe9s inscrits",value:null!==(R=null===(T=L.affiliates)||void 0===T?void 0:T.total)&&void 0!==R?R:0,color:"#818cf8"})]})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)(Ye,{children:"Derniers paiements"}),(0,le.jsx)("div",{className:"bg-slate-900 border border-white/[0.06] rounded-2xl overflow-hidden",children:0===te.length?(0,le.jsx)("p",{className:"text-slate-600 text-sm text-center py-10",children:"Aucun paiement enregistr\xe9"}):(0,le.jsx)("div",{className:"overflow-x-auto",children:(0,le.jsxs)("table",{style:{width:"100%",borderCollapse:"collapse"},children:[(0,le.jsx)("thead",{children:(0,le.jsx)("tr",{style:{borderBottom:"1px solid rgba(255,255,255,.05)"},children:["Date","Email","Plan","Montant","Statut","Sub ID"].map(e=>(0,le.jsx)("th",{style:{padding:"10px 14px",textAlign:"left",fontSize:11,fontWeight:700,color:"#475569",textTransform:"uppercase",letterSpacing:".06em",whiteSpace:"nowrap"},children:e},e))})}),(0,le.jsx)("tbody",{children:te.map((e,t)=>{var s;return(0,le.jsxs)("tr",{style:{borderBottom:"1px solid rgba(255,255,255,.03)"},onMouseEnter:e=>e.currentTarget.style.background="rgba(255,255,255,.02)",onMouseLeave:e=>e.currentTarget.style.background="",children:[(0,le.jsx)("td",{style:{padding:"10px 14px",fontSize:12,color:"#64748b",whiteSpace:"nowrap"},children:e.created_at||"\u2014"}),(0,le.jsx)("td",{style:{padding:"10px 14px",fontSize:12,color:"#CBD5E1",maxWidth:200,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.email}),(0,le.jsx)("td",{style:{padding:"10px 14px",fontSize:11},children:(0,le.jsx)("span",{style:{background:"".concat(se[e.plan]||"#334155","18"),border:"1px solid ".concat(se[e.plan]||"#334155","30"),borderRadius:6,padding:"2px 8px",color:se[e.plan]||"#94a3b8",fontWeight:700},children:e.plan||"\u2014"})}),(0,le.jsxs)("td",{style:{padding:"10px 14px",fontSize:13,color:"#4ADE80",fontWeight:700},children:[null===(s=e.amount_eur)||void 0===s?void 0:s.toFixed(2),"\u20ac"]}),(0,le.jsx)("td",{style:{padding:"10px 14px"},children:(0,le.jsx)("span",{style:{fontSize:10,fontWeight:700,padding:"2px 8px",borderRadius:6,background:"paid"===e.status?"rgba(52,211,153,.1)":"failed"===e.status?"rgba(239,68,68,.1)":"rgba(245,158,11,.1)",color:"paid"===e.status?"#34D399":"failed"===e.status?"#EF4444":"#F59E0B",border:"paid"===e.status?"1px solid rgba(52,211,153,.2)":"failed"===e.status?"1px solid rgba(239,68,68,.2)":"1px solid rgba(245,158,11,.2)"},children:e.status})}
1),(0,le.jsx)("td",{style:{padding:"10px 14px",fontSize:10,color:"#475569",maxWidth:140,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.stripe_subscription_id?(0,le.jsx)("code",{style:{color:"#64748b"},children:e.stripe_subscription_id.slice(-14)}):"\u2014"})]},t)})})]})})})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)(Ye,{children:"\xc9v\xe9nements landing (30j)"}),(0,le.jsx)("div",{className:"bg-slate-900 border border-white/[0.06] rounded-2xl p-5",children:(0,le.jsx)(Qe,{authH:F})})]})]})}var Xe=s(77819),$e=s(38326);const et=window.location.origin,tt={draft:{label:"Brouillon",color:"text-slate-400",bg:"bg-slate-800/60 border-slate-700/30"},pending_review:{label:"En attente",color:"text-amber-400",bg:"bg-amber-600/10 border-amber-500/20"},validated:{label:"Valid\xe9",color:"text-emerald-400",bg:"bg-emerald-600/10 border-emerald-500/20"},needs_changes:{label:"\xc0 modifier",color:"text-red-400",bg:"bg-red-600/10 border-red-500/20"}},st=["monday","tuesday","wednesday","thursday","friday","saturday","sunday"],at={monday:"Lundi",tuesday:"Mardi",wednesday:"Mercredi",thursday:"Jeudi",friday:"Vendredi",saturday:"Samedi",sunday:"Dimanche"};function lt(e){let t=e.headers;const s=(0,r.useState)([]),a=(0,l.A)(s,2),i=a[0],d=a[1],o=(0,r.useState)(!0),c=(0,l.A)(o,2),x=c[0],m=c[1],u=(0,r.useState)(null),p=(0,l.A)(u,2),h=p[0],b=p[1],g=(0,r.useState)(""),f=(0,l.A)(g,2),j=f[0],v=f[1],N=(0,r.useState)(!1),y=(0,l.A)(N,2),w=y[0],_=y[1],k=(0,r.useState)("all"),S=(0,l.A)(k,2),C=S[0],z=S[1],E=async()=>{m(!0);try{const e=await n.A.get("".concat(et,"/api/planning/admin/all"),{headers:t()});d(e.data||[])}catch(e){}m(!1)};(0,r.useEffect)(()=>{E()},[]);const R=async e=>{if(h){_(!0);try{await n.A.post("".concat(et,"/api/planning/admin/validate/").concat(h.id),{comment:j,status:e},{headers:t()}),await E(),b(null),v("")}catch(s){}_(!1)}},T="all"===C?i:i.filter(e=>e.status===C),F=i.filter(e=>"pending_review"===e.status).length;if(h){const e=tt[h.status]||tt.draft;return(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsxs)("div",{className:"flex items-center gap-3",children:[(0,le.jsx)("button",{onClick:()=>{b(null),v("")},className:"p-2 rounded-xl border border-white/8 text-slate-400 hover:text-white transition-all",children:(0,le.jsx)(q.A,{size:14})}),(0,le.jsxs)("div",{children:[(0,le.jsx)("h3",{className:"text-white font-bold text-sm",children:h.user_name||h.user_email}),(0,le.jsxs)("p",{className:"text-slate-500 text-xs",children:["Semaine du ",h.week_start]})]}),(0,le.jsx)("div",{className:"ml-auto flex items-center gap-1.5 px-3 py-1 rounded-full border text-xs font-semibold ".concat(e.bg," ").concat(e.color),children:e.label})]}),h.goals&&(0,le.jsxs)("div",{className:"bg-slate-900 border border-blue-500/10 rounded-xl p-4",children:[(0,le.jsx)("p",{className:"text-blue-400 text-xs font-semibold mb-1.5",children:"Objectifs de la semaine"}),(0,le.jsx)("p",{className:"text-slate-300 text-sm leading-relaxed",children:h.goals})]}),(0,le.jsx)("div",{className:"grid sm:grid-cols-2 gap-2",children:st.map(e=>h[e]?(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-xl px-4 py-3",children:[(0,le.jsx)("p",{className:"text-slate-500 text-xs font-semibold mb-1",children:at[e]}),(0,le.jsx)("p",{className:"text-slate-300 text-sm",children:h[e]})]},e):null)}),h.coach_comment&&(0,le.jsxs)("div",{className:"bg-amber-600/8 border border-amber-500/15 rounded-xl p-3",children:[(0,le.jsx)("p",{className:"text-amber-400 text-xs font-semibold mb-1",children:"Commentaire pr\xe9c\xe9dent"}),(0,le.jsx)("p",{className:"text-slate-300 text-sm",children:h.coach_comment})]}),(0,le.jsxs)("div",{className:"space-y-3",children:[(0,le.jsx)("textarea",{value:j,onChange:e=>v(e.target.value),placeholder:"Ajoute un commentaire pour le membre (optionnel)\u2026",rows:3,"data-testid":"admin-plan-comment",className:"w-full bg-slate-900 border border-white/8 rounded-xl px-4 py-3 text-white text-sm placeholder-slate-600 focus:outline-none focus:border-blue-500/40 resize-none transition-colors"}),(0,le.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,le.jsxs)("button",{onClick:()=>R("validated"),disabled:w,"data-testid":"admin-plan-validate",className:"flex items-center justify-center gap-2 py-3 rounded-xl bg-emerald-600/15 border border-emerald-500/25 text-emerald-400 hover:bg-emerald-600/25 font-bold text-sm transition-all disabled:opacity-50",children:[w?(0,le.jsx)("span",{className:"w-4 h-4 border-2 border-emerald-400/30 border-t-emerald-400 rounded-full animate-spin"}):(0,le.jsx)(Oe.A,{size:14}),"Valider"]}),(0,le.jsxs)("button",{onClick:()=>R("needs_changes"),disabled:w,"data-testid":"admin-plan-reject",className:"flex items-center justify-center gap-2 py-3 rounded-xl bg-red-600/15 border border-red-500/25 text-red-400 hover:bg-red-600/25 font-bold text-sm transition-all disabled:opacity-50",children:[(0,le.jsx)(Xe.A,{size:14})," \xc0 modifier"]})]})]})]})}return(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsxs)("h2",{className:"text-lg font-bold text-white flex items-center gap-2",children:[(0,le.jsx)(V.A,{size:16,className:"text-blue-400"})," Plannings Membres"]}),(0,le.jsxs)("p",{className:"text-slate-500 text-xs mt-0.5",children:[(0,le.jsx)("span",{className:"text-amber-400 font-bold",children:F})," en attente \xb7 ",i.length," total"]})]}),(0,le.jsxs)("div",{className:"flex items-center gap-2",children:[(0,le.jsxs)("select",{value:C,onChange:e=>z(e.target.value),className:"bg-slate-900 border border-white/8 rounded-xl px-3 py-2 text-white text-xs focus:outline-none",children:[(0,le.jsx)("option",{value:"all",children:"Tous"}),(0,le.jsx)("option",{value:"pending_review",children:"En attente"}),(0,le.jsx)("option",{value:"validated",children:"Valid\xe9s"}),(0,le.jsx)("option",{value:"needs_changes",children:"\xc0 modifier"}),(0,le.jsx)("option",{value:"draft",children:"Brouillons"})]}),(0,le.jsx)("button",{onClick:E,className:"p-2 text-slate-400 hover:text-white border border-white/8 rounded-xl transition-colors",children:(0,le.jsx)(A.A,{size:14})})]})]}),x?(0,le.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,le.jsx)("span",{className:"w-5 h-5 border-2 border-blue-400/30 border-t-blue-400 rounded-full animate-spin"})}):0===T.length?(0,le.jsxs)("div",{className:"text-center py-12 bg-slate-900 border border-white/5 rounded-2xl text-slate-500 text-sm",children:[(0,le.jsx)(V.A,{size:28,className:"mx-auto mb-2 opacity-30"}),"Aucun planning"]}):(0,le.jsx)("div",{className:"space-y-2",children:T.map(e=>{var t;const s=tt[e.status]||tt.draft,a=st.some(t=>e[t]);return(0,le.jsxs)("button",{onClick:()=>{b(e),v(e.coach_comment||"")},"data-testid":"admin-plan-row-".concat(e.id),className:"w-full flex items-center gap-3 bg-slate-900 border border-white/5 hover:border-blue-500/15 rounded-xl px-4 py-3.5 transition-all text-left",children:[(0,le.jsx)("div",{className:"w-9 h-9 rounded-full bg-blue-600/15 border border-blue-500/20 flex items-center justify-center text-blue-400 text-sm font-bold flex-shrink-0",children:null===(t=(e.user_name||e.user_email||"M")[0])||void 0===t?void 0:t.toUpperCase()}),(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsx)("p",{className:"text-white font-semibold text-sm truncate",children:e.user_name||e.user_email}),(0,le.jsxs)("p",{className:"text-slate-500 text-xs",children:["Semaine du ",e.week_start," \xb7 ",a?"Planning rempli":"Vide"]})]}),(0,le.jsx)("div",{className:"flex items-center gap-1 px-2 py-0.5 rounded-full border text-xs font-semibold flex-shrink-0 ".concat(s.bg," ").concat(s.color),children:s.label}),(0,le.jsx)($e.A,{size:14,className:"text-slate-600 flex-shrink-0"})]},e.id)})})]})}var rt=s(64830);const it=window.location.origin,nt=["G\xe9n\xe9ral","D\xe9butant","Strat\xe9gie","Technique","Avanc\xe9","Bonus"],dt=[{value:"starter",label:"Starter (tous)"},{value:"mini_elite",label:"Accompagnement (129,99\u20ac)"},{value:"elite",label:"\xc9lite uniquement"}];function ot(e){if(!e)return null;const t=e.match(/(?:youtube\.com\/(?:[^/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?/\s]{11})/);return t?t[1]:null}const ct={title:"",description:"",youtube_url:"",category:"G\xe9n\xe9ral",required_plan:"starter"};
1function xt(){const e=(0,se.A)().authHeaders,t=(0,r.useState)([]),s=(0,l.A)(t,2),i=s[0],d=s[1],o=(0,r.useState)(ct),c=(0,l.A)(o,2),x=c[0],m=c[1],u=(0,r.useState)(null),p=(0,l.A)(u,2),h=p[0],b=p[1],g=(0,r.useState)(!1),f=(0,l.A)(g,2),j=f[0],v=f[1],N=(0,r.useState)(!1),y=(0,l.A)(N,2),w=y[0],A=y[1],k=(0,r.useState)(""),S=(0,l.A)(k,2),z=S[0],E=S[1],R=(0,r.useState)(null),T=(0,l.A)(R,2),D=(T[0],T[1],()=>{n.A.get("".concat(it,"/api/admin/videos"),{headers:e()}).then(e=>d(e.data||[])).catch(()=>{})});(0,r.useEffect)(()=>{D()},[]);const L=e=>{E(e),setTimeout(()=>E(""),3e3)},P=()=>{m(ct),b(null),v(!1)},M=ot(x.youtube_url);return(0,le.jsxs)("div",{className:"space-y-6",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h2",{className:"text-white font-bold text-lg",style:{fontFamily:"Outfit, sans-serif"},children:"Vid\xe9os Formation"}),(0,le.jsxs)("p",{className:"text-slate-400 text-sm",children:[i.length," vid\xe9o",i.length>1?"s":""," au total"]})]}),(0,le.jsxs)("button",{onClick:()=>{v(!j),j&&P()},"data-testid":"add-video-btn",className:"flex items-center gap-2 bg-blue-600 hover:bg-blue-500 text-white px-4 py-2 rounded-xl text-sm font-bold transition-colors",children:[j?(0,le.jsx)(q.A,{size:14}):(0,le.jsx)(_.A,{size:14}),j?"Annuler":"Ajouter une vid\xe9o"]})]}),z&&(0,le.jsxs)("div",{className:"flex items-center gap-2 px-4 py-3 rounded-xl text-sm font-semibold border\n ".concat(z.startsWith("Erreur")?"bg-red-500/10 border-red-500/20 text-red-400":"bg-emerald-500/10 border-emerald-500/20 text-emerald-400"),children:[(0,le.jsx)(C.A,{size:15})," ",z]}),j&&(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/10 rounded-2xl p-5 space-y-4",children:[(0,le.jsx)("h3",{className:"text-white font-bold text-sm",children:h?"Modifier la vid\xe9o":"Nouvelle vid\xe9o"}),(0,le.jsxs)("div",{className:"grid md:grid-cols-2 gap-4",children:[(0,le.jsxs)("div",{className:"space-y-1",children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold",children:"Titre *"}),(0,le.jsx)("input",{"data-testid":"video-title-input",value:x.title,onChange:e=>m(t=>(0,a.A)((0,a.A)({},t),{},{title:e.target.value})),placeholder:"Ex: Comment trouver les meilleures niches",className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm focus:outline-none focus:border-blue-500/40"})]}),(0,le.jsxs)("div",{className:"space-y-1",children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold",children:"URL YouTube *"}),(0,le.jsx)("input",{"data-testid":"video-url-input",value:x.youtube_url,onChange:e=>m(t=>(0,a.A)((0,a.A)({},t),{},{youtube_url:e.target.value})),placeholder:"https://youtu.be/xxx ou https://youtube.com/watch?v=xxx",className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm focus:outline-none focus:border-blue-500/40"})]}),(0,le.jsxs)("div",{className:"space-y-1",children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold",children:"Cat\xe9gorie"}),(0,le.jsx)("select",{"data-testid":"video-category-select",value:x.category,onChange:e=>m(t=>(0,a.A)((0,a.A)({},t),{},{category:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm focus:outline-none",children:nt.map(e=>(0,le.jsx)("option",{value:e,children:e},e))})]}),(0,le.jsxs)("div",{className:"space-y-1",children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold",children:"Accessible \xe0 partir de"}),(0,le.jsx)("select",{"data-testid":"video-plan-select",value:x.required_plan,onChange:e=>m(t=>(0,a.A)((0,a.A)({},t),{},{required_plan:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm focus:outline-none",children:dt.map(e=>(0,le.jsx)("option",{value:e.value,children:e.label},e.value))})]})]}),(0,le.jsxs)("div",{className:"space-y-1",children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold",children:"Description (optionnel)"}),(0,le.jsx)("textarea",{"data-testid":"video-description-input",value:x.description,onChange:e=>m(t=>(0,a.A)((0,a.A)({},t),{},{description:e.target.value})),rows:2,placeholder:"Courte description de ce que l'on apprend dans cette vid\xe9o...",className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm resize-none focus:outline-none focus:border-blue-500/40"})]}),M&&(0,le.jsxs)("div",{className:"space-y-1",children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold",children:"Aper\xe7u miniature"}),(0,le.jsxs)("div",{className:"relative w-48 rounded-xl overflow-hidden border border-white/10",children:[(0,le.jsx)("img",{src:"https://img.youtube.com/vi/".concat(M,"/maxresdefault.jpg"),alt:"aper\xe7u",className:"w-full"}),(0,le.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-black/30",children:(0,le.jsx)("div",{className:"w-10 h-10 rounded-full bg-white/90 flex items-center justify-center",children:(0,le.jsx)(rt.A,{size:16,className:"text-slate-900 ml-0.5"})})})]})]}),(0,le.jsxs)("div",{className:"flex gap-3 pt-2",children:[(0,le.jsx)("button",{onClick:P,className:"px-4 py-2 text-sm text-slate-400 hover:text-white border border-white/8 rounded-xl transition-colors",children:"Annuler"}),(0,le.jsx)("button",{"data-testid":"video-save-btn",onClick:async()=>
1{if(x.title.trim()&&x.youtube_url.trim()){A(!0);try{h?(await n.A.put("".concat(it,"/api/admin/videos/").concat(h),x,{headers:e()}),L("Vid\xe9o mise \xe0 jour \u2713")):(await n.A.post("".concat(it,"/api/admin/videos"),x,{headers:e()}),L("Vid\xe9o ajout\xe9e \u2713")),m(ct),b(null),v(!1),D()}catch(a){var t,s;L("Erreur : "+((null===(t=a.response)||void 0===t||null===(s=t.data)||void 0===s?void 0:s.detail)||a.message))}finally{A(!1)}}},disabled:w||!x.title.trim()||!x.youtube_url.trim(),className:"flex items-center gap-2 px-5 py-2 bg-blue-600 hover:bg-blue-500 disabled:opacity-40 text-white text-sm font-bold rounded-xl transition-colors",children:w?"Sauvegarde...":h?"Mettre \xe0 jour":"Ajouter la vid\xe9o"})]})]}),0===i.length?(0,le.jsxs)("div",{className:"text-center py-16 text-slate-500",children:[(0,le.jsx)(rt.A,{size:36,className:"mx-auto mb-3 opacity-30"}),(0,le.jsx)("p",{className:"font-semibold text-slate-400",children:"Aucune vid\xe9o ajout\xe9e"}),(0,le.jsx)("p",{className:"text-sm mt-1",children:'Clique sur "Ajouter une vid\xe9o" pour commencer.'})]}):(0,le.jsx)("div",{className:"space-y-3",children:i.map((t,s)=>{var a;const l=ot(t.youtube_url),r=l?"https://img.youtube.com/vi/".concat(l,"/mqdefault.jpg"):null,i=(null===(a=dt.find(e=>e.value===t.required_plan))||void 0===a?void 0:a.label)||t.required_plan;return(0,le.jsxs)("div",{"data-testid":"admin-video-row-".concat(t.id),className:"flex items-center gap-4 bg-slate-900 border border-white/8 rounded-xl p-3 hover:border-white/15 transition-colors",children:[(0,le.jsx)("div",{className:"relative w-20 h-12 rounded-lg overflow-hidden bg-slate-800 flex-shrink-0",children:r?(0,le.jsx)("img",{src:r,alt:t.title,className:"w-full h-full object-cover"}):(0,le.jsx)("div",{className:"w-full h-full flex items-center justify-center",children:(0,le.jsx)(rt.A,{size:16,className:"text-slate-600"})})}),(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 flex-wrap mb-0.5",children:[(0,le.jsx)("span",{className:"text-[10px] font-bold px-1.5 py-0.5 rounded-full bg-slate-700/60 text-slate-300 border border-slate-600/40",children:t.category}),(0,le.jsx)("span",{className:"text-[10px] text-slate-500",children:i})]}),(0,le.jsx)("p",{className:"text-white text-sm font-semibold truncate",children:t.title}),t.description&&(0,le.jsx)("p",{className:"text-slate-500 text-xs truncate",children:t.description})]}),(0,le.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[l&&(0,le.jsx)("a",{href:"https://youtu.be/".concat(l),target:"_blank",rel:"noopener noreferrer",className:"p-1.5 text-slate-500 hover:text-blue-400 transition-colors",title:"Voir sur YouTube",children:(0,le.jsx)(rt.A,{size:14})}),(0,le.jsx)("button",{onClick:()=>(e=>{m({title:e.title,description:e.description||"",youtube_url:e.youtube_url,category:e.category||"G\xe9n\xe9ral",required_plan:e.required_plan||"starter"}),b(e.id),v(!0),window.scrollTo({top:0,behavior:"smooth"})})(t),"data-testid":"edit-video-".concat(t.id),className:"p-1.5 text-slate-500 hover:text-white transition-colors",title:"Modifier",children:(0,le.jsx)(I.A,{size:14})}),(0,le.jsx)("button",{onClick:()=>(async t=>{window.confirm("Supprimer cette vid\xe9o ?")&&(await n.A.delete("".concat(it,"/api/admin/videos/").concat(t),{headers:e()}),L("Vid\xe9o supprim\xe9e"),D())})(t.id),"data-testid":"delete-video-".concat(t.id),className:"p-1.5 text-slate-500 hover:text-red-400 transition-colors",title:"Supprimer",children:(0,le.jsx)(F.A,{size:14})})]})]},t.id)})})]})}var mt=s(14459),ut=s(81885),pt=s(87978),ht=s(2861),bt=s(56382);const gt=window.location.origin,ft=[{value:"none",label:"Aucun plan",color:"text-slate-400 border-slate-600/30 bg-slate-700/20"},{value:"free",label:"Free",color:"text-slate-400 border-slate-500/30 bg-slate-600/10"},{value:"starter",label:"Starter",color:"text-sky-400 border-sky-500/30 bg-sky-600/10"},{value:"pro",label:"Pro",color:"text-teal-400 border-teal-500/30 bg-teal-600/10"},{value:"elite",label:"Elite",color:"text-indigo-400 border-indigo-500/30 bg-indigo-600/10"}],jt=[{value:"none",label:"Aucun"},{value:"active",label:"Actif"},{value:"canceled",label:"Annul\xe9"},{value:"past_due",label:"Paiement en retard"},{value:"refunded",label:"Rembours\xe9"},{value:"trialing",label:"Essai"}];function vt(e){const t=(e=>{if(!e||"none"===e)return"none";const t=String(e).toLowerCase();return t.includes("starter")?"starter":t.includes("pro")?"pro":t.includes("elite")?"elite":t.includes("free")?"free":["tools","lp_tools","bot","trial","starter_live"].includes(t)?"starter":["methode","formation","lp_ecosystem"].includes(t)?"pro":["mini_elite","all_access","lp_premium","accompagnement"].includes(t)?"elite":"free"})(e),s=ft.find(e=>e.value===t)||ft[0];return(0,le.jsx)("span",{className:"text-xs px-2.5 py-0.5 rounded-full border font-bold ".concat(s.color),children:s.label})}function Nt(e){return e?(0,le.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-full border font-semibold ".concat({active:"text-green-400 bg-green-500/10 border-green-500/20",canceled:"text-orange-400 bg-orange-500/10 border-orange-500/20",past_due:"text-red-400 bg-red-500/10 border-red-500/20",refunded:"text-slate-400 bg-slate-700/20 border-slate-600/20",trialing:"text-blue-400 bg-blue-500/10 border-blue-500/20"}[e]||"text-slate-400 border-slate-600/20 bg-slate-700/20"),children:e}):(0,le.jsx)("span",{className:"text-slate-600 text-xs",children:"\u2014"})}function yt(e){if(!e)return"\u2014";const t=Math.floor((Date.now()-new Date(e).getTime())/864e5);return 0===t?"Aujourd'hui":1===t?"Hier":"Il y a ".concat(t,"j")}function wt(e){var t,s,a,i,d,o,c,x,m,p,b,g,f,j,v,N,w,_,k,S,z,E;let R=e.user,T=e.onClose,F=e.onUpdated;const D=(0,se.A)().authHeaders,L=(0,r.useState)(null),P=(0,l.A)(L,2),M=P[0],O=P[1],V=(0,r.useState)(!0),B=(0,l.A)(V,2),U=B[0],W=B[1],H=(0,r.useState)(!1),Y=(0,l.A)(H,2),G=Y[0],K=Y[1],J=(0,r.useState)({text:"",type:""}),Q=(0,l.A)(J,2),Z=Q[0],X=Q[1],$=(0,r.useState)("info"),ee=(0,l.A)($,2),te=ee[0],ae=ee[1],re=(0,r.useState)("none"),ie=(0,l.A)(re,2),ne=ie[0],de=ie[1],oe=(0,r.useState)("none"),ce=(0,l.A)(oe,2),xe=ce[0],me=ce[1],ue=(0,r.useState)(""),pe=(0,l.A)(ue,2),he=pe[0],be=pe[1],ge=(0,r.useState)(""),fe=(0,l.A)(ge,2),je=fe[0],ve=fe[1],Ne=(0,r.useState)(""),ye=(0,l.A)(Ne,2),Ae=ye[0],_e=ye[1],ke=(0,r.useState)(""),Se=(0,l.A)(ke,2),Ce=Se[0],ze=Se[1],Ee=(0,r.useState)(null),Re=(0,l.A)(Ee,2),Te=Re[0],Fe=Re[1],De=(0,r.useState)(!1),Ie=(0,l.A)(De,2),Le=Ie[0],qe=Ie[1],Me=(0,r.useState)(""),Oe=(0,l.A)(Me,2),Ve=Oe[0],Be=Oe[1],Ue=(0,r.useState)("permanent"),We=(0,l.A)(Ue,2),He=We[0],Ye=We[1],Ge=(0,r.useState)(""),Ke=(0,l.A)(Ge,2),Je=Ke[0],Qe=Ke[1],Ze=(0,r.useState)(!1),$e=(0,l.A)(Ze,2),et=$e[0],tt=$e[1],st=(0,r.useState)(""),at=(0,l.A)(st,2),lt=
1at[0],rt=at[1],it=(0,r.useState)(""),nt=(0,l.A)(it,2),dt=nt[0],ot=nt[1],ct=(0,r.useState)(""),xt=(0,l.A)(ct,2),wt=xt[0],_t=xt[1],kt=(0,r.useState)(""),St=(0,l.A)(kt,2),Ct=St[0],zt=St[1],Et=(0,r.useState)(!1),Rt=(0,l.A)(Et,2),Tt=Rt[0],Ft=Rt[1],Dt=(0,r.useState)({admin_logs:[],credits_logs:[]}),It=(0,l.A)(Dt,2),Lt=It[0],qt=It[1],Pt=(0,r.useState)(!1),Mt=(0,l.A)(Pt,2),Ot=Mt[0],Vt=Mt[1],Bt=(0,r.useState)([]),Ut=(0,l.A)(Bt,2),Wt=Ut[0],Ht=Ut[1],Yt=(0,r.useState)(!1),Gt=(0,l.A)(Yt,2),Kt=Gt[0],Jt=Gt[1],Qt=(0,r.useCallback)(async()=>{try{var e;const t=await n.A.get("".concat(gt,"/api/admin/crm/users/").concat(R.id),{headers:D()});O(t.data),de(t.data.plan||"none"),me(t.data.subscription_status||"none"),be(t.data.bot_offered_until?t.data.bot_offered_until.slice(0,10):""),ve(t.data.admin_note||""),_e(Array.isArray(null===(e=t.data.roles)||void 0===e?void 0:e.roles)?t.data.roles.roles.join(", "):Array.isArray(t.data.roles)?t.data.roles.join(", "):"member"),rt(t.data.discord_id||""),ot(t.data.skool_email||""),_t(t.data.skool_status||"")}catch(t){}finally{W(!1)}},[R.id]),Zt=(0,r.useCallback)(async()=>{Vt(!0);try{const e=await n.A.get("".concat(gt,"/api/admin/users/").concat(R.id,"/logs"),{headers:D()});qt(e.data)}catch(e){}finally{Vt(!1)}},[R.id,D]),Xt=(0,r.useCallback)(async()=>{qe(!0);try{const e=await n.A.get("".concat(gt,"/api/credits/admin/user/").concat(R.id),{headers:D()});Fe(e.data)}catch(e){}finally{qe(!1)}},[R.id,D]);(0,r.useEffect)(()=>{Qt()},[Qt]),(0,r.useEffect)(()=>{"logs"===te&&Zt()},[te,Zt]),(0,r.useEffect)(()=>{"quotas"!==te&&"credits"!==te||Xt()},[te,Xt]),(0,r.useEffect)(()=>{"vinted"===te&&(Jt(!0),n.A.get("".concat(gt,"/api/admin/crm/users/").concat(R.id,"/vinted"),{headers:D()}).then(e=>{var t;return Ht((null===(t=e.data)||void 0===t?void 0:t.accounts)||[])}).catch(()=>Ht([])).finally(()=>Jt(!1)))},[te,R.id,D]);const $t=function(e){X({text:e,type:arguments.length>1&&void 0!==arguments[1]?arguments[1]:"ok"}),setTimeout(()=>X({text:"",type:""}),3e3)},es=async(e,t)=>{if(!Ce.trim()||Ce.trim().length<5)return $t("La raison est obligatoire (minimum 5 caract\xe8res)","err"),!1;K(!0);try{const s=await n.A.post("".concat(gt,"/api/admin/users/").concat(R.id,"/override"),{field:e,new_value:null===t?"null":String(t),reason:Ce.trim()},{headers:D()});return $t('\u2713 Champ "'.concat(e,'" mis \xe0 jour')),O(s.data.user),F&&F(s.data.user),!0}catch(l){var s,a;return $t((null===(s=l.response)||void 0===s||null===(a=s.data)||void 0===a?void 0:a.detail)||"Erreur","err"),!1}finally{K(!1)}};return(0,le.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/75 backdrop-blur-sm","data-testid":"crm-user-modal",children:(0,le.jsxs)("div",{className:"w-full max-w-3xl bg-[#0c1120] border border-white/10 rounded-2xl overflow-hidden shadow-2xl max-h-[92vh] flex flex-col",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b border-white/8 flex-shrink-0 bg-slate-900/60",children:[(0,le.jsxs)("div",{className:"flex items-center gap-3",children:[(0,le.jsx)("div",{className:"w-10 h-10 rounded-full bg-gradient-to-br from-blue-500/30 to-purple-600/30 border border-white/10 flex items-center justify-center text-white font-bold text-sm",children:(R.name||R.email||"?").charAt(0).toUpperCase()}),(0,le.jsxs)("div",{children:[(0,le.jsx)("h2",{className:"text-white font-bold text-sm",children:R.name||"\u2014"}),(0,le.jsx)("p",{className:"text-slate-500 text-xs",children:R.email})]}),(0,le.jsx)("div",{className:"ml-2",children:vt(R.plan)})]}),(0,le.jsx)("button",{onClick:T,className:"text-slate-400 hover:text-white transition-colors p-1.5 rounded-lg hover:bg-white/5",children:(0,le.jsx)(q.A,{size:16})})]}),(0,le.jsx)("div",{className:"flex border-b border-white/8 bg-slate-900/40 flex-shrink-0 overflow-x-auto",children:[{id:"info",label:"Infos",icon:mt.A},{id:"vinted",label:"Vinted",icon:ut.A},{id:"edit",label:"Plan",icon:I.A},{id:"quotas",label:"Cr\xe9dits Total",icon:y.A},{id:"logs",label:"Historique",icon:pt.A}].map(e=>(0,le.jsxs)("button",{onClick:()=>ae(e.id),"data-testid":"crm-tab-".concat(e.id),className:"flex items-center gap-1.5 px-4 py-3 text-xs font-semibold transition-colors border-b-2 ".concat(te===e.id?"border-blue-500 text-blue-400":"border-transparent text-slate-500 hover:text-slate-300"),children:[(0,le.jsx)(e.icon,{size:13})," ",e.label]},e.id))}),(0,le.jsx)("div",{className:"overflow-y-auto flex-1 p-5",children:U?(0,le.jsxs)("div",{className:"text-center py-16 text-slate-500 text-sm flex items-center justify-center gap-2",children:[(0,le.jsx)(we.A,{size:16,className:"animate-spin"})," Chargement du profil\u2026"]}):M?(0,le.jsxs)(le.Fragment,{children:["info"===te&&(0,le.jsxs)("div",{className:"space-y-4",children:[(0,le.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3",children:[{label:"Cr\xe9dits permanents",value:null!==(t=M.credits_permanent)&&void 0!==t?t:0,color:"text-amber-400",icon:Pe.A},{label:"Cr\xe9dits mensuels",value:"".concat(null!==(s=M.credits_monthly)&&void 0!==s?s:0," / ").concat(null!==(a=M.credits_monthly_cap)&&void 0!==a?a:0),color:"text-blue-400",icon:A.A},{label:"Ventes totales",value:null!==(i=M.total_sales)&&void 0!==i?i:0,color:"text-green-400",icon:C.A},{label:"Total d\xe9pens\xe9",value:"".concat(null!==(d=M.total_spent)&&void 0!==d?d:0,"\u20ac"),color:"text-purple-400",icon:h.A}].map((e,t)=>(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-xl p-3",children:[(0,le.jsx)(e.icon,{size:13,className:"".concat(e.color," mb-1.5")}),(0,le.jsx)("p",{className:"text-white font-bold text-base",children:e.value}),(0,le.jsx)("p",{className:"text-slate-500 text-xs",children:e.label})]},t))}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-xl p-4 grid grid-cols-2 gap-x-6 gap-y-3 text-xs",children:[(0,le.jsx)(At,{label:"ID",value:M.id,mono:!0}),(0,le.jsx)(At,{label:"Email",value:M.email}),(0,le.jsx)(At,{label:"Plan",value:(0,le.jsx)("span",{children:vt(M.plan)})}),(0,le.jsx)(At,{label:"Statut abo.",value:(0,le.jsx)("span",{children:Nt(M.subscription_status)})}
1),(0,le.jsx)(At,{label:"Stripe customer",value:M.stripe_customer_id,mono:!0,small:!0}),(0,le.jsx)(At,{label:"Stripe sub.",value:M.stripe_subscription_id,mono:!0,small:!0}),(0,le.jsx)(At,{label:"Stripe Price ID",value:M.stripe_price_id,mono:!0,small:!0}),(0,le.jsx)(At,{label:"Period end",value:M.current_period_end?M.current_period_end.slice(0,10):"\u2014"}),(0,le.jsx)(At,{label:"Bot offert jusqu'au",value:M.bot_offered_until?M.bot_offered_until.slice(0,10):"\u2014",highlight:!!M.bot_offered_until}),(0,le.jsx)(At,{label:"CGV accept\xe9es",value:M.cgv_version_accepted||"\u2014"}),(0,le.jsx)(At,{label:"Inscrit le",value:(null===(o=M.created_at)||void 0===o?void 0:o.slice(0,10))||"\u2014"}),(0,le.jsx)(At,{label:"Derni\xe8re activit\xe9",value:yt(M.last_active_at)}),(0,le.jsx)(At,{label:"Discord ID",value:M.discord_id||"\u2014",mono:!0,small:!0}),(0,le.jsx)(At,{label:"R\xf4les",value:Array.isArray(M.roles)?M.roles.join(", "):"object"===typeof M.roles&&M.roles?JSON.stringify(M.roles):M.roles||"\u2014"}),M.admin_note&&(0,le.jsx)("div",{className:"col-span-2",children:(0,le.jsx)(At,{label:"Note admin",value:M.admin_note,highlight:!0})})]}),M.application&&(0,le.jsxs)("div",{className:"bg-slate-900 border border-blue-500/15 rounded-xl p-4",children:[(0,le.jsx)("p",{className:"text-blue-400 font-bold text-xs uppercase tracking-wider mb-3",children:"Candidature / Questionnaire"}),(0,le.jsxs)("div",{className:"grid grid-cols-2 gap-x-6 gap-y-1.5 text-xs",children:[M.application.vinted_level&&(0,le.jsx)(At,{label:"Niveau Vinted",value:M.application.vinted_level}),M.application.budget&&(0,le.jsx)(At,{label:"Budget d\xe9clar\xe9",value:M.application.budget}),M.application.objective&&(0,le.jsx)(At,{label:"Objectif",value:M.application.objective}),M.application.hours_per_week&&(0,le.jsx)(At,{label:"Heures/semaine",value:"".concat(M.application.hours_per_week,"h")}),M.application.main_blocker&&(0,le.jsx)(At,{label:"Blocage principal",value:M.application.main_blocker}),M.application.offer&&(0,le.jsx)(At,{label:"Formule recommand\xe9e",value:M.application.offer,highlight:!0}),null!=M.application.score&&(0,le.jsx)(At,{label:"Score",value:"".concat(M.application.score,"/100"),highlight:!0})]})]}),((null===(c=M.saved_niches)||void 0===c?void 0:c.length)>0||(null===(x=M.niche_analyses)||void 0===x?void 0:x.length)>0||(null===(m=M.ventes_stats)||void 0===m?void 0:m.total)>0)&&(0,le.jsxs)("div",{className:"bg-slate-900 border border-teal-500/15 rounded-xl p-4",children:[(0,le.jsx)("p",{className:"text-teal-400 font-bold text-xs uppercase tracking-wider mb-3",children:"Resell OS"}),(0,le.jsxs)("div",{className:"grid grid-cols-3 gap-3 mb-3 text-center",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("div",{className:"text-white font-black text-sm",children:null!==(p=null===(b=M.saved_niches)||void 0===b?void 0:b.length)&&void 0!==p?p:0}),(0,le.jsx)("div",{className:"text-slate-500 text-[10px]",children:"Dossiers niches"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("div",{className:"text-white font-black text-sm",children:null!==(g=M.trackers_count)&&void 0!==g?g:0}),(0,le.jsx)("div",{className:"text-slate-500 text-[10px]",children:"Trackers"})]}),(0,le.jsxs)("div",{children:[(0,le.jsxs)("div",{className:"text-emerald-400 font-black text-sm",children:[null!==(f=null===(j=M.ventes_stats)||void 0===j?void 0:j.marge_totale)&&void 0!==f?f:0,"\u20ac"]}),(0,le.jsx)("div",{className:"text-slate-500 text-[10px]",children:"Marge totale"})]})]}),(null===(v=M.niche_analyses)||void 0===v?void 0:v.length)>0&&(0,le.jsxs)("div",{className:"space-y-1 mt-2",children:[(0,le.jsx)("p",{className:"text-slate-500 text-[10px] font-semibold uppercase tracking-wide mb-1",children:"Derni\xe8res analyses"}),M.niche_analyses.map((e,t)=>(0,le.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,le.jsx)("span",{className:"text-slate-400",children:e.niche}),e.verdict&&(0,le.jsx)("span",{className:"text-teal-400 font-bold",children:e.verdict})]},t))]})]}),(null===(N=M.payments)||void 0===N?void 0:N.length)>0&&(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-xl p-4",children:[(0,le.jsx)("p",{className:"text-white font-bold text-xs uppercase tracking-wider mb-3",children:"Paiements Stripe"}),M.payments.slice(0,5).map((e,t)=>{var s;return(0,le.jsxs)("div",{className:"flex items-center justify-between py-1.5 border-b border-white/4 last:border-0 text-xs",children:[(0,le.jsx)("span",{className:"text-slate-400",children:null===(s=e.created_at)||void 0===s?void 0:s.slice(0,10)}),(0,le.jsxs)("span",{className:"text-white font-semibold",children:[e.amount,"\u20ac"]}),(0,le.jsx)("span",{className:"text-slate-500",children:e.plan})]},t)})]}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-purple-500/15 rounded-xl p-4",children:[(0,le.jsx)("p",{className:"text-purple-400 font-bold text-xs uppercase tracking-wider mb-3",children:"Communaut\xe9"}),(0,le.jsxs)("div",{className:"grid grid-cols-2 gap-3 mb-4 text-xs",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-slate-500 text-[10px] mb-0.5",children:"Discord ID"}),(0,le.jsx)("p",{className:"text-slate-200 font-mono",children:M.discord_id||"\u2014"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-slate-500 text-[10px] mb-0.5",children:"Skool Email"}),(0,le.jsx)("p",{className:"text-slate-200",children:M.skool_email||"\u2014"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-slate-500 text-[10px] mb-0.5",children:"Skool Status"}),M.skool_status?(0,le.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-full border font-semibold ".concat("active"===M.skool_status?"text-emerald-400 bg-emerald-500/10 border-emerald-500/20":"inv
1ited"===M.skool_status?"text-blue-400 bg-blue-500/10 border-blue-500/20":"text-amber-400 bg-amber-500/10 border-amber-500/20"),children:M.skool_status}):(0,le.jsx)("span",{className:"text-slate-600",children:"\u2014"})]})]}),(0,le.jsxs)("div",{className:"space-y-2 border-t border-white/5 pt-3",children:[(0,le.jsx)("p",{className:"text-slate-500 text-[10px] font-semibold uppercase tracking-wide",children:"Modifier"}),(0,le.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,le.jsx)("input",{placeholder:"Discord ID",value:lt,onChange:e=>rt(e.target.value),className:"bg-slate-800 border border-white/8 rounded-lg px-2 py-1.5 text-white text-xs font-mono"}),(0,le.jsx)("input",{placeholder:"Skool Email",value:dt,onChange:e=>ot(e.target.value),className:"bg-slate-800 border border-white/8 rounded-lg px-2 py-1.5 text-white text-xs"})]}),(0,le.jsxs)("div",{className:"flex gap-1.5",children:[["","pending","invited","active"].map(e=>(0,le.jsx)("button",{onClick:()=>_t(e),className:"text-[10px] px-2 py-1 rounded-full border transition-all ".concat(wt===e?"bg-white/10 border-white/30 text-white font-bold":"border-white/10 text-slate-500 hover:text-white"),children:e||"\u2014"},e)),(0,le.jsx)("button",{"data-testid":"crm-community-save-btn",disabled:Tt,onClick:async()=>{Ft(!0),zt("");try{await n.A.patch("".concat(gt,"/api/admin/crm/users/").concat(R.id,"/community"),{discord_id:lt||null,skool_email:dt||null,skool_status:wt||null},{headers:D()}),zt("Sauvegard\xe9"),await Qt()}catch(e){zt("Erreur")}Ft(!1)},className:"ml-auto text-[10px] px-3 py-1 rounded-full bg-purple-600/20 border border-purple-500/30 text-purple-300 hover:bg-purple-600/30 transition-all disabled:opacity-50 font-semibold",children:Tt?"\u2026":"Sauvegarder"})]}),Ct&&(0,le.jsx)("p",{className:"text-emerald-400 text-[10px]",children:Ct})]})]})]}),"vinted"===te&&(0,le.jsxs)("div",{className:"space-y-4","data-testid":"crm-vinted-tab",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsx)("p",{className:"text-white font-bold text-sm",children:"Comptes Vinted connect\xe9s"}),Kt&&(0,le.jsx)(we.A,{size:13,className:"animate-spin text-teal-400"})]}),!Kt&&0===Wt.length&&(0,le.jsxs)("div",{className:"text-center py-10 text-slate-500 text-sm",children:[(0,le.jsx)(ht.A,{size:24,className:"mx-auto mb-2 text-slate-700"}),"Aucun compte Vinted connect\xe9."]}),Wt.map((e,t)=>{var s,a;const l={active:"text-green-400 bg-green-500/10 border-green-500/20",expired:"text-red-400 bg-red-500/10 border-red-500/20",missing:"text-amber-400 bg-amber-500/10 border-amber-500/20"}[e.token_status]||"text-slate-400 bg-slate-700/20 border-slate-600/20";return(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-xl p-4",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsxs)("p",{className:"text-white font-semibold text-xs",children:["@",e.vinted_username||"\u2014"]}),e.alias&&(0,le.jsx)("p",{className:"text-slate-500 text-[10px]",children:e.alias})]}),(0,le.jsx)("span",{className:"text-[10px] px-2 py-0.5 rounded-full border font-semibold ".concat(l),children:e.token_status||"inconnu"})]}),(0,le.jsxs)("div",{className:"grid grid-cols-2 gap-x-4 gap-y-1 text-[10px]",children:[(0,le.jsxs)("div",{className:"text-slate-500",children:["Compte ID ",(0,le.jsxs)("span",{className:"text-slate-300 font-mono ml-1 text-[9px]",children:[(e.account_id||"\u2014").slice(0,12),"\u2026"]})]}),(0,le.jsxs)("div",{className:"text-slate-500",children:["Proxy ",(0,le.jsx)("span",{className:e.proxy_url?"text-green-400":"text-slate-600",children:e.proxy_url?"Oui":"Non"})]}),e.token_expired_at&&(0,le.jsxs)("div",{className:"col-span-2 text-red-400",children:["Expir\xe9 le ",null===(s=e.token_expired_at)||void 0===s?void 0:s.slice(0,10)]}),e.token_last_checked_at&&(0,le.jsxs)("div",{className:"col-span-2 text-slate-600",children:["Derni\xe8re v\xe9rification : ",null===(a=e.token_last_checked_at)||void 0===a?void 0:a.slice(0,16).replace("T"," ")]})]})]},t)}),(null===M||void 0===M||null===(w=M.ai_usage_log)||void 0===w?void 0:w.length)>0&&(0,le.jsxs)("div",{className:"bg-slate-900 border border-blue-500/10 rounded-xl p-4",children:[(0,le.jsxs)("p",{className:"text-blue-400 font-bold text-xs uppercase tracking-wider mb-3 flex items-center gap-1.5",children:[(0,le.jsx)(bt.A,{size:12})," Activit\xe9 IA (20 derni\xe8res)"]}),(0,le.jsx)("div",{className:"space-y-1 max-h-48 overflow-y-auto",children:M.ai_usage_log.slice().reverse().map((e,t)=>{var s;return(0,le.jsxs)("div",{className:"flex items-center justify-between text-xs py-1 border-b border-white/4 last:border-0",children:[(0,le.jsx)("span",{className:"text-slate-400 font-mono text-[10px]",children:null===(s=e.key)||void 0===s?void 0:s.split("_").slice(2).join("_")}),(0,le.jsxs)("span",{className:"text-blue-400 font-bold",children:[e.count,"x"]})]},t)})})]})]}),"edit"===te&&(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsxs)("div",{className:"bg-slate-800/40 border border-amber-500/20 rounded-xl p-4 flex items-start gap-3",children:[(0,le.jsx)(u.A,{size:14,className:"text-amber-400 mt-0.5 flex-shrink-0"}),(0,le.jsx)("p",{className:"text-amber-300 text-xs",children:"Toutes les modifications sont logg\xe9es avec ton email admin, l'ancienne et la nouvelle valeur. Ne modifie pas l'abonnement Stripe depuis ici \u2014 utilise le Customer Portal pour \xe7a."})]}),(0,le.jsxs)("div",{children:[(0,le.jsxs)("label",{className:"text-slate-400 text-xs mb-1.5 block font-medium",children:["Raison de la modification * ",(0,le.jsx)("span",{className:"text-slate-600",children:"(obligatoire, min 5 chars)"})]}),(0,le.jsx)("input",{value:Ce,onChange:e=>ze(e.target.value),placeholder:"Ex: Paiement Stripe manual confirm\xe9, migration plan\u2026",className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm","data-testid":"crm-override-reason"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-slate-400 text-xs mb-2 font-medium",children:"Plan"}),(0,le.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-2",children:ft.map(e=>(0,le.jsxs)("button",{onClick:()=>de(e.value),"data-testid":"crm-plan-".concat(e.value),className:"px-3 py-2.5 rounded-xl text-xs font-semibold border transition-all ".concat(ne===e.value?"bg-white/10 border-white/30 text-white":"".concat(e.color," hover:border-white/20")),children:[ne===e.value&&"\u2713 ",e.label]},e.value))})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-slate-400 text-xs mb-2 font-medium",children:"Statut abonnement"}),(0,le.jsx)("div",{className:"flex flex-wrap gap-2",children:jt.map(e=>(0,le.jsxs)("button",{onClick:()=>me(e.value),"data-testid":"crm-status-".concat(e.value),className:"px-3 py-2 rounded-xl text-xs font-semibold border transition-all ".concat(xe===e.value?"bg-white/10 border-white/30 text-white":"border-white/8 text-slate-400 hover:border-white/20 hover:text-slate-300"),children:[xe===e.value&&"\u2713 ",e.label]},e.value))})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-slate-400 text-xs mb-2 font-medium",children:"Bot offert jusqu'au (date ISO)"}
1),(0,le.jsx)("input",{type:"date",value:he,onChange:e=>be(e.target.value),className:"bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm","data-testid":"crm-bot-until"}),(0,le.jsx)("p",{className:"text-slate-600 text-xs mt-1",children:"Laisser vide = pas de bot offert"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-slate-400 text-xs mb-2 font-medium",children:"R\xf4les (s\xe9par\xe9s par des virgules)"}),(0,le.jsx)("input",{value:Ae,onChange:e=>_e(e.target.value),placeholder:"Ex: member, affiliate, admin",className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm","data-testid":"crm-roles"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-slate-400 text-xs mb-2 font-medium",children:"Note interne admin"}),(0,le.jsx)("textarea",{value:je,onChange:e=>ve(e.target.value),rows:3,placeholder:"Note visible uniquement par l'\xe9quipe admin\u2026",className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm resize-none","data-testid":"crm-admin-note"})]}),Z.text&&(0,le.jsxs)("div",{className:"px-3 py-2.5 rounded-xl text-xs font-semibold flex items-center gap-2 ".concat("err"===Z.type?"bg-red-600/15 border border-red-500/30 text-red-400":"bg-green-600/15 border border-green-500/30 text-green-400"),"data-testid":"crm-save-feedback",children:["err"===Z.type?(0,le.jsx)(Xe.A,{size:12}):(0,le.jsx)(C.A,{size:12}),Z.text]}),(0,le.jsx)("button",{onClick:async()=>{var e;if(!await es("plan","none"===ne?null:ne))return;await es("subscription_status","none"===xe?null:xe),he&&await es("bot_offered_until",he+"T23:59:59Z");const t=Array.isArray(null===M||void 0===M||null===(e=M.roles)||void 0===e?void 0:e.roles)?M.roles.roles.join(", "):Array.isArray(null===M||void 0===M?void 0:M.roles)?M.roles.join(", "):"member";Ae!==t&&await es("roles",Ae),je!==((null===M||void 0===M?void 0:M.admin_note)||"")&&await es("admin_note",je)},disabled:G||!Ce.trim(),"data-testid":"crm-save-btn",className:"w-full flex items-center justify-center gap-2 px-4 py-3 bg-blue-600/20 border border-blue-500/30 text-blue-400 hover:bg-blue-600/30 disabled:opacity-50 disabled:cursor-not-allowed rounded-xl text-sm font-semibold transition-all",children:G?(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)(we.A,{size:13,className:"animate-spin"})," Enregistrement\u2026"]}):(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)(C.A,{size:13})," Sauvegarder les modifications"]})})]}),"quotas"===te&&(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-xl p-4 space-y-4",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsx)("p",{className:"text-white font-bold text-xs uppercase tracking-wider",children:"Solde & Portefeuille de Cr\xe9dits"}),(0,le.jsx)("button",{onClick:Xt,className:"text-slate-400 hover:text-white",children:(0,le.jsx)(A.A,{size:14})})]}),Le?(0,le.jsxs)("div",{className:"text-center py-4 text-slate-500 text-xs",children:[(0,le.jsx)(we.A,{size:14,className:"animate-spin inline mr-2"})," Chargement solde\u2026"]}):Te?(0,le.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3",children:[(0,le.jsxs)("div",{className:"bg-slate-800/60 p-3 rounded-xl border border-blue-500/20",children:[(0,le.jsx)("p",{className:"text-slate-400 text-xs mb-1",children:"Total Disponible"}),(0,le.jsxs)("p",{className:"text-white font-extrabold text-xl",children:[null!==(_=Te.total)&&void 0!==_?_:0," ",(0,le.jsx)("span",{className:"text-xs text-blue-400 font-normal",children:"cr."})]})]}),(0,le.jsxs)("div",{className:"bg-slate-800/60 p-3 rounded-xl border border-indigo-500/20",children:[(0,le.jsx)("p",{className:"text-slate-400 text-xs mb-1",children:"Cr\xe9dits Mensuels"}),(0,le.jsxs)("p",{className:"text-indigo-300 font-extrabold text-xl",children:[null!==(k=Te.credits_monthly)&&void 0!==k?k:0," ",(0,le.jsxs)("span",{className:"text-xs text-slate-500 font-normal",children:["/ ",null!==(S=Te.credits_monthly_cap)&&void 0!==S?S:0]})]})]}),(0,le.jsxs)("div",{className:"bg-slate-800/60 p-3 rounded-xl border border-amber-500/20",children:[(0,le.jsx)("p",{className:"text-slate-400 text-xs mb-1",children:"Cr\xe9dits Permanents"}),(0,le.jsxs)("p",{className:"text-amber-400 font-extrabold text-xl",children:[null!==(z=Te.credits_permanent)&&void 0!==z?z:0," ",(0,le.jsx)("span",{className:"text-xs text-amber-500/70 font-normal",children:"cr."})]})]}),(0,le.jsxs)("div",{className:"bg-slate-800/60 p-3 rounded-xl border border-emerald-500/20",children:[(0,le.jsx)("p",{className:"text-slate-400 text-xs mb-1",children:"\xc9quiv. Photos IA"}),(0,le.jsxs)("p",{className:"text-emerald-400 font-extrabold text-xl",children:[Math.floor((null!==(E=Te.total)&&void 0!==E?E:0)/20)," ",(0,le.jsx)("span",{className:"text-xs text-emerald-500/70 font-normal",children:"photos"})]})]})]}):(0,le.jsx)("div",{className:"text-center py-4 text-slate-500 text-xs",children:"Donn\xe9es de cr\xe9dits indisponibles."})]}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-xl p-4 space-y-4",children:[(0,le.jsx)("p",{className:"text-white font-bold text-xs uppercase tracking-wider",children:"Ajouter / Retirer des Cr\xe9dits au Membre"}),(0,le.jsx)("p",{className:"text-slate-500 text-xs",children:'Modifie directement le solde global du portefeuille du membre. (ex: "+500" pour lui cr\xe9diter 500 cr\xe9dits, "-200" pour lui en d\xe9duire 200).'}),(0,le.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block font-medium",children:"Type de Cr\xe9dits"}
1),(0,le.jsxs)("select",{value:He,onChange:e=>Ye(e.target.value),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",children:[(0,le.jsx)("option",{value:"permanent",children:"Cr\xe9dits Permanents (Packs / Geste)"}),(0,le.jsx)("option",{value:"monthly",children:"Cr\xe9dits Mensuels (Solde abonnement)"})]})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block font-medium",children:"Montant (+ / -)"}),(0,le.jsx)("input",{type:"number",value:Ve,onChange:e=>Be(e.target.value),placeholder:"ex: 500 ou -200",className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block font-medium",children:"Raison obligatoire *"}),(0,le.jsx)("input",{type:"text",value:Je,onChange:e=>Qe(e.target.value),placeholder:"Geste commercial, recharge manuelle\u2026",className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm"})]})]}),Z.text&&(0,le.jsx)("div",{className:"px-3 py-2 rounded-xl text-xs flex items-center gap-2 ".concat("err"===Z.type?"bg-red-600/15 text-red-400 border border-red-500/20":"bg-green-600/15 text-green-400 border border-green-500/20"),children:Z.text}),(0,le.jsx)("button",{onClick:async()=>{const e=parseInt(Ve);if(isNaN(e)||0===e)$t("Saisis un montant valide (+X ou -X)","err");else if(!Je.trim()||Je.trim().length<5)$t("La raison est obligatoire (minimum 5 caract\xe8res)","err");else{tt(!0);try{await n.A.post("".concat(gt,"/api/credits/admin/adjust"),{user_id:R.id,amount:e,permanent:"permanent"===He,reason:Je.trim()},{headers:D()}),$t("\u2713 Solde mis \xe0 jour : ".concat(e>0?"+":"").concat(e," cr\xe9dits (").concat("permanent"===He?"permanents":"mensuels",")")),Be(""),Qe(""),Xt(),Qt()}catch(a){var t,s;$t((null===(t=a.response)||void 0===t||null===(s=t.data)||void 0===s?void 0:s.detail)||"Erreur ajustement cr\xe9dits","err")}finally{tt(!1)}}},disabled:et||!Ve||!Je.trim(),className:"w-full flex items-center justify-center gap-2 px-4 py-2.5 bg-blue-600/20 border border-blue-500/30 text-blue-400 hover:bg-blue-600/30 disabled:opacity-50 disabled:cursor-not-allowed rounded-xl text-sm font-semibold transition-all",children:et?(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)(we.A,{size:13,className:"animate-spin"})," Application\u2026"]}):(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)(y.A,{size:13})," Appliquer l'ajustement du solde"]})})]})]}),"logs"===te&&(0,le.jsx)("div",{className:"space-y-4",children:Ot?(0,le.jsxs)("div",{className:"text-center py-8 text-slate-500 text-sm flex items-center justify-center gap-2",children:[(0,le.jsx)(we.A,{size:14,className:"animate-spin"})," Chargement\u2026"]}):(0,le.jsxs)(le.Fragment,{children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-white font-bold text-xs uppercase tracking-wider mb-3",children:"Modifications admin"}),0===Lt.admin_logs.length?(0,le.jsx)("p",{className:"text-slate-600 text-xs py-4",children:"Aucune modification admin enregistr\xe9e."}):(0,le.jsx)("div",{className:"space-y-2",children:Lt.admin_logs.map((e,t)=>{var s,a,l;return(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-xl p-3 text-xs",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,le.jsx)("span",{className:"text-blue-400 font-semibold",children:e.admin_email}),(0,le.jsx)("span",{className:"text-slate-600",children:null===(s=e.created_at)||void 0===s?void 0:s.slice(0,16).replace("T"," ")})]}),(0,le.jsxs)("div",{className:"flex items-center gap-2 text-slate-400",children:[(0,le.jsx)("span",{className:"text-slate-300 font-mono",children:e.field}),(0,le.jsx)("span",{className:"text-slate-600",children:":"}),(0,le.jsx)("span",{className:"text-red-400 line-through",children:null!==(a=e.old_value)&&void 0!==a?a:"null"}),(0,le.jsx)("span",{className:"text-slate-600",children:"\u2192"}),(0,le.jsx)("span",{className:"text-green-400",children:null!==(l=e.new_value)&&void 0!==l?l:"null"})]}),e.reason&&(0,le.jsxs)("p",{className:"text-slate-500 mt-1 italic",children:["\u201c",e.reason,"\u201d"]})]},t)})})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-white font-bold text-xs uppercase tracking-wider mb-3",children:"Historique cr\xe9dits"}),0===Lt.credits_logs.length?(0,le.jsx)("p",{className:"text-slate-600 text-xs py-4",children:"Aucun mouvement de cr\xe9dits."}):(0,le.jsx)("div",{className:"space-y-2",children:Lt.credits_logs.map((e,t)=>{var s;return(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-xl p-3 flex items-center gap-3 text-xs",children:[(0,le.jsxs)("span",{className:"font-bold text-sm ".concat(e.amount>0?"text-green-400":"text-red-400"),children:[e.amount>0?"+":"",e.amount]}),(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsx)("p",{className:"text-slate-400",children:e.reason}),e.detail&&(0,le.jsx)("p",{className:"text-slate-600 truncate",children:e.detail})]}),(0,le.jsx)("span",{className:"text-slate-600 flex-shrink-0",children:null===(s=e.created_at)||void 0===s?void 0:s.slice(0,10)})]},t)})})]})]})})]}):(0,le.jsx)("div",{className:"text-center py-16 text-red-400 text-sm",children:"Erreur lors du chargement."})})]})})}function At(e){let t=e.label,s=e.value,a=e.mono,l=e.small,r=e.highlight;return(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-slate-500 text-xs mb-0.5",children:t}),(0,le.jsx)("p",{className:"font-medium break-all ".concat(r?"text-amber-300":"text-white"," ").concat(a?"font-mono":""," ").concat(l?"text-[10px]":"text-xs"),children:s||"\u2014"})]})}function _t(){const e=(0,se.A)().authHeaders,t=(0,r.useState)([]),s=(0,l.A)(t,2),i=s[0],d=s[1],o=(0,r.useState)(!0),c=(0,l.A)(o,2),x=c[0],m=c[1],u=(0,r.useState)(""),p=(0,l.A)(u,2),h=p[0],b=p[1],g=(0,r.useState)("all"),f=(0,l.A)(g,2),j=f[0],v=f[1],N=(0,r.useState)("all"),y=(0,l.A)(N,2),w=y[0],_=y[1],k=(0,r.useState)("all"),S=(0,l.A)(k,2),C=S[0],z=S[1],E=(0,r.useState)(!1),R=(0,l.A)(E,2),T=R[0],F=R[1],D=(0,r.useState)(null),I=(0,l.A)(D,2),L=I[0],q=I[1],P=(0,r.useState)(0),M=(0,l.A)(P,2),O=M[0],V=M[1],B=(0,r.useState)(!1),W=(0,l.A)(B,2),H=W[0],G=W[1],K=30,J=(0,r.useCallback)(async()=>{m(!0);try{const t=await n.A.get("".concat(gt,"/api/admin/crm/users"),{headers:e()});d(t.data||[])}catch(t){}finally{m(!1)}},[e]);(0,r.useEffect)(()=>{J()},[J]);const Q=i.filter(e=>{var t,s;const a=!h||(null===(t=e.email)||void 0===t?void 0:t.toLowerCase().includes(h.toLowerCase()))||(null===(s=e.name)||void 0===s?void 0:s.toLowerCase().includes(h.toLowerCase())),l="all"===j||("none"===j?!e.plan:e.plan===j),r="all"===w||e.skool_status===w,i="all"===C||e.status===C,n=!T||(e.vinted_accounts_errors||0)>0;return a&&l&&r&&i&&n}),Z=Q.slice(O*K,(O+1)*K);return(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[(0,le.jsx)("h1",{className:"text-2xl font-bold text-white",style:{fontFamily:"Outfit, sans-serif"},children:"CRM Membres"}),(0,le.jsxs)("div",{className:"flex items-center gap-2",children:[(0,le.jsxs)("span",{className:"text-slate-500 text-xs",children:[Q.length," membres"]}),(0,le.jsxs)("button",{onClick:async()=>{G(!0);try{const t=new URLSearchParams({plan:j,skool_status:w,activity:C});T&&t.append("has_vinted_errors","true");const s=await n.A.get("".concat(gt,"/api/admin/crm/users/export/csv?").concat(t),{headers:e(),responseType:"blob"}),a=window.URL.createObjectURL(new Blob([s.data])),l=document.createElement("a");l.href=a,l.setAttribute("download","vintyresell-crm-export.csv"),document.body.appendChild(l),l.click(),l.remove(),window.URL.revokeObjectURL(a)}catch(t){}finally{G(!1)}},disabled:H,"data-testid":"crm-export-csv-btn",className:"flex items-center gap-1.5 px-3 py-2 bg-teal-600/15 border border-teal-500/25 text-teal-400 text-xs font-semibold rounded-xl hover:bg-teal-600/25 transition-all disabled:opacity-50",children:[H?(0,le.jsx)(we.A,{size:12,className:"animate-spin"}):(0,le.jsx)(Y.A,{size:12}),"Export CSV"]}),(0,le.jsx)("button",{onClick:J,className:"p-2 rounded-lg bg-slate-800 border border-white/8 text-slate-400 hover:text-white transition-all",children:(0,le.jsx)(A.A,{size:14})})]})]}),(0,le.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-2",children:[(0,le.jsxs)("div",{className:"relative",children:[(0,le.jsx)(U.A,{size:14,className:"absolute left-3 top-1/2 -translate-y-1/2 text-slate-500"}),(0,le.jsx)("input",{value:h,onChange:e=>{b(e.target.value),V(0)},placeholder:"Email ou nom\u2026",className:"w-full bg-slate-900 border border-white/8 rounded-xl pl-9 pr-3 py-2.5 text-white text-sm","data-testid":"crm-search-input"})]}),(0,le.jsxs)("select",{value:j,onChange:e=>{v(e.target.value),V(0)},className:"bg-slate-900 border border-white/8 rounded-xl px-3 py-2.5 text-sm text-slate-300","data-testid":"crm-plan-filter",children:[(0,le.jsx)("option",{value:"all",children:"Tous les plans"}),(0,le.jsx)("option",{value:"none",children:"Sans plan"}),ft.filter(e=>"none"!==e.value).map(e=>(0,le.jsx)("option",{value:e.value,children:e.label},e.value))]}),(0,le.jsxs)("select",{value:w,onChange:e=>{_(e.target.value),V(0)},className:"bg-slate-900 border border-white/8 rounded-xl px-3 py-2.5 text-sm text-slate-300","data-testid":"crm-skool-filter",children:[(0,le.jsx)("option",{value:"all",children:"Tous les statuts Skool"}),(0,le.jsx)("option",{value:"active",children:"Skool actif"}
1),(0,le.jsx)("option",{value:"invited",children:"Skool invit\xe9"}),(0,le.jsx)("option",{value:"pending",children:"Skool en attente"})]}),(0,le.jsxs)("div",{className:"flex items-center gap-2",children:[(0,le.jsxs)("select",{value:C,onChange:e=>{z(e.target.value),V(0)},className:"flex-1 bg-slate-900 border border-white/8 rounded-xl px-3 py-2.5 text-sm text-slate-300","data-testid":"crm-activity-filter",children:[(0,le.jsx)("option",{value:"all",children:"Toute activit\xe9"}),(0,le.jsx)("option",{value:"actif",children:"Actifs"}),(0,le.jsx)("option",{value:"inactif",children:"Inactifs"}),(0,le.jsx)("option",{value:"lead",children:"Leads"})]}),(0,le.jsxs)("button",{onClick:()=>{F(!T),V(0)},"data-testid":"crm-vinted-errors-filter",className:"flex-shrink-0 flex items-center gap-1.5 px-3 py-2.5 rounded-xl text-xs font-semibold border transition-all ".concat(T?"bg-red-600/20 border-red-500/30 text-red-400":"bg-slate-900 border-white/8 text-slate-400 hover:text-white"),children:[(0,le.jsx)(ht.A,{size:12})," ",T?"Erreurs":"Vinted"]})]})]}),x?(0,le.jsxs)("div",{className:"text-center py-16 text-slate-500 flex items-center justify-center gap-2",children:[(0,le.jsx)(we.A,{size:16,className:"animate-spin"})," Chargement des membres\u2026"]}):(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl overflow-hidden",children:[(0,le.jsxs)("div",{className:"grid grid-cols-[1fr_auto_auto_auto_auto_auto] gap-2 px-4 py-2.5 border-b border-white/5 text-[10px] text-slate-600 font-bold uppercase tracking-wider",children:[(0,le.jsx)("span",{children:"Membre"}),(0,le.jsx)("span",{children:"Plan"}),(0,le.jsx)("span",{children:"IA"}),(0,le.jsx)("span",{children:"Vinted"}),(0,le.jsx)("span",{children:"Cr\xe9dits"}),(0,le.jsx)("span",{children:"Sub."})]}),0===Z.length?(0,le.jsx)("div",{className:"text-center py-12 text-slate-500 text-sm",children:"Aucun membre trouv\xe9."}):Z.map(e=>(0,le.jsxs)("button",{onClick:()=>q(e),"data-testid":"crm-user-row-".concat(e.id),className:"w-full grid grid-cols-[1fr_auto_auto_auto_auto_auto] gap-2 items-center px-4 py-3 border-b border-white/4 last:border-0 hover:bg-white/3 transition-colors text-left group",children:[(0,le.jsxs)("div",{className:"min-w-0",children:[(0,le.jsx)("p",{className:"text-white text-xs font-semibold truncate group-hover:text-blue-300 transition-colors",children:e.email}),(0,le.jsxs)("div",{className:"flex items-center gap-1.5 mt-0.5",children:[(0,le.jsx)("p",{className:"text-slate-600 text-[10px] truncate",children:e.name||"\u2014"}),"active"===e.skool_status&&(0,le.jsx)("span",{className:"text-[9px] px-1 py-0.5 rounded bg-emerald-500/10 border border-emerald-500/20 text-emerald-400",children:"Skool"})]})]}),(0,le.jsx)("div",{className:"flex-shrink-0",children:vt(e.plan)}),(0,le.jsx)("div",{className:"flex-shrink-0 text-right",children:(e.ai_total||0)>0?(0,le.jsxs)("span",{className:"text-blue-400 text-xs font-bold flex items-center gap-0.5",children:[(0,le.jsx)(bt.A,{size:9})," ",e.ai_total]}):(0,le.jsx)("span",{className:"text-slate-700 text-[10px]",children:"\u2014"})}),(0,le.jsx)("div",{className:"flex-shrink-0",children:(e.vinted_accounts_total||0)>0?(0,le.jsxs)("span",{className:"text-[10px] flex items-center gap-0.5 font-semibold ".concat((e.vinted_accounts_errors||0)>0?"text-red-400":"text-green-400"),children:[(e.vinted_accounts_errors||0)>0?(0,le.jsx)(ht.A,{size:9}):(0,le.jsx)(ut.A,{size:9}),e.vinted_accounts_total,(e.vinted_accounts_errors||0)>0&&"(".concat(e.vinted_accounts_errors,"err)")]}):(0,le.jsx)("span",{className:"text-slate-700 text-[10px]",children:"\u2014"})}),(0,le.jsxs)("div",{className:"flex-shrink-0 text-right",children:[(0,le.jsx)("span",{className:"text-amber-400 text-xs font-bold",children:e.credits_permanent||0}),(0,le.jsx)("span",{className:"text-slate-600 text-xs",children:"+"}),(0,le.jsx)("span",{className:"text-blue-400 text-xs font-bold",children:e.credits_monthly||0})]}),(0,le.jsx)("div",{className:"flex-shrink-0",children:Nt(e.subscription_status)})]},e.id))]}),Q.length>K&&(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsx)("button",{onClick:()=>V(e=>Math.max(0,e-1)),disabled:0===O,className:"px-4 py-2 rounded-xl bg-slate-800 border border-white/8 text-slate-400 text-sm disabled:opacity-40 hover:text-white transition-all",children:"\u2190 Pr\xe9c\xe9dent"}),(0,le.jsxs)("span",{className:"text-slate-500 text-xs",children:["Page ",O+1," / ",Math.ceil(Q.length/K)," \xb7 ",Q.length," membres"]}),(0,le.jsx)("button",{onClick:()=>V(e=>Math.min(Math.ceil(Q.length/K)-1,e+1)),disabled:(O+1)*K>=Q.length,className:"px-4 py-2 rounded-xl bg-slate-800 border border-white/8 text-slate-400 text-sm disabled:opacity-40 hover:text-white transition-all",children:"Suivant \u2192"})]}),L&&(0,le.jsx)(wt,{user:L,onClose:()=>q(null),onUpdated:e=>{d(t=>t.map(t=>
1t.id===e.id?(0,a.A)((0,a.A)({},t),e):t))}})]})}const kt=window.location.origin,St={starter:"Starter (129\u20ac/mois)",bot:"Bot (19,99\u20ac/mois)",mini_elite:"Accompagnement (99\u20ac)",elite:"Elite (299\u20ac)"},Ct={starter:129.99,bot:19.99,mini_elite:99,elite:299};function zt(){const e=(0,se.A)().authHeaders,t=(0,r.useState)([]),s=(0,l.A)(t,2),i=s[0],d=s[1],o=(0,r.useState)(!0),c=(0,l.A)(o,2),x=c[0],m=c[1],u=(0,r.useState)(""),p=(0,l.A)(u,2),h=p[0],b=p[1],j=(0,r.useState)("all"),v=(0,l.A)(j,2),N=v[0],y=v[1],w=(0,r.useState)(!1),k=(0,l.A)(w,2),S=k[0],C=k[1],z=(0,r.useState)({affiliate_code:"",user_email:"",plan:"starter",amount:""}),E=(0,l.A)(z,2),R=E[0],T=E[1],F=(0,r.useState)(!1),D=(0,l.A)(F,2),I=D[0],L=D[1],P=(0,r.useState)(null),M=(0,l.A)(P,2),V=M[0],B=M[1],W=(0,r.useState)(""),H=(0,l.A)(W,2),Y=H[0],G=H[1],K=(0,r.useCallback)(async()=>{m(!0);try{const t=await n.A.get("".concat(kt,"/api/admin/affiliate/crm"),{headers:e()});d(t.data||[])}catch(t){}finally{m(!1)}},[e]);(0,r.useEffect)(()=>{K()},[K]);const J=i.filter(e=>{var t,s,a;if("paid"===N&&!e.has_paid)return!1;if("unpaid"===N&&e.has_paid)return!1;const l=h.toLowerCase();return!!(!l||null!==(t=e.name)&&void 0!==t&&t.toLowerCase().includes(l)||null!==(s=e.email)&&void 0!==s&&s.toLowerCase().includes(l)||null!==(a=e.referred_by)&&void 0!==a&&a.toLowerCase().includes(l))}),Q={};return i.forEach(e=>{Q[e.referred_by]||(Q[e.referred_by]={total:0,paid:0}),Q[e.referred_by].total++,e.has_paid&&Q[e.referred_by].paid++}),(0,le.jsxs)("div",{className:"space-y-5","data-testid":"affiliate-crm-panel",children:[(0,le.jsxs)("div",{className:"flex items-start justify-between flex-wrap gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h1",{className:"text-2xl font-bold text-white",style:{fontFamily:"Outfit, sans-serif"},children:"CRM Affili\xe9s"}),(0,le.jsxs)("p",{className:"text-slate-400 text-sm mt-1",children:[i.length," inscrit(s) via affili\xe9 \xb7 ",i.filter(e=>e.has_paid).length," client(s)"]})]}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsx)("button",{onClick:K,disabled:x,className:"flex items-center gap-1.5 px-3 py-2 bg-slate-800 border border-white/8 rounded-xl text-xs text-slate-400 hover:text-white transition-all disabled:opacity-50",children:(0,le.jsx)(A.A,{size:12,className:x?"animate-spin":""})}),(0,le.jsxs)("button",{onClick:()=>{C(!0),B(null),G("")},"data-testid":"open-assign-btn",className:"flex items-center gap-2 px-4 py-2 bg-gradient-to-r from-purple-600 to-indigo-600 text-white text-sm font-bold rounded-xl hover:opacity-90 transition-all",children:[(0,le.jsx)(_.A,{size:14})," Assigner une vente"]})]})]}),Object.keys(Q).length>0&&(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl p-4",children:[(0,le.jsx)("p",{className:"text-slate-400 text-xs font-bold uppercase tracking-wider mb-3",children:"R\xe9sum\xe9 par affili\xe9"}),(0,le.jsx)("div",{className:"space-y-2",children:Object.entries(Q).sort((e,t)=>t[1].total-e[1].total).map(e=>{let t=(0,l.A)(e,2),s=t[0],a=t[1];return(0,le.jsxs)("div",{className:"flex items-center gap-3 bg-slate-800 rounded-xl px-3 py-2.5",children:[(0,le.jsx)("span",{className:"text-purple-400 font-mono font-bold text-xs w-24 flex-shrink-0",children:s}),(0,le.jsx)("div",{className:"flex-1 h-1.5 bg-slate-700 rounded-full overflow-hidden",children:(0,le.jsx)("div",{className:"h-full bg-gradient-to-r from-purple-500 to-indigo-500 rounded-full",style:{width:"".concat(Math.min(100,a.paid/Math.max(a.total,1)*100),"%")}})}),(0,le.jsxs)("span",{className:"text-slate-400 text-xs flex-shrink-0",children:[a.paid,"/",a.total," achet\xe9s"]})]},s)})})]}),(0,le.jsxs)("div",{className:"flex flex-wrap gap-3",children:[(0,le.jsxs)("div",{className:"relative flex-1 min-w-48",children:[(0,le.jsx)(U.A,{size:13,className:"absolute left-3 top-1/2 -translate-y-1/2 text-slate-500"}),(0,le.jsx)("input",{value:h,onChange:e=>b(e.target.value),placeholder:"Rechercher nom, email, code...","data-testid":"crm-search",className:"w-full bg-slate-900 border border-white/5 rounded-xl pl-8 pr-3 py-2.5 text-white text-sm placeholder-slate-600 focus:outline-none focus:border-white/15"})]}),(0,le.jsx)("div",{className:"flex gap-1 p-1 bg-slate-900 rounded-xl border border-white/5",children:[{k:"all",label:"Tous"},{k:"paid",label:"Acheteurs"},{k:"unpaid",label:"Inscrits"}].map(e=>(0,le.jsx)("button",{onClick:()=>y(e.k),className:"px-3 py-1.5 rounded-lg text-xs font-semibold transition-all ".concat(N===e.k?"bg-purple-600 text-white":"text-slate-400 hover:text-white"),children:e.label},e.k))})]}),x?(0,le.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,le.jsx)(we.A,{size:20,className:"animate-spin text-purple-400"})}):0===J.length?(0,le.jsxs)("div",{className:"text-center py-16 bg-slate-900 rounded-2xl border border-white/5",children:[(0,le.jsx)(g.A,{size:28,className:"mx-auto mb-3 text-slate-700"}),(0,le.jsx)("p",{className:"text-slate-500",children:0===i.length?"Aucun inscrit via affili\xe9 pour le moment.":"Aucun r\xe9sultat pour cette recherche."})]}):(0,le.jsx)("div",{className:"space-y-2",children:J.map(e=>{var t;return(0,le.jsxs)("div",{"data-testid":"crm-user-".concat(e.user_id),className:"bg-slate-900 border rounded-xl px-4 py-3 flex items-center gap-4 ".concat(e.has_paid?"border-green-500/10":"border-white/5"),children:[(0,le.jsx)("div",{className:"w-8 h-8 rounded-full flex items-center justify-center flex-shrink-0 ".concat(e.has_paid?"bg-green-600/15":"bg-slate-800"),children:e.has_paid?(0,le.jsx)(Oe.A,{size:14,className:"text-green-400"}):(0,le.jsx)(O.A,{size:14,className:"text-slate-500"})}),(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsx)("p",{className:"text-white text-sm font-semibold truncate",children:e.name||"\u2014"}),(0,le.jsx)("p",{className:"text-slate-500 text-xs truncate",children:e.email})]}),(0,le.jsxs)("div",{className:"flex items-center gap-4 flex-shrink-0",children:[(0,le.jsxs)("div",{className:"text-right hidden sm:block",children:[(0,le.jsx)("p",{className:"text-purple-400 text-xs font-bold font-mono",children:e.referred_by}),(0,le.jsx)("p",{className:"text-slate-600 text-[10px]",children:"Affili\xe9"})]}),(0,le.jsxs)("div",{className:"text-right hidden sm:block",children:[(0,le.jsx)("p",{className:"text-xs font-bold ".concat(e.has_paid?"text-green-400":"text-slate-500"),children:e.has_paid?e.plan||"Achet\xe9":"Inscrit"}),(0,le.jsx)("p",{className:"text-slate-600 text-[10px]",children:null===(t=e.created_at)||void 0===t?void 0:t.slice(0,10).replace(/-/g,"/")})]})]})]},e.user_id)})}),S&&(0,le.jsx)("div",{className:"fixed inset-0 bg-black/80 backdrop-blur-sm z-50 flex items-center justify-center p-4",children:(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/10 rounded-2xl p-6 w-full max-w-md
1space-y-4","data-testid":"assign-sale-modal",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsx)("h3",{className:"text-white font-bold text-lg",style:{fontFamily:"Outfit"},children:"Assigner une vente"}),(0,le.jsx)("button",{onClick:()=>C(!1),className:"text-slate-500 hover:text-white",children:(0,le.jsx)(q.A,{size:18})})]}),(0,le.jsx)("p",{className:"text-slate-400 text-sm",children:"Attribue manuellement une commission \xe0 un affili\xe9."}),(0,le.jsxs)("div",{className:"space-y-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold mb-1 block",children:"Code affili\xe9 *"}),(0,le.jsx)("input",{value:R.affiliate_code,onChange:e=>T(t=>(0,a.A)((0,a.A)({},t),{},{affiliate_code:e.target.value})),placeholder:"Ex: HUGO12345","data-testid":"assign-affiliate-code",className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm placeholder-slate-600 focus:outline-none focus:border-purple-500/40 font-mono uppercase"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold mb-1 block",children:"Email client *"}),(0,le.jsx)("input",{value:R.user_email,onChange:e=>T(t=>(0,a.A)((0,a.A)({},t),{},{user_email:e.target.value})),placeholder:"[email protected]","data-testid":"assign-user-email",className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm placeholder-slate-600 focus:outline-none focus:border-purple-500/40"})]}),(0,le.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold mb-1 block",children:"Plan *"}),(0,le.jsx)("select",{value:R.plan,onChange:e=>T(t=>(0,a.A)((0,a.A)({},t),{},{plan:e.target.value,amount:""})),"data-testid":"assign-plan",className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm focus:outline-none focus:border-purple-500/40",children:Object.entries(St).map(e=>{let t=(0,l.A)(e,2),s=t[0],a=t[1];return(0,le.jsx)("option",{value:s,children:a},s)})})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold mb-1 block",children:"Montant (\u20ac)"}),(0,le.jsx)("input",{type:"number",step:"0.01",value:R.amount||Ct[R.plan],onChange:e=>T(t=>(0,a.A)((0,a.A)({},t),{},{amount:e.target.value})),"data-testid":"assign-amount",className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm focus:outline-none focus:border-purple-500/40"})]})]})]}),V&&(0,le.jsx)("div",{className:"bg-green-600/10 border border-green-500/20 rounded-xl px-4 py-3",children:(0,le.jsxs)("p",{className:"text-green-400 text-sm font-semibold",children:["Commission ",V.commission,"\u20ac \u2192 ",V.affiliate," !"]})}),Y&&(0,le.jsx)("p",{className:"text-red-400 text-sm",children:Y}),(0,le.jsxs)("button",{onClick:async()=>{if(R.affiliate_code&&R.user_email&&R.plan){L(!0),B(null),G("");try{const t=parseFloat(R.amount)||Ct[R.plan]||0,s=await n.A.post("".concat(kt,"/api/admin/affiliate/assign-sale"),{affiliate_code:R.affiliate_code.trim().toUpperCase(),user_email:R.user_email.trim(),plan:R.plan,amount:t},{headers:e()});B(s.data),await K(),setTimeout(()=>{C(!1),B(null)},3e3)}catch(a){var t,s;G((null===a||void 0===a||null===(t=a.response)||void 0===t||null===(s=t.data)||void 0===s?void 0:s.detail)||"Erreur")}finally{L(!1)}}},disabled:I||!R.affiliate_code||!R.user_email,"data-testid":"confirm-assign-btn",className:"w-full py-3 rounded-xl bg-gradient-to-r from-purple-600 to-indigo-600 text-white font-bold text-sm flex items-center justify-center gap-2 hover:opacity-90 disabled:opacity-50 transition-all",children:[I?(0,le.jsx)(we.A,{size:14,className:"animate-spin"}):(0,le.jsx)(f.A,{size:14}),I?"Attribution...":"Assigner la commission"]})]})})]})}var Et=s(16567),Rt=s(57170),Tt=s(70067),Ft=s(15711),Dt=s(92382);const It=[{id:"premium_ads",label:"Publicit\xe9s Premium",icon:y.A,color:"text-blue-400 bg-blue-500/10 border-blue-500/20",description:"Visuels niveau grande marque \xb7 Pr\xeats pour Instagram Ads, Facebook Ads et landing pages",items:[{slug:"ad_hero_premium",ratio:"1:1",format:"Instagram / Facebook",title:"Publicit\xe9 h\xe9ro \u2014 Pr\xe9sentation VINTYRESELL",desc:"Visuel principal de marque, style Apple. Parfait pour le top du feed ou une campagne d'awareness."},{slug:"ad_bot_feature",ratio:"1:1",format:"Instagram / Facebook",title:"Feature Ad \u2014 Bot Vinted 24h/24",desc:"Pr\xe9sente le bot automatique. Ideal pour recibler des vendeurs Vinted actifs."},{slug:"ad_ai_tools",ratio:"1:1",format:"Instagram / Facebook",title:"Feature Ad \u2014 Outils IA",desc:"Showcase des outils IA. Cible les vendeurs en recherche d'optimisation."},{slug:"ad_niches_privees",ratio:"1:1",format:"Instagram / Facebook",title:"Feature Ad \u2014 Niches priv\xe9es",desc:"Met en avant les 300+ niches valid\xe9es. Convertit les revendeurs en recherche d'id\xe9es."},{slug:"ad_social_proof",ratio:"1:1",format:"Instagram / Facebook",title:"Social Proof \u2014 T\xe9moignages membres",desc:"Mur de r\xe9sultats clients. Fort taux de conversion en phase de d\xe9cision."}]},{id:"banners",label:"Banni\xe8res & Landing Pages",icon:Et.A,color:"text-amber-400 bg-amber-500/10 border-amber-500/20",description:"Format horizontal \xb7 Pour landing pages, headers de site, couvertures YouTube/Facebook",items:[{slug:"banner_main_hero",ratio:"16:9",format:"Landing page / YouTube / Facebook",title:"Banni\xe8re H\xe9ro \u2014 VINTYRESELL",desc:"Banni\xe8re principale ultra-premium. Id\xe9ale pour le header de ta landing page ou la miniature YouTube."},{slug:"banner_features_grid",ratio:"16:9",format:"Landing page / Site web",title:"Banni\xe8re Fonctionnalit\xe9s \u2014 4 outils",desc:"Pr\xe9sente les 4 piliers de VINTYRESELL en un seul visuel clair et structur\xe9."},{slug:"youtube_banner",ratio:"16:9",format:"YouTube / Facebook Cover",title:"Banni\xe8re YouTube & Facebook Cover",desc:"Couverture canal YouTube ou page Facebook. Format optimis\xe9 2560\xd71440."}]},{id:"tool_presentations",label:"Pr\xe9sentations des Outils",icon:Rt.A,color:"text-purple-400 bg-purple-500/10 border-purple-500/20",description:"Format portrait \xb7 Pour stories Instagram, pr\xe9sentations individuelles de chaque outil",items:[{slug:"tool_bot_presentation",ratio:"9:16",format:"Story Instagram / Reel cover",title:"Pr\xe9sentation \u2014 Bot Vinted",desc:"Fiche compl\xe8te du bot : fonctionnalit\xe9s, stats, b\xe9n\xe9fice
1s. Style page produit premium."},{slug:"tool_dashboard_presentation",ratio:"9:16",format:"Story Instagram / Reel cover",title:"Pr\xe9sentation \u2014 Dashboard Analytics",desc:"Pr\xe9sente le tableau de bord VINTYRESELL avec m\xe9triques cl\xe9s et interface propre."},{slug:"tool_ai_presentation",ratio:"9:16",format:"Story Instagram / Reel cover",title:"Pr\xe9sentation \u2014 Outils IA",desc:"Showcase des capacit\xe9s IA : analyse niches, suggestions prix, descriptions auto."}]},{id:"instagram_feed",label:"Feed Instagram",icon:Tt.A,color:"text-pink-400 bg-pink-500/10 border-pink-500/20",description:"Format carr\xe9 1:1 \xb7 Pr\xeats \xe0 poster sur ton feed Instagram",items:[{slug:"insta_01_brand",ratio:"1:1",format:"Instagram Feed",title:"Branding VINTYRESELL",desc:"Post de marque premium pour ancrer l'identit\xe9 visuelle."},{slug:"insta_02_results",ratio:"1:1",format:"Instagram Feed",title:"Dashboard r\xe9sultats \u2014 1 247\u20ac",desc:"Preuve chiffr\xe9e r\xe9elle. Fort taux de sauvegarde."},{slug:"insta_03_community",ratio:"1:1",format:"Instagram Feed",title:"+2 000 membres actifs",desc:"Social proof communaut\xe9. Rassure et convertit."},{slug:"ig_lifestyle_01",ratio:"1:1",format:"Instagram Feed",title:"Flat lay \u2014 Pi\xe8ces du mois",desc:"Style \xe9ditorial fashion resell. Fort taux de sauvegarde."},{slug:"ig_motivation_02",ratio:"1:1",format:"Instagram Feed",title:"Citation VINTYRESELL",desc:"Post citation premium. Excellent taux de partage."},{slug:"ig_product_03",ratio:"1:1",format:"Instagram Feed",title:"La formule gagnante \u2014 3 flips",desc:"\xc9ducatif + r\xe9sultats chiffr\xe9s. G\xe9n\xe8re des commentaires."},{slug:"ig_tips_04",ratio:"1:1",format:"Instagram Feed",title:"5 erreurs sur Vinted",desc:"Infographie \xe9ducative. Top en sauvegarde et partage."},{slug:"ig_aesthetic_05",ratio:"1:1",format:"Instagram Feed",title:"Aesthetic \u2014 Dashboard tech",desc:"Renforce l'image de marque sombre et premium."},{slug:"ig_carousel_06",ratio:"1:1",format:"Instagram Feed",title:"Slide 1 carousel \u2014 500\u20ac/mois",desc:"Accroche carousel. 3x plus de port\xe9e organique."},{slug:"ig_community_07",ratio:"1:1",format:"Instagram Feed",title:"Communaut\xe9 \u2014 chiffres cl\xe9s",desc:"Preuve sociale en chiffres pour rassurer."},{slug:"ig_niche_08",ratio:"1:1",format:"Instagram Feed",title:"Spotlight niche \u2014 ROI 467%",desc:"Niche rentable du mois. Cr\xe9e l'envie de rejoindre."}]},{id:"stories_reels",label:"Stories & Reels",icon:Rt.A,color:"text-green-400 bg-green-500/10 border-green-500/20",description:"Format portrait 9:16 \xb7 Pour Stories Instagram, Reels et TikTok",items:[{slug:"insta_story_comparison",ratio:"9:16",format:"Story / Reel / TikTok",title:"Avant / Apr\xe8s VINTYRESELL",desc:"Transformation visuelle puissante. Polyvalent : Stories, Reels et TikTok."}]}],Lt={"1:1":"100%","9:16":"177.78%","16:9":"56.25%"},qt={"Instagram / Facebook":"text-pink-400 bg-pink-500/10 border-pink-500/20","Landing page / YouTube / Facebook":"text-amber-400 bg-amber-500/10 border-amber-500/20","Landing page / Site web":"text-amber-400 bg-amber-500/10 border-amber-500/20","YouTube / Facebook Cover":"text-red-400 bg-red-500/10 border-red-500/20","Story Instagram / Reel cover":"text-purple-400 bg-purple-500/10 border-purple-500/20","Instagram Feed":"text-pink-400 bg-pink-500/10 border-pink-500/20","Story / Reel / TikTok":"text-green-400 bg-green-500/10 border-green-500/20"};function Pt(e){let t=e.item;return(0,le.jsxs)("div",{className:"bg-[#0b1120] border border-white/5 rounded-2xl overflow-hidden hover:border-blue-500/20 transition-all group flex flex-col",children:[(0,le.jsxs)("div",{className:"relative bg-slate-900 overflow-hidden",style:{paddingBottom:Lt[t.ratio]||"100%"},children:[(0,le.jsx)("img",{src:"/creatives/".concat(t.slug,".png"),alt:t.title,className:"absolute inset-0 w-full h-full object-cover group-hover:scale-[1.03] transition-transform duration-500",loading:"lazy"}),(0,le.jsxs)("div",{className:"absolute top-2 left-2 flex gap-1 flex-wrap",children:[(0,le.jsx)("span",{className:"text-[9px] font-bold px-1.5 py-0.5 rounded-md border backdrop-blur-sm ".concat(qt[t.format]||"text-slate-400 bg-black/60 border-white/10"),children:t.format}),(0,le.jsx)("span",{className:"text-[9px] font-bold px-1.5 py-0.5 rounded-md bg-black/70 text-white border border-white/10 backdrop-blur-sm",children:t.ratio})]})]}),(0,le.jsxs)("div",{className:"p-3 flex-1 flex flex-col gap-1.5",children:[(0,le.jsx)("p",{className:"text-white font-semibold text-xs leading-tight",children:t.title}),(0,le.jsx)("p",{className:"text-slate-500 text-[11px] flex-1 leading-relaxed",children:t.desc}),(0,le.jsxs)("button",{onClick:()=>{const e=document.createElement("a");e.href="/creatives/".concat(t.slug,".png"),e.download="".concat(t.slug,".png"),e.click()},className:"mt-1 w-full flex items-center justify-center gap-1.5 py-2 rounded-xl bg-white/5 hover:bg-blue-600/20 border border-white/8 hover:border-blue-500/30 text-slate-300 hover:text-blue-400 text-xs font-semibold transition-all",children:[(0,le.jsx)(Y.A,{size:11})," T\xe9l\xe9charger"]})]})]})}function Mt(){const e=(0,r.useState)({premium_ads:!0,banners:!0,tool_presentations:!0,instagram_feed:!0,stories_reels:!0}),t=(0,l.A)(e,2),s=t[0],i=t[1],n=It.reduce((e,t)=>
1e+t.items.length,0);return(0,le.jsxs)("div",{className:"space-y-6","data-testid":"admin-creatives-panel",children:[(0,le.jsx)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:(0,le.jsxs)("div",{children:[(0,le.jsx)("h2",{className:"text-white font-bold text-xl",style:{fontFamily:"Outfit, sans-serif"},children:"Kit Marketing VINTYRESELL"}),(0,le.jsxs)("p",{className:"text-slate-400 text-sm mt-0.5",children:[n," assets premium \xb7 Publicit\xe9s \xb7 Banni\xe8res \xb7 Pr\xe9sentations outils \xb7 Feed Instagram"]})]})}),It.map(e=>(0,le.jsxs)("div",{className:"bg-[#080e1a] border border-white/5 rounded-2xl overflow-hidden",children:[(0,le.jsxs)("button",{onClick:()=>{return t=e.id,i(e=>(0,a.A)((0,a.A)({},e),{},{[t]:!e[t]}));var t},className:"w-full flex items-center justify-between px-5 py-4 hover:bg-white/2 transition-colors group",children:[(0,le.jsxs)("div",{className:"flex items-center gap-3",children:[(0,le.jsx)("span",{className:"p-2 rounded-xl border ".concat(e.color),children:(0,le.jsx)(e.icon,{size:14})}),(0,le.jsxs)("div",{className:"text-left",children:[(0,le.jsx)("p",{className:"text-white font-bold text-sm",children:e.label}),(0,le.jsx)("p",{className:"text-slate-500 text-xs mt-0.5",children:e.description})]}),(0,le.jsxs)("span",{className:"ml-2 text-xs text-slate-600 font-semibold",children:[e.items.length," visuels"]})]}),(0,le.jsxs)("div",{className:"flex items-center gap-2",children:[(0,le.jsxs)("button",{onClick:t=>{t.stopPropagation(),(e=>{e.items.forEach((e,t)=>{setTimeout(()=>{const t=document.createElement("a");t.href="/creatives/".concat(e.slug,".png"),t.download="".concat(e.slug,".png"),t.click()},400*t)})})(e)},className:"hidden sm:flex items-center gap-1 text-xs px-3 py-1.5 rounded-lg bg-white/5 hover:bg-white/10 text-slate-400 hover:text-white border border-white/8 transition-all",children:[(0,le.jsx)(Y.A,{size:10})," Tout t\xe9l\xe9charger"]}),s[e.id]?(0,le.jsx)(Ft.A,{size:16,className:"text-slate-500 group-hover:text-slate-300 transition-colors"}):(0,le.jsx)(Dt.A,{size:16,className:"text-slate-500 group-hover:text-slate-300 transition-colors"})]})]}),s[e.id]&&(0,le.jsx)("div",{className:"px-4 pb-4 grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-3",children:e.items.map(e=>(0,le.jsx)(Pt,{item:e},e.slug))})]},e.id))]})}const Ot=window.location.origin,Vt={pending:{label:"En attente",color:"text-amber-400 bg-amber-600/10 border-amber-500/20",icon:B.A},approved:{label:"Approuv\xe9",color:"text-green-400 bg-green-600/10 border-green-500/20",icon:Oe.A},rejected:{label:"Rejet\xe9",color:"text-red-400 bg-red-600/10 border-red-500/20",icon:H.A}},Bt={"T\xe9moignage & r\xe9sultats":"text-green-400 bg-green-600/10 border-green-500/20","Pr\xe9sentation produit":"text-blue-400 bg-blue-600/10 border-blue-500/20","Tips & strat\xe9gies":"text-indigo-400 bg-indigo-600/10 border-indigo-500/20","Avant / Apr\xe8s":"text-amber-400 bg-amber-600/10 border-amber-500/20","Communaut\xe9":"text-pink-400 bg-pink-600/10 border-pink-500/20"};function Ut(){const e=(0,se.A)().authHeaders,t=(0,r.useState)([]),s=(0,l.A)(t,2),i=s[0],d=s[1],o=(0,r.useState)("all"),c=(0,l.A)(o,2),x=c[0],m=c[1],u=(0,r.useState)(!0),p=(0,l.A)(u,2),h=p[0],b=p[1],g=(0,r.useState)({}),f=(0,l.A)(g,2),j=f[0],v=f[1],N=async()=>{b(!0);try{const t=await n.A.get("".concat(Ot,"/api/admin/tiktok/pending"),{headers:e()});d(t.data)}catch(t){}b(!1)};(0,r.useEffect)(()=>{N()},[]);const y=async(t,s)=>{v(e=>(0,a.A)((0,a.A)({},e),{},{[t]:s}));try{await n.A.patch("".concat(Ot,"/api/admin/tiktok/").concat(t,"/").concat(s),{},{headers:e()}),d(e=>e.map(e=>e.id===t?(0,a.A)((0,a.A)({},e),{},{status:"verify"===s?"approved":"rejected"}):e))}catch(l){}v(e=>{const s=(0,a.A)({},e);return delete s[t],s})},w="all"===x?i:i.filter(e=>(e.status||"pending")===x),_={all:i.length,pending:i.filter(e=>!e.status||"pending"===e.status).length,approved:i.filter(e=>"approved"===e.status).length,rejected:i.filter(e=>"rejected"===e.status).length};return(0,le.jsxs)("div",{className:"space-y-5","data-testid":"admin-tiktok-panel",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h2",{className:"text-white font-bold text-lg",style:{fontFamily:"Outfit, sans-serif"},children:"V\xe9rification TikToks Affili\xe9s"}),(0,le.jsxs)("p",{className:"text-slate-400 text-xs mt-0.5",children:[_.pending," en attente \xb7 ",_.approved," approuv\xe9s \xb7 ",_.rejected," rejet\xe9s"]})]}),(0,le.jsxs)("button",{onClick:N,className:"flex items-center gap-1.5 px-3 py-2 rounded-xl bg-slate-800 border border-white/8 text-slate-300 hover:text-white text-xs font-medium transition-all",children:[(0,le.jsx)(A.A,{size:12,className:h?"animate-spin":""})," Actualiser"]})]}),(0,le.jsx)("div",{className:"flex gap-1.5 flex-wrap",children:[{key:"all",label:"Tous (".concat(_.all,")")},{key:"pending",label:"En attente (".concat(_.pending,")")},{key:"approved",label:"Approuv\xe9s (".concat(_.approved,")")},{key:"rejected",label:"Rejet\xe9s (".concat(_.rejected,")")}].map(e=>(0,le.jsx)("button",{onClick:()=>m(e.key),"data-testid":"tiktok-filter-".concat(e.key),className:"px-3 py-1.5 rounded-full text-xs font-semibold border transition-all ".concat(x===e.key?"bg-purple-600/20 border-purple-500/30 text-purple-400":"border-white/10 text-slate-400 hover:border-white/20 hover:text-white"),children:e.label},e.key))}),h?(0,le.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,le.jsx)("span",{className:"w-6 h-6 border-2 border-purple-500/30 border-t-purple-400 rounded-full animate-spin"})}):0===w.length?(0,le.jsxs)("div",{className:"text-center py-12",children:[(0,le.jsx)(Rt.A,{size:32,className:"text-slate-700 mx-auto mb-3"}),(0,le.jsxs)("p",{className:"text-slate-500 text-sm",children:["Aucun TikTok ","all"!==x?'avec statut "'.concat(x,'"'):"","."]})]}):(0,le.jsx)("div",{className:"space-y-3",children:w.map(e=>{var t,s;const a=Vt[e.status||"pending"],l=a.icon,r=j[e.id];return(0,le.jsx)("div",{"data-testid":"admin-tiktok-".concat(e.id),className:"bg-slate-900 border border-white/5 rounded-2xl p-4 hover:border-white/10 transition-all",children:(0,le.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 mb-1.5 flex-wrap",children:[(0,le.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-full border ".concat(Bt[e.category]||"text-slate-400 border-white/10"),children:e.category}),(0,le.jsxs)("span",{className:"text-xs px-2 py-0.5 rounded-full border flex items-center gap-1 ".concat(a.color),children:[(0,le.jsx)(l,{size:10})," ",a.label]})]}),(0,le.jsx)("p",{className:"text-white font-semibold text-sm",children:e.affiliate_name}),(0,le.jsx)("p",{className:"text-slate-500 text-xs font-mono",children:e.affiliate_code}),e.description&&(0,le.jsx)("p",{className:"text-slate-400 text-xs mt-1 line-clamp-2",children:e.description}),(0,le.jsx)("p",{className:"text-slate-600 text-xs mt-1",children:null===(t=e.created_at)||void 0===t?void 0:t.slice(0,16).replace("T"," ")}),e.reviewed_at&&(0,le.jsxs)("p",{className:"text-slate-600 text-xs",children:["V\xe9rifi\xe9 le ",null===(s=e.reviewed_at)||void 0===s?void 0:s.slice(0,10)," par ",e.reviewed_by]})]}),(0,le.jsxs)("div",{className:"flex flex-col gap-2 flex-shrink-0",children:[(0,le.jsxs)("a",{href:e.tiktok_url,target:"_blank",rel:"noreferrer","data-testid":"admin-tiktok-link-".concat(e.id),className:"flex items-center gap-1.5 px-3 py-2 rounded-xl bg-pink-600/10 border border-pink-500/20 text-pink-400 text-xs font-semibold hover:bg-pink-600/20 transition-all",children:[(0,le.jsx)(rt.A,{size:11})," Voir la vid\xe9o"]}),("pending"===e.status||!e.status)&&(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsxs)("button",{onClick:()=>y(e.id,"verify"),disabled:!!r,"data-testid":"approve-tiktok-".concat(e.id),className:"flex items-center gap-1 px-3 py-2 rounded-xl bg-green-600/15 border border-green-500/20 text-green-400 text-xs font-bold hover:bg-green-600/25 transition-all disabled:opacity-50",children:["verify"===r?(0,le.jsx)("span",{className:"w-3 h-3 border border-green-500 border-t-green-400 rounded-full animate-spin"}):(0,le.jsx)(C.A,{size:11}),"Approuver"]}),(0,le.jsxs)("button",{onClick:()=>y(e.id,"reject"),disabled:!!r,"data-testid":"reject-tiktok-".concat(e.id),className:"flex items-center gap-1 px-3 py-2 rounded-xl bg-red-600/10 border border-red-500/20 text-red-400 text-xs font-bold hover:bg-red-600/20 transition-all disabled:opacity-50",children:["reject"===r?(0,le.jsx)("span",{className:"w-3 h-3 border border-red-500 border-t-red-400 rounded-full animate-spin"}):(0,le.jsx)(q.A,{size:11}),"Rejeter"]})]})]})]})},e.id)})})]})}function Wt(e){let t=e.headers;const s=(0,r.useState)([]),a=(0,l.A)(s,2),i=a[0],d=a[1],o=(0,r.useState)(!0),c=(0,l.A)(o,2),x=c[0],m=c[1],u=(0,r.useState)(0),p=(0,l.A)(u,2),h=p[0],b=p[1],g=async()=>{m(!0);try{const e=(await n.A.get("".concat("","/api/admin/photo-ia/generations"),{headers:t})).data;d(e.generations||[]),b(e.total||0)}catch(e){console.error(e)}finally{m(!1)}};(0,r.useEffect)(()=>{g()},[]);const f={white_gradient:"Blanc d\xe9grad\xe9",light_studio:"Studio clair",dark_studio:"Studio sombre",lifestyle:"Lifestyle",outdoor:"Ext\xe9rieur",custom:"Personnalis\xe9"},j={success:"text-green-400 bg-green-400/10",error:"text-red-400 bg-red-400/10",processing:"text-yellow-400 bg-yellow-400/10"};return(0,le.jsxs)("div",{className:"space-y-4",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2",children:[(0,le.jsx)(Ve.A,{className:"w-5 h-5 text-purple-400"}),(0,le.jsx)("h2",{className:"text-lg font-semibold text-white",children:"Photo IA \u2014 G\xe9n\xe9rations"}),(0,le.jsxs)("span",{className:"text-xs text-gray-400 ml-2",children:[h," r\xe9sultats"]})]}),(0,le.jsxs)("button",{onClick:g,className:"flex items-center gap-1.5 text-xs text-gray-400 hover:text-white px-3 py-1.5 rounded-lg bg-gray-800 hover:bg-gray-700 transition-colors",children:[(0,le.jsx)(A.A,{className:"w-3 h-3"})," Rafra\xeechir"]})]}),x?(0,le.jsx)("div",{className:"flex justify-center py-16",children:(0,le.jsx)("div",{className:"w-6 h-6 border-2 border-purple-500 border-t-transparent roun
1ded-full animate-spin"})}):0===i.length?(0,le.jsxs)("div",{className:"text-center py-16 text-gray-500",children:[(0,le.jsx)(Ve.A,{className:"w-8 h-8 mx-auto mb-3 opacity-30"}),(0,le.jsx)("p",{children:"Aucune g\xe9n\xe9ration trouv\xe9e."})]}):(0,le.jsx)("div",{className:"bg-gray-900 rounded-xl border border-white/5 overflow-hidden",children:(0,le.jsx)("div",{className:"overflow-x-auto",children:(0,le.jsxs)("table",{className:"w-full text-sm",children:[(0,le.jsx)("thead",{className:"border-b border-white/5",children:(0,le.jsxs)("tr",{className:"text-xs text-gray-500 uppercase tracking-wide",children:[(0,le.jsx)("th",{className:"text-left px-4 py-3 font-medium",children:"Membre"}),(0,le.jsx)("th",{className:"text-left px-4 py-3 font-medium",children:"Fond"}),(0,le.jsx)("th",{className:"text-left px-4 py-3 font-medium",children:"Cr\xe9dits"}),(0,le.jsx)("th",{className:"text-left px-4 py-3 font-medium",children:"Statut"}),(0,le.jsx)("th",{className:"text-left px-4 py-3 font-medium",children:"Date"}),(0,le.jsx)("th",{className:"text-left px-4 py-3 font-medium",children:"Image"})]})}),(0,le.jsx)("tbody",{children:i.map((e,s)=>{var a,l;return(0,le.jsxs)("tr",{className:"border-b border-white/5 last:border-0 hover:bg-white/2",children:[(0,le.jsx)("td",{className:"px-4 py-3",children:(0,le.jsxs)("div",{className:"flex items-center gap-2",children:[(0,le.jsx)(mt.A,{className:"w-3.5 h-3.5 text-gray-500"}),(0,le.jsx)("span",{className:"text-gray-300 text-xs font-mono",children:e.user_email})]})}),(0,le.jsx)("td",{className:"px-4 py-3 text-gray-400",children:f[e.background]||e.background||"\u2014"}),(0,le.jsx)("td",{className:"px-4 py-3 text-gray-400",children:null!==(a=e.credits_used)&&void 0!==a?a:1}),(0,le.jsx)("td",{className:"px-4 py-3",children:(0,le.jsx)("span",{className:"inline-block px-2 py-0.5 rounded-full text-xs font-medium ".concat(j[e.status]||"text-gray-400 bg-gray-700"),children:e.status||"\u2014"})}),(0,le.jsx)("td",{className:"px-4 py-3 text-gray-500 text-xs",children:e.created_at?new Date(e.created_at).toLocaleDateString("fr-FR",{day:"2-digit",month:"2-digit",year:"2-digit",hour:"2-digit",minute:"2-digit"}):"\u2014"}),(0,le.jsx)("td",{className:"px-4 py-3",children:e.image_path?(0,le.jsxs)("a",{href:"".concat("","/api/photo-ia/img/").concat(e.id,"?token=").concat(null===t||void 0===t||null===(l=t.Authorization)||void 0===l?void 0:l.replace("Bearer ","")),target:"_blank",rel:"noreferrer",className:"text-purple-400 hover:text-purple-300 text-xs flex items-center gap-1",children:[(0,le.jsx)(Y.A,{className:"w-3 h-3"})," Voir"]}):"\u2014"})]},e.id||s)})})]})})})]})}var Ht=s(56328);function Yt(e){let t=e.headers;const s=(0,r.useState)("referrals"),a=(0,l.A)(s,2),i=a[0],d=a[1],o=(0,r.useState)([]),c=(0,l.A)(o,2),x=c[0],m=c[1],u=(0,r.useState)([]),p=(0,l.A)(u,2),h=p[0],b=p[1],g=(0,r.useState)({}),f=(0,l.A)(g,2),j=f[0],v=f[1],N=(0,r.useState)(!0),y=(0,l.A)(N,2),w=y[0],_=y[1],k=(0,r.useState)("all"),S=(0,l.A)(k,2),z=S[0],E=S[1],R=async()=>{_(!0);try{const e=await Promise.all([n.A.get("".concat("","/api/admin/referrals?status=").concat(z),{headers:t}),n.A.get("".concat("","/api/admin/referral-payouts"),{headers:t})]),s=(0,l.A)(e,2),a=s[0],r=s[1];m(a.data.referrals||[]),v(a.data.totals_cents||{}),b(r.data.payouts||[])}catch(e){console.error(e),Ht.oR.error("Erreur chargement parrainage")}finally{_(!1)}};(0,r.useEffect)(()=>{R()},[z]);const T={pending:"text-yellow-400 bg-yellow-400/10",validated:"text-green-400 bg-green-400/10",paid:"text-blue-400 bg-blue-400/10",rejected:"text-red-400 bg-red-400/10"},F={pending:"En attente",validated:"Valid\xe9",paid:"Pay\xe9",rejected:"Rejet\xe9",requested:"Demand\xe9",processing:"En cours"};return(0,le.jsxs)("div",{className:"space-y-4",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2",children:[(0,le.jsx)(G.A,{className:"w-5 h-5 text-pink-400"}),(0,le.jsx)("h2",{className:"text-lg font-semibold text-white",children:"Parrainage"})]}),(0,le.jsxs)("button",{onClick:R,className:"flex items-center gap-1.5 text-xs text-gray-400 hover:text-white px-3 py-1.5 rounded-lg bg-gray-800 hover:bg-gray-700 transition-colors",children:[(0,le.jsx)(A.A,{className:"w-3 h-3"})," Rafra\xeechir"]})]}),(0,le.jsx)("div",{className:"grid grid-cols-3 gap-3",children:[{label:"En attente",cents:j.pending,color:"text-yellow-400",bg:"bg-yellow-500/5 border-yellow-500/20"},{label:"Valid\xe9",cents:j.validated,color:"text-green-400",bg:"bg-green-500/5 border-green-500/20"},{label:"Pay\xe9",cents:j.paid,color:"text-blue-400",bg:"bg-blue-500/5 border-blue-500/20"}].map(e=>{let t=e.label,s=e.cents,a=e.color,l=e.bg;return(0,le.jsxs)("div",{className:"rounded-xl border p-4 ".concat(l),children:[(0,le.jsx)("div",{className:"text-xs text-gray-400 mb-1",children:t}),(0,le.jsxs)("div",{className:"text-xl font-bold ".concat(a),children:[((s||0)/100).toFixed(2),"\u20ac"]})]},t)})}),(0,le.jsx)("div",{className:"flex gap-2 border-b border-white/5 pb-1",children:[{id:"referrals",label:"Commissions"},{id:"payouts",label:"Demandes de paiement"}].map(e=>(0,le.jsx)("button",{onClick:()=>d(e.id),className:"text-sm px-4 py-2 rounded-t-lg font-medium transition-colors ".concat(i===e.id?"text-white bg-white/5":"text-gray-500 hover:text-gray-300"),children:e.label},e.id))}),w?(0,le.jsx)("div",{className:"flex justify-center py-12",children:(0,le.jsx)("div",{className:"w-6 h-6 border-2 border-pink-500 border-t-transparent roun
1ded-full animate-spin"})}):"referrals"===i?(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)("div",{className:"flex gap-2",children:["all","pending","validated","paid","rejected"].map(e=>(0,le.jsx)("button",{onClick:()=>E(e),className:"text-xs px-3 py-1.5 rounded-full transition-colors ".concat(z===e?"bg-pink-600 text-white":"bg-gray-800 text-gray-400 hover:bg-gray-700"),children:"all"===e?"Tous":F[e]},e))}),(0,le.jsx)("div",{className:"bg-gray-900 rounded-xl border border-white/5 overflow-hidden",children:(0,le.jsx)("div",{className:"overflow-x-auto",children:(0,le.jsxs)("table",{className:"w-full text-sm",children:[(0,le.jsx)("thead",{className:"border-b border-white/5",children:(0,le.jsxs)("tr",{className:"text-xs text-gray-500 uppercase tracking-wide",children:[(0,le.jsx)("th",{className:"text-left px-4 py-3",children:"Parrain"}),(0,le.jsx)("th",{className:"text-left px-4 py-3",children:"Filleul"}),(0,le.jsx)("th",{className:"text-left px-4 py-3",children:"Offre"}),(0,le.jsx)("th",{className:"text-right px-4 py-3",children:"Commission"}),(0,le.jsx)("th",{className:"text-left px-4 py-3",children:"Statut"}),(0,le.jsx)("th",{className:"text-left px-4 py-3",children:"Date"}),(0,le.jsx)("th",{className:"text-right px-4 py-3",children:"Actions"})]})}),(0,le.jsx)("tbody",{children:0===x.length?(0,le.jsx)("tr",{children:(0,le.jsx)("td",{colSpan:7,className:"px-4 py-12 text-center text-gray-500",children:"Aucune commission"})}):x.map(e=>(0,le.jsxs)("tr",{className:"border-b border-white/5 last:border-0 hover:bg-white/2",children:[(0,le.jsx)("td",{className:"px-4 py-3 text-xs font-mono text-gray-300",children:e.referrer_email}),(0,le.jsx)("td",{className:"px-4 py-3 text-xs font-mono text-gray-400",children:e.referee_email_display||e.referee_email}),(0,le.jsx)("td",{className:"px-4 py-3 text-gray-400 text-xs",children:e.plan||"\u2014"}),(0,le.jsxs)("td",{className:"px-4 py-3 text-right font-semibold text-green-400",children:[((e.commission_cents||0)/100).toFixed(2),"\u20ac"]}),(0,le.jsx)("td",{className:"px-4 py-3",children:(0,le.jsx)("span",{className:"inline-block px-2 py-0.5 rounded-full text-xs font-medium ".concat(T[e.status]||"text-gray-400 bg-gray-700"),children:F[e.status]||e.status})}),(0,le.jsx)("td",{className:"px-4 py-3 text-gray-500 text-xs",children:e.created_at?new Date(e.created_at).toLocaleDateString("fr-FR",{day:"2-digit",month:"2-digit",year:"2-digit"}):"\u2014"}),(0,le.jsx)("td",{className:"px-4 py-3 text-right",children:"pending"===e.status&&(0,le.jsxs)("div",{className:"flex justify-end gap-1",children:[(0,le.jsx)("button",{onClick:()=>(async e=>{try{await n.A.post("".concat("","/api/admin/referrals/").concat(e,"/validate"),{},{headers:t}),Ht.oR.success("Commission valid\xe9e"),R()}catch(l){var s,a;Ht.oR.error((null===(s=l.response)||void 0===s||null===(a=s.data)||void 0===a?void 0:a.detail)||"Erreur validation")}})(e.id),className:"p-1.5 rounded-lg bg-green-700/30 hover:bg-green-700/60 text-green-400 transition-colors",title:"Valider",children:(0,le.jsx)(C.A,{className:"w-3.5 h-3.5"})}),(0,le.jsx)("button",{onClick:()=>(async e=>{if(window.confirm("Rejeter cette commission ? Le solde du parrain sera d\xe9duit."))try{await n.A.post("".concat("","/api/admin/referrals/").concat(e,"/reject"),{},{headers:t}),Ht.oR.success("Commission rejet\xe9e"),R()}catch(l){var s,a;Ht.oR.error((null===(s=l.response)||void 0===s||null===(a=s.data)||void 0===a?void 0:a.detail)||"Erreur rejet")}})(e.id),className:"p-1.5 rounded-lg bg-red-700/30 hover:bg-red-700/60 text-red-400 transition-colors",title:"Rejeter",children:(0,le.jsx)(q.A,{className:"w-3.5 h-3.5"})})]})})]},e.id))})]})})})]}):(0,le.jsx)("div",{className:"bg-gray-900 rounded-xl border border-white/5 overflow-hidden",children:(0,le.jsx)("div",{className:"overflow-x-auto",children:(0,le.jsxs)("table",{className:"w-full text-sm",children:[(0,le.jsx)("thead",{className:"border-b border-white/5",children:(0,le.jsxs)("tr",{className:"text-xs text-gray-500 uppercase tracking-wide",children:[(0,le.jsx)("th",{className:"text-left px-4 py-3",children:"Parrain"}),(0,le.jsx)("th",{className:"text-right px-4 py-3",children:"Montant"}),(0,le.jsx)("th",{className:"text-left px-4 py-3",children:"M\xe9thode"}),(0,le.jsx)("th",{className:"text-left px-4 py-3",children:"Statut"}),(0,le.jsx)("th",{className:"text-left px-4 py-3",children:"Demand\xe9 le"}),(0,le.jsx)("th",{className:"text-right px-4 py-3",children:"Action"})]})}),(0,le.jsx)("tbody",{children:0===h.length?(0,le.jsx)("tr",{children:(0,le.jsx)("td",{colSpan:6,className:"px-4 py-12 text-center text-gray-500",children:"Aucune demande de paiement"})}):h.map(e=>(0,le.jsxs)("tr",{className:"border-b border-white/5 last:border-0 hover:bg-white/2",children:[(0,le.jsx)("td",{className:"px-4 py-3 text-xs font-mono text-gray-300",children:e.referrer_email}),(0,le.jsxs)("td",{className:"px-4 py-3 text-right font-semibold text-green-400",children:[((e.amount_cents||0)/100).toFixed(2),"\u20ac"]}),(0,le.jsx)("td",{className:"px-4 py-3 text-gray-400 capitalize",children:e.payment_method||"\u2014"}),(0,le.jsx)("td",{className:"px-4 py-3",children:(0,le.jsx)("span",{className:"inline-block px-2 py-0.5 rounded-full text-xs font-medium ".concat(T[e.status]||"text-gray-400 bg-gray-700"),children:F[e.status]||e.status})}),(0,le.jsx)("td",{className:"px-4 py-3 text-gray-500 text-xs",children:e.requested_at?new Date(e.requested_at).toLocaleDateString("fr-FR"):"\u2014"}),(0,le.jsx)("td",{className:"px-4 py-3 text-right",children:["requested","processing"].includes(e.status)&&(0,le.jsxs)("button",{onClick:()=>(async e=>{const s=window.prompt("Note admin (optionnelle) :")||"";try{await n.A.post("".concat("","/api/admin/referral-payouts/").concat(e,"/mark-paid?admin_note=").concat(encodeURIComponent(s)),{},{headers:t}),Ht.oR.success("Paiement confirm\xe9"),R()}catch(r){var a,l;Ht.oR.error((null===(a=r.response)||void 0===a||null===(l=a.data)||void 0===l?void 0:l.detail)||"Erreur")}})(e.id),className:"flex items-center gap-1.5 ml-auto text-xs px-3 py-1.5 rounded-lg bg-blue-700/30 hover:bg-blue-700/60 text-blue-300 transition-colors",children:[(0,le.jsx)(C.A,{className:"w-3 h-3"})," Marquer pay\xe9"]})})]},e.id))})]})})})]})}const Gt=window.location.origin,Kt={starter_monthly:"Starter Mensuel",starter_annual:"Starter Annuel",pro_monthly:"Pro Mensuel",pro_annual:"Pro Annuel",elite_monthly:"Elite Mensuel",elite_annual:"Elite Annuel",free_test:"Free",bot:"Bot Simple",starter:"Starter Legacy",elite:"Elite Legacy"};function Jt(e){let t=e.status;const s={pending:{color:"#fbbf24",bg:"rgba(251,191,36,.1)",icon:B.A,label:"En attente"},approved:{color:"#34d399",bg:"rgba(52,211,153,.1)",icon:Oe.A,label:"Approuv\xe9"},rejected:{color:"#f87171",bg:"rgba(248,113,113,.1)",icon:H.A,label:"Refus\xe9"}}[t]||{color:"#64748b",bg:"rgba(100,116,139,.1)",icon:B.A,label:t},a=s.icon;return(0,le.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-bold",style:{color:s.color,background:s.bg},children:[(0,le.jsx)(a,{size:10})," ",s.label]})}function Qt(e){let t=e.req,s=e.onAction,a=e.actioning;const i=(0,r.useState)(""),n=(0,l.A)(i,2),d=n[0],o=n[1],c=(0,r.useState)(!1),x=(0,l.A)(c,2),m=x[0],u=x[1];return(0,le.jsxs)("div",{className:"bg-slate-900/70 border border-white/[0.06] rounded-2xl p-4",children:[(0,le.jsxs)("div",{className:"flex items-start justify-between gap-3 flex-wrap",children:[(0,le.jsxs)("div",{className:"flex items-start gap-3 flex-1 min-w-0",children:[(0,le.jsx)("div",{className:"w-9 h-9 rounded-xl bg-indigo-500/15 flex items-center justify-center flex-shrink-0",style:{border:"1px solid rgba(99,102,241,.2)"},children:(0,le.jsx)(mt.A,{size:14,className:"text-indigo-400"})}),(0,le.jsxs)("div",{className:"min-w-0",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,le.jsx)("p",{className:"text-white font-bold text-sm",children:t.name||"\u2014"}),(0,le.jsx)(Jt,{status:t.status})]}),(0,le.jsx)("p",{className:"text-slate-500 text-xs mt-0.5",children:t.email}),(0,le.jsxs)("div",{className:"flex items-center gap-3 mt-1 flex-wrap",children:[(0,le.jsxs)("span",{className:"text-slate-400 text-xs flex items-center gap-1",children:[(0,le.jsx)(Me.A,{size:10})," ",(0,le.jsx)("span",{className:"font-bold text-white",children:t.discord_pseudo})]}),(0,le.jsxs)("span",{className:"text-slate-500 text-xs flex items-center gap-1",children:[(0,le.jsx)(h.A,{size:10})," ",Kt[t.plan]||t.plan||"Sans plan"]}),(0,le.jsx)("span",{className:"text-slate-600 text-xs",children:new Date(t.created_at).toLocaleDateString("fr-FR",{day:"2-digit",month:"short",hour:"2-digit",minute:"2-digit"})})]})]})]}),"pending"===t.status&&(0,le.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[(0,le.jsx)("button",{onClick:()=>u(e=>!e),className:"text-slate-500 hover:text-white transition-all p-1.5 rounded-lg bg-slate-800/60",children:m?(0,le.jsx)(Ft.A,{size:13}):(0,le.jsx)(Dt.A,{size:13})}),(0,le.jsxs)("button",{onClick:()=>s(t.id,"rejected",d),disabled:a===t.id,"data-testid":"reject-".concat(t.id),className:"flex items-center gap-1.5 text-xs font-bold px-3 py-1.5 rounded-xl transition-all bg-red-500/10 border border-red-500/20 text-red-400 hover:bg-red-500/20",children:[(0,le.jsx)(H.A,{size:12})," Refuser"]}),(0,le.jsxs)("button",{onClick:()=>s(t.id,"approved",d),disabled:a===t.id,"data-testid":"approve-".concat(t.id),className:"flex items-center gap-1.5 text-xs font-bold px-3 py-1.5 rounded-xl transition-all bg-emerald-500/10 border border-emerald-500/20 text-emerald-400 hover:bg-emerald-500/20",children:[a===t.id?(0,le.jsx)("span",{className:"w-3 h-3 border border-emerald-400/30 border-t-emerald-400 rounded-full animate-spin"}):(0,le.jsx)(Oe.A,{size:12}),"Approuver"]})]})]}),m&&"pending"===t.status&&(0,le.jsx)("div",{className:"mt-3 pt-3 border-t border-white/[0.04]",children:(0,le.jsx)("input",{value:d,onChange:e=>o(e.target.value),placeholder:"Note admin (optionnel)",className:"w-full bg-slate-800/50 border border-white/[0.06] rounded-xl px-3 py-2 text-white text-xs focus:outline-none focus:border-indigo-500/30 transition-colors"})}),t.admin_note&&(0,le.jsxs)("p",{className:"mt-2 text-slate-500 text-xs italic",children:["Note : ",t.admin_note]})]})}function Zt(e){let t=e.alert,s=e.onResolve,a=e.resolving;const l="payment_failed"===t.reason?"Paiement \xe9chou\xe9":"Abonnement annul\xe9";return(0,le.jsx)("div",{className:"bg-slate-900/70 border border-red-500/15 rounded-2xl p-4",children:(0,le.jsxs)("div",{className:"flex items-start justify-between gap-3 flex-wrap",children:[(0,le.jsxs)("div",{className:"flex items-start gap-3 flex-1 min-w-0",children:[(0,le.jsx)("div",{className:"w-9 h-9 rounded-xl bg-red-500/10 flex items-center justify-center flex-shrink-0",style:{border:"1px solid rgba(248,113,113,.2)"},children:(0,le.jsx)(k.A,{size:14,className:"text-red-400"})}),(0,le.jsxs)("div",{children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,le.jsx)("p",{className:"text-white font-bold text-sm",children:t.name||"\u2014"}),(0,le.jsx)("span",{className:"text-xs font-bold px-2 py-0.5 rounded-full text-red-400 bg-red-500/10",children:l})]}),(0,le.jsx)("p",{className:"text-slate-500 text-xs mt-0.5",children:t.email}),(0,le.jsxs)("div",{className:"flex items-center gap-3 mt-1 flex-wrap",children:[(0,le.jsxs)("span",{className:"text-red-300 text-xs font-bold flex items-center gap-1",children:[(0,le.jsx)(Me.A,{size:10})," ",t.discord_pseudo||"pseudo non enregistr\xe9"]}),(0,le.jsxs)("span",{className:"text-slate-500 text-xs flex items-center gap-1",children:[(0,le.jsx)(h.A,{size:10})," ",Kt[t.old_plan]||t.old_plan||"\u2014"]}),(0,le.jsx)("span",{className:"text-slate-600 text-xs",children:new Date(t.created_at).toLocaleDateString("fr-FR",{day:"2-digit",month:"short"})})]})]})]}),(0,le.jsxs)("button",{onClick:()=>s(t.id),disabled:a===t.id,"data-testid":"resolve-".concat(t.id),className:"flex items-center gap-1.5 text-xs font-bold px-3 py-1.5 rounded-xl transition-all bg-slate-800/60 border border-white/[0.08] text-slate-400 hover:text-white flex-shrink-0",children:[a===t.id?(0,le.jsx)("span",{className:"w-3 h-3 border border-slate-400/30 border-t-slate-400 rounded-full animate-spin"}):(0,le.jsx)(Oe.A,{size:12}),"R\xf4le retir\xe9 \u2713"]})]})})}function Xt(e){let t=e.headers;const s=(0,r.useState)("requests"),a=(0,l.A)(s,2),i=a[0],d=a[1],o=(0,r.useState)("pending"),c=(0,l.A)(o,2),x=c[0],m=c[1],u=(0,r.useState)([]),p=(0,l.A)(u,2),h=p[0],b=p[1],g=(0,r.useState)([]),f=(0,l.A)(g,2),j=f[0],v=f[1],N=(0,r.useState)(!0),y=(0,l.A)(N,2),w=y[0],_=y[1],S=(0,r.useState)(null),C=(0,l.A)(S,2),z=C[0],E=C[1],R=(0,r.useState)(null),T=(0,l.A)(R,2),F=T[0],D=T[1],I=t(),L=(0,r.useCallback)(async()=>{_(!0);try{var e,t;const s=await Promise.all([n.A.get("".concat(Gt,"/api/admin/discord/requests?status=").concat(x),{headers:I}),n.A.get("".concat(Gt,"/api/admin/discord/revoke-alerts"),{headers:I}
1)]),a=(0,l.A)(s,2),r=a[0],i=a[1];b((null===(e=r.data)||void 0===e?void 0:e.requests)||[]),v((null===(t=i.data)||void 0===t?void 0:t.alerts)||[])}catch(s){console.error("AdminDiscordPanel load error",s)}finally{_(!1)}},[x]);(0,r.useEffect)(()=>{L()},[L]);const q=async(e,t,s)=>{E(e);try{await n.A.put("".concat(Gt,"/api/admin/discord/requests/").concat(e),{status:t,note:s},{headers:I}),await L()}finally{E(null)}},P=async e=>{D(e);try{await n.A.put("".concat(Gt,"/api/admin/discord/revoke-alerts/").concat(e,"/resolve"),{},{headers:I}),await L()}finally{D(null)}},M=j.filter(e=>!e.resolved);return(0,le.jsxs)("div",{className:"space-y-5 max-w-3xl","data-testid":"admin-discord-panel",children:[(0,le.jsxs)("div",{className:"flex items-start justify-between flex-wrap gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h2",{className:"text-white text-2xl font-black",style:{fontFamily:"Space Grotesk, sans-serif"},children:"Discord Manuel"}),(0,le.jsx)("p",{className:"text-slate-500 text-sm mt-1",children:"Valide les demandes d'acc\xe8s et retire les r\xf4les manuellement."})]}),(0,le.jsxs)("button",{onClick:L,className:"flex items-center gap-1.5 text-slate-500 hover:text-white text-xs transition-all",children:[(0,le.jsx)(A.A,{size:13,className:w?"animate-spin":""})," Actualiser"]})]}),(0,le.jsx)("div",{className:"flex gap-1 bg-slate-900/70 border border-white/[0.06] rounded-xl p-1 w-fit",children:[{key:"requests",label:"Demandes d'acc\xe8s"},{key:"revoke",label:"R\xe9vocations".concat(M.length>0?" (".concat(M.length,")"):""),urgent:M.length>0}].map(e=>(0,le.jsx)("button",{onClick:()=>
1d(e.key),"data-testid":"discord-tab-".concat(e.key),className:"px-4 py-1.5 rounded-lg text-xs font-bold transition-all",style:{background:i===e.key?"rgba(99,102,241,.2)":"transparent",color:i===e.key?"#818cf8":e.urgent?"#f87171":"#64748b",border:i===e.key?"1px solid rgba(99,102,241,.3)":"1px solid transparent"},children:e.label},e.key))}),"requests"===i&&(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)("div",{className:"flex gap-1 flex-wrap",children:["pending","approved","rejected","all"].map(e=>(0,le.jsx)("button",{onClick:()=>m(e),"data-testid":"filter-".concat(e),className:"px-3 py-1 rounded-lg text-xs font-bold transition-all",style:{background:x===e?"rgba(255,255,255,.08)":"transparent",color:x===e?"#e2e8f0":"#64748b",border:"1px solid ".concat(x===e?"rgba(255,255,255,.12)":"transparent")},children:{pending:"En attente",approved:"Approuv\xe9",rejected:"Refus\xe9",all:"Tous"}[e]},e))}),w?(0,le.jsx)("div",{className:"flex justify-center py-12",children:(0,le.jsx)("span",{className:"w-7 h-7 border-2 border-indigo-400/30 border-t-indigo-400 rounded-full animate-spin"})}):0===h.length?(0,le.jsxs)("div",{className:"text-center py-12",children:[(0,le.jsx)(Me.A,{size:32,className:"text-slate-700 mx-auto mb-2"}),(0,le.jsxs)("p",{className:"text-slate-500 text-sm",children:["Aucune demande ","all"!==x?'"'.concat(x,'"'):""]})]}):(0,le.jsx)("div",{className:"space-y-3",children:h.map(e=>(0,le.jsx)(Qt,{req:e,onAction:q,actioning:z},e.id))})]}),"revoke"===i&&(0,le.jsxs)(le.Fragment,{children:[M.length>0&&(0,le.jsxs)("div",{className:"flex items-center gap-2 p-3 rounded-xl bg-red-500/8 border border-red-500/15",children:[(0,le.jsx)(k.A,{size:14,className:"text-red-400 flex-shrink-0"}),(0,le.jsxs)("p",{className:"text-red-300 text-sm font-semibold",children:[M.length," r\xf4le(s) \xe0 retirer manuellement sur Discord"]})]}),w?(0,le.jsx)("div",{className:"flex justify-center py-12",children:(0,le.jsx)("span",{className:"w-7 h-7 border-2 border-red-400/30 border-t-red-400 rounded-full animate-spin"})}):0===M.length?(0,le.jsxs)("div",{className:"text-center py-12",children:[(0,le.jsx)(Oe.A,{size:32,className:"text-slate-700 mx-auto mb-2"}),(0,le.jsx)("p",{className:"text-slate-500 text-sm",children:"Aucune r\xe9vocation en attente \u2014 tout est \xe0 jour \u2713"})]}):(0,le.jsx)("div",{className:"space-y-3",children:M.map(e=>(0,le.jsx)(Zt,{alert:e,onResolve:P,resolving:F},e.id))})]})]})}var $t=s(42574);const es={free_test:{label:"Free",color:"text-slate-400 bg-slate-400/10",badge:""}
1,starter_monthly:{label:"Starter",color:"text-sky-400 bg-sky-400/10",badge:"Mensuel"},starter_annual:{label:"Starter",color:"text-sky-400 bg-sky-400/10",badge:"Annuel"},pro_monthly:{label:"Pro",color:"text-teal-400 bg-teal-400/10",badge:"Mensuel"},pro_annual:{label:"Pro",color:"text-teal-400 bg-teal-400/10",badge:"Annuel"},elite_monthly:{label:"Elite",color:"text-indigo-400 bg-indigo-400/10",badge:"Mensuel"},elite_annual:{label:"Elite",color:"text-indigo-400 bg-indigo-400/10",badge:"Annuel"},lp_tools:{label:"Outils 14.90\u20ac/mois",color:"text-blue-400 bg-blue-400/10",badge:"Mensuel"},lp_ecosystem:{label:"\xc9cosyst\xe8me 147\u20ac",color:"text-teal-400 bg-teal-400/10",badge:"Unique"},lp_premium:{label:"Premium 390\u20ac",color:"text-purple-400 bg-purple-400/10",badge:"Unique"},methode:{label:"M\xe9thode",color:"text-orange-400 bg-orange-400/10",badge:""},formation:{label:"Formation",color:"text-pink-400 bg-pink-400/10",badge:""},formation_annual:{label:"Formation Annuelle",color:"text-pink-400 bg-pink-400/10",badge:""},bot_starter:{label:"Bot Starter",color:"text-gray-400 bg-gray-400/10",badge:""},elite:{label:"Elite",color:"text-yellow-400 bg-yellow-400/10",badge:""},tools:{label:"Tools",color:"text-blue-400 bg-blue-400/10",badge:""}};function ts(e){let t=e.headers;const s=(0,r.useState)([]),a=(0,l.A)(s,2),i=a[0],d=a[1],o=(0,r.useState)(!0),c=(0,l.A)(o,2),x=c[0],m=c[1],u=(0,r.useState)(""),p=(0,l.A)(u,2),b=p[0],g=p[1],f=(0,r.useState)(null),v=(0,l.A)(f,2),N=v[0],w=v[1],_=(0,r.useState)(null),k=(0,l.A)(_,2),S=k[0],z=k[1],E=(0,r.useState)(null),R=(0,l.A)(E,2),T=R[0],F=R[1],D=(0,r.useState)(!1),I=(0,l.A)(D,2),L=I[0],q=I[1],P=(0,r.useState)("db"),M=(0,l.A)(P,2),O=M[0],V=M[1],B=async()=>{m(!0);try{const e=(await n.A.get("".concat("","/api/admin/subscriptions"),{headers:t()})).data;d(e.members||[])}catch(e){Ht.oR.error("Erreur chargement membres")}finally{m(!1)}},W=async()=>{q(!0);try{const e=(await n.A.get("".concat("","/api/admin/subscriptions/stripe-live"),{headers:t()})).data;F(e.subscriptions||[]),V("stripe"),Ht.oR.success("".concat(e.total," abonnement(s) actif(s) sur Stripe"))}catch(a){var e,s;Ht.oR.error((null===(e=a.response)||void 0===e||null===(s=e.data)||void 0===s?void 0:s.detail)||"Erreur Stripe")}finally{q(!1)}};(0,r.useEffect)(()=>{B()},[]);const Y=("stripe"===O?T||[]:i).filter(e=>{var t,s;return!b||(null===(t=e.email)||void 0===t?void 0:t.toLowerCase().includes(b.toLowerCase()))||(null===(s=e.plan)||void 0===s?void 0:s.includes(b))});return(0,le.jsxs)("div",{className:"space-y-4",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-3",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2",children:[(0,le.jsx)(h.A,{className:"w-5 h-5 text-teal-400"}),(0,le.jsx)("h2",{className:"text-lg font-semibold text-white",children:"Abonnements actifs"}),(0,le.jsx)("span",{className:"text-xs text-gray-400 ml-1",children:"stripe"===O?"".concat((T||[]).length," depuis Stripe"):"".concat(i.length," dans la DB")}),(0,le.jsxs)("div",{className:"flex items-center gap-1 ml-2 bg-gray-800 border border-white/8 rounded-lg p-0.5",children:[(0,le.jsx)("button",{onClick:()=>V("db"),className:"text-xs px-2.5 py-1 rounded-md font-medium transition-colors ".concat("db"===O?"bg-teal-600 text-white":"text-gray-400 hover:text-white"),children:"Base"}),(0,le.jsxs)("button",{onClick:()=>T?V("stripe"):W(),disabled:L,className:"flex items-center gap-1 text-xs px-2.5 py-1 rounded-md font-medium transition-colors ".concat("stripe"===O?"bg-yellow-600 text-white":"text-gray-400 hover:text-yellow-300"),children:[L?(0,le.jsx)(A.A,{className:"w-3 h-3 animate-spin"}):(0,le.jsx)(y.A,{className:"w-3 h-3"}),"Stripe Live"]})]})]}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsxs)("div",{className:"relative",children:[(0,le.jsx)(U.A,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-gray-500"}),(0,le.jsx)("input",{value:b,onChange:e=>g(e.target.value),placeholder:"Rechercher...",className:"bg-gray-800 border border-white/10 rounded-lg pl-8 pr-3 py-2 text-sm text-white w-48 focus:outline-none focus:border-teal-500/50"})]}),(0,le.jsxs)("button",{onClick:()=>"stripe"===O?W():B(),className:"flex items-center gap-1.5 text-xs text-gray-400 hover:text-white px-3 py-2 rounded-lg bg-gray-800 hover:bg-gray-700 transition-colors",children:[(0,le.jsx)(A.A,{className:"w-3 h-3"})," Rafra\xeechir"]})]})]}),(0,le.jsxs)("div",{className:"flex items-start gap-2 bg-yellow-950/30 border border-yellow-500/20 rounded-xl p-3 text-xs text-yellow-300",children:[(0,le.jsx)(Xe.A,{className:"w-4 h-4 mt-0.5 shrink-0"}),(0,le.jsxs)("div",{children:["Pour retirer les r\xf4les Discord automatiquement \xe0 la r\xe9siliation, les membres doivent avoir renseign\xe9 leur ",(0,le.jsx)("strong",{children:"ID Discord num\xe9rique"})," dans leur espace membre (Discord & Skool)."," ",(0,le.jsx)("span",{className:"text-yellow-500",children:"Il te manque l'ID du serveur Discord \u2014 ajoute DISCORD_GUILD_ID dans le .env pour activer cette fonctionnalit\xe9."})]})]}),x?(0,le.jsx)("div",{className:"flex justify-center py-16",children:(0,le.jsx)("div",{className:"w-6 h-6 border-2 border-teal-500 border-t-transparent roun
1ded-full animate-spin"})}):(0,le.jsxs)("div",{className:"bg-gray-900 rounded-xl border border-white/5 overflow-hidden",children:["stripe"===O&&(0,le.jsxs)("div",{className:"px-4 py-2 bg-yellow-950/30 border-b border-yellow-500/15 flex items-center gap-2 text-xs text-yellow-300",children:[(0,le.jsx)(y.A,{className:"w-3.5 h-3.5"}),(0,le.jsxs)("span",{children:["Donn\xe9es Stripe Live \u2014 ",(T||[]).length," abonnement(s) actif(s)"]}),(0,le.jsxs)("a",{href:"https://dashboard.stripe.com/subscriptions",target:"_blank",rel:"noopener noreferrer",className:"ml-auto flex items-center gap-1 text-yellow-400 hover:underline",children:["Ouvrir Stripe ",(0,le.jsx)(j.A,{className:"w-3 h-3"})]})]}),(0,le.jsx)("div",{className:"overflow-x-auto",children:(0,le.jsxs)("table",{className:"w-full text-sm",children:[(0,le.jsx)("thead",{className:"border-b border-white/5",children:(0,le.jsxs)("tr",{className:"text-xs text-gray-500 uppercase tracking-wide",children:[(0,le.jsx)("th",{className:"text-left px-4 py-3",children:"Email"}),(0,le.jsx)("th",{className:"text-left px-4 py-3",children:"Plan"}),(0,le.jsx)("th",{className:"text-left px-4 py-3",children:"Discord ID"}),(0,le.jsx)("th",{className:"text-left px-4 py-3",children:"Stripe sub"}),(0,le.jsx)("th",{className:"text-left px-4 py-3",children:"stripe"===O?"Renouvellement":"Inscrit le"}),(0,le.jsx)("th",{className:"text-right px-4 py-3",children:"Actions"})]})}),(0,le.jsx)("tbody",{children:0===Y.length?(0,le.jsx)("tr",{children:(0,le.jsx)("td",{colSpan:6,className:"px-4 py-12 text-center text-gray-500",children:"Aucun membre trouv\xe9"})}):Y.map((e,s)=>{const a=es[e.plan]||{label:e.plan||"\u2014",color:"text-gray-400 bg-gray-700",badge:""},l=(e=>e.discord_user_id||e.discord_id)(e),r=e.id||e.user_id||"stripe-".concat(s),i="stripe"===O?e.current_period_end?new Date(e.current_period_end).toLocaleDateString("fr-FR"):"\u2014":e.created_at?new Date(e.created_at).toLocaleDateString("fr-FR"):"\u2014";return(0,le.jsxs)("tr",{className:"border-b border-white/5 last:border-0 hover:bg-white/2",children:[(0,le.jsx)("td",{className:"px-4 py-3",children:(0,le.jsxs)("div",{className:"flex items-center gap-2",children:[(0,le.jsx)("span",{className:"text-gray-200 text-xs font-mono",children:e.email}),"stripe"===O&&(0,le.jsx)("span",{className:"text-[9px] px-1.5 py-0.5 rounded font-bold ".concat(e.in_db?"bg-green-900/40 text-green-400":"bg-orange-900/40 text-orange-400"),children:e.in_db?"DB \u2713":"Hors DB"})]})}),(0,le.jsx)("td",{className:"px-4 py-3",children:(0,le.jsx)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium ".concat(a.color),children:a.label})}),(0,le.jsx)("td",{className:"px-4 py-3",children:l?(0,le.jsxs)("span",{className:"text-xs font-mono text-green-400 flex items-center gap-1",children:[(0,le.jsx)(C.A,{className:"w-3 h-3"})," ",l]}):(0,le.jsx)("span",{className:"text-xs text-gray-600",children:"\u2014"})}),(0,le.jsx)("td",{className:"px-4 py-3",children:e.stripe_subscription_id?(0,le.jsx)("span",{className:"text-xs font-mono text-gray-500 truncate max-w-[100px] block",children:e.stripe_subscription_id}):(0,le.jsx)("span",{className:"text-xs text-gray-600",children:"\u2014"})}),(0,le.jsx)("td",{className:"px-4 py-3 text-gray-500 text-xs",children:i}),(0,le.jsx)("td",{className:"px-4 py-3",children:(0,le.jsxs)("div",{className:"flex justify-end gap-1.5",children:["db"===O&&(0,le.jsx)("button",{onClick:()=>(async e=>{if(e.discord_id||e.discord_user_id){z(e.id);try{await n.A.post("".concat("","/api/admin/subscriptions/").concat(e.id,"/assign-discord-role"),{},{headers:t()}),Ht.oR.success("R\xf4le Discord attribu\xe9")}catch(l){var s,a;Ht.oR.error((null===(s=l.response)||void 0===s||null===(a=s.data)||void 0===a?void 0:a.detail)||"Erreur Discord")}finally{z(null)}}else Ht.oR.error("Aucun ID Discord enregistr\xe9 pour ce membre")})(e),disabled:S===e.id,title:l?"Attribuer r\xf4le Discord":"ID Discord manquant",className:"p-1.5 rounded-lg text-xs transition-colors\n ".concat(l?"bg-indigo-700/30 hover:bg-indigo-700/60 text-indigo-400":"bg-gray-800 text-gray-600 cursor-not-allowed"),children:(0,le.jsx)($t.A,{className:"w-3.5 h-3.5"})}),"db"===O&&(0,le.jsxs)("button",{onClick:()=>(async e=>{if(window.confirm("Annuler l'abonnement de ".concat(e.email," ?\n\n")+"\u2022 Stripe : r\xe9siliation imm\xe9diate\n\u2022 Site : acc\xe8s r\xe9voqu\xe9 (plan \u2192 free)\n\u2022 Discord : r\xf4le retir\xe9 (si ID Discord enregistr\xe9)\n\nCette action est irr\xe9versible.")){w(e.id);try{var s;const a=(await n.A.post("".concat("","/api/admin/subscriptions/").concat(e.id,"/cancel"),{},{headers:t()})).data;Ht.oR.success("\u2713 ".concat(e.email," r\xe9sili\xe9")),((null===(s=a.results)||void 0===s?void 0:s.steps)||[]).forEac
1h(e=>{e.ok||Ht.oR.warning("".concat(e.action,": ").concat(e.error||"attention"))}),B()}catch(r){var a,l;Ht.oR.error((null===(a=r.response)||void 0===a||null===(l=a.data)||void 0===l?void 0:l.detail)||"Erreur r\xe9siliation")}finally{w(null)}}})(e),disabled:N===e.id,className:"flex items-center gap-1 px-2 py-1.5 rounded-lg bg-red-700/20 hover:bg-red-700/40 text-red-400 text-xs font-medium transition-colors disabled:opacity-40",children:[N===e.id?(0,le.jsx)(A.A,{className:"w-3 h-3 animate-spin"}):(0,le.jsx)(H.A,{className:"w-3 h-3"}),"R\xe9silier"]}),"stripe"===O&&e.customer_id&&(0,le.jsxs)("a",{href:"https://dashboard.stripe.com/customers/".concat(e.customer_id),target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 px-2 py-1.5 rounded-lg bg-gray-700/40 hover:bg-gray-700 text-gray-400 hover:text-white text-xs font-medium transition-colors",children:[(0,le.jsx)(j.A,{className:"w-3 h-3"})," Stripe"]})]})})]},r)})})]})})]})]})}const ss=window.location.origin,as={pending:{label:"En attente",color:"text-amber-400",bg:"bg-amber-600/10",border:"border-amber-500/20",dot:"bg-amber-400"},approved:{label:"Approuv\xe9e",color:"text-green-400",bg:"bg-green-600/10",border:"border-green-500/20",dot:"bg-green-400"},rejected:{label:"Refus\xe9e",color:"text-red-400",bg:"bg-red-600/10",border:"border-red-500/20",dot:"bg-red-400"}};function ls(){var e,t;const s=(0,se.A)().authHeaders,i=(0,r.useState)([]),d=(0,l.A)(i,2),o=d[0],c=d[1],x=(0,r.useState)(!0),m=(0,l.A)(x,2),u=m[0],p=m[1],h=(0,r.useState)("pending"),b=(0,l.A)(h,2),f=b[0],v=b[1],N=(0,r.useState)(null),y=(0,l.A)(N,2),w=y[0],_=y[1],k=(0,r.useCallback)(async()=>{p(!0);try{const e=await n.A.get("".concat(ss,"/api/admin/affiliate/applications"),{headers:s()});c(e.data||[])}catch(e){}finally{p(!1)}},[s]);(0,r.useEffect)(()=>{k()},[k]);const S=o.filter(e=>"all"===f||e.status===f),C={pending:o.filter(e=>"pending"===e.status).length,approved:o.filter(e=>"approved"===e.status).length,rejected:o.filter(e=>"rejected"===e.status).length};return(0,le.jsxs)("div",{className:"space-y-5","data-testid":"affiliate-applications-panel",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h1",{className:"text-2xl font-bold text-white",style:{fontFamily:"Outfit, sans-serif"},children:"Demandes Affili\xe9s"}),(0,le.jsx)("p",{className:"text-slate-400 text-sm mt-1",children:C.pending>0?(0,le.jsxs)("span",{className:"text-amber-400 font-semibold",children:[C.pending," demande(s) en attente de validation"]}):"Toutes les demandes ont \xe9t\xe9 trait\xe9es"})]}),(0,le.jsxs)("button",{onClick:k,disabled:u,className:"flex items-center gap-2 px-4 py-2 rounded-xl bg-slate-800 border border-white/8 text-slate-400 hover:text-white text-sm transition-all disabled:opacity-50",children:[(0,le.jsx)(A.A,{size:14,className:u?"animate-spin":""})," Rafra\xeechir"]})]}),(0,le.jsx)("div",{className:"grid grid-cols-3 gap-3",children:[{label:"En attente",value:C.pending,color:"text-amber-400",bg:"bg-amber-600/10",border:"border-amber-500/20"},{label:"Approuv\xe9es",value:C.approved,color:"text-green-400",bg:"bg-green-600/10",border:"border-green-500/20"},{label:"Refus\xe9es",value:C.rejected,color:"text-red-400",bg:"bg-red-600/10",border:"border-red-500/20"}].map((e,t)=>(0,le.jsxs)("div",{className:"".concat(e.bg," border ").concat(e.border," rounded-xl p-4"),children:[(0,le.jsx)("p",{className:"text-2xl font-black ".concat(e.color),style:{fontFamily:"Outfit"},children:e.value}),(0,le.jsx)("p",{className:"text-slate-500 text-xs mt-0.5",children:e.label})]},t))}),(0,le.jsx)("div",{className:"flex gap-1 p-1 bg-slate-900 rounded-xl border border-white/5 w-fit",children:[{k:"pending",label:"En attente (".concat(C.pending,")")},{k:"approved",label:"Approuv\xe9es (".concat(C.approved,")")},{k:"rejected",label:"Refus\xe9es (".concat(C.rejected,")")},{k:"all",label:"Toutes (".concat(o.length,")")}].map(e=>(0,le.jsx)("button",{onClick:()=>v(e.k),className:"px-3 py-1.5 rounded-lg text-xs font-semibold transition-all ".concat(f===e.k?"bg-blue-600 text-white":"text-slate-400 hover:text-white"),children:e.label},e.k))}),u?(0,le.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,le.jsx)(we.A,{size:20,className:"animate-spin text-blue-400"})}):0===S.length?(0,le.jsxs)("div",{className:"text-center py-16 bg-slate-900 rounded-2xl border border-white/5",children:[(0,le.jsx)(g.A,{size:28,className:"mx-auto mb-3 text-slate-700"}),(0,le.jsxs)("p",{className:"text-slate-500",children:["Aucune demande ","all"!==f?'"'.concat(null===(e=as[f])||void 0===e||null===(t=e.label)||void 0===t?void 0:t.toLowerCase(),'"'):"","."]})]}):(0,le.jsx)("div",{className:"space-y-3",children:S.map(e=>{var t,l,r,i;const d=as[e.status]||as.pending,o="pending"===e.status,x=w===e.id;return(0,le.jsxs)("div",{className:"bg-slate-900 border rounded-2xl p-5 transition-all ".concat(o?"border-amber-500/20":"border-white/5"),"data-testid":"affiliate-app-".concat(e.id),children:[(0,le.jsxs)("div",{className:"flex items-start justify-between gap-3 mb-4",children:[(0,le.jsxs)("div",{className:"flex items-center gap-3",children:[(0,le.jsx)("div",{className:"w-10 h-10 rounded-full bg-slate-800 border border-white/5 flex items-center justify-center flex-shrink-0",children:(0,le.jsx)(mt.A,{size:16,className:"text-slate-500"})}),(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-white font-bold text-sm",children:e.name||"\u2014"}),(0,le.jsx)("p",{className:"text-slate-500 text-xs",children:e.email||"\u2014"})]})]}),(0,le.jsxs)("div",{className:"flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-semibold border ".concat(d.bg," ").concat(d.border," ").concat(d.color," flex-shrink-0"),children:[(0,le.jsx)("span",{className:"w-1.5 h-1.5 rounded-full ".concat(d.dot)}),d.label]})]}),(0,le.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 mb-4",children:[e.social_link&&(0,le.jsxs)("div",{className:"bg-slate-800 rounded-xl px-3 py-2.5",children:[(0,le.jsx)("p",{className:"text-slate-500 text-[10px] font-semibold uppercase tracking-wider mb-1",children:"R\xe9seau social"}),(0,le.jsxs)("a",{href:e.social_link,target:"_blank",rel:"noreferrer",className:"flex items-center gap-1.5 text-blue-400 text-xs hover:text-blue-300 transition-colors",children:[(0,le.jsx)(j.A,{size:10})," ",null===(t=e.social_link)||void 0===t?void 0:t.slice(0,40),"..."]})]}),e.audience_size&&(0,le.jsxs)("div",{className:"bg-slate-800 rounded-xl px-3 py-2.5",children:[(0,le.jsx)("p",{className:"text-slate-500 text-[10px] font-semibold uppercase tracking-wider mb-1",children:"Taille audience"}),(0,le.jsx)("p",{className:"text-white text-xs font-semibold",children:e.audience_size})]}),e.motivation&&(0,le.jsxs)("div",{className:"bg-slate-800 rounded-xl px-3 py-2.5 sm:col-span-2",children:[(0,le.jsx)("p",{className:"text-slate-500 text-[10px] font-semibold uppercase tracking-wider mb-1",children:"Motivation"}),(0,le.jsx)("p",{className:"text-slate-300 text-xs leading-relaxed",children:e.motivation})]})]}),(0,le.jsxs)("div",{className:"flex items-center gap-1.5 text-slate-600 text-[10px] mb-4",children:[(0,le.jsx)(V.A,{size:10}),"Soumis le ",null===(l=e.created_at)||void 0===l?void 0:l.slice(0,10).replace(/-/g,"/")]}),o&&(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsxs)("button",{onClick:()=>(async e=>{_(e);try{await n.A.put("".concat(ss,"/api/admin/affiliate/applications/").concat(e,"/approve"),{},{headers:s()}),c(t=>t.map(t=>
1t.id===e?(0,a.A)((0,a.A)({},t),{},{status:"approved"}):t))}catch(r){var t,l;alert((null===r||void 0===r||null===(t=r.response)||void 0===t||null===(l=t.data)||void 0===l?void 0:l.detail)||"Erreur")}finally{_(null)}})(e.id),disabled:x,"data-testid":"approve-app-".concat(e.id),className:"flex-1 flex items-center justify-center gap-2 py-2.5 rounded-xl bg-gradient-to-r from-green-700 to-emerald-600 text-white text-xs font-bold hover:opacity-90 disabled:opacity-50 transition-all",children:[x?(0,le.jsx)(we.A,{size:13,className:"animate-spin"}):(0,le.jsx)(Oe.A,{size:13}),"Approuver"]}),(0,le.jsxs)("button",{onClick:()=>(async e=>{if(window.confirm("Refuser cette demande ?")){_(e);try{await n.A.put("".concat(ss,"/api/admin/affiliate/applications/").concat(e,"/reject"),{},{headers:s()}),c(t=>t.map(t=>t.id===e?(0,a.A)((0,a.A)({},t),{},{status:"rejected"}):t))}catch(r){var t,l;alert((null===r||void 0===r||null===(t=r.response)||void 0===t||null===(l=t.data)||void 0===l?void 0:l.detail)||"Erreur")}finally{_(null)}}})(e.id),disabled:x,"data-testid":"reject-app-".concat(e.id),className:"flex-1 flex items-center justify-center gap-2 py-2.5 rounded-xl bg-red-600/15 border border-red-500/25 text-red-400 text-xs font-bold hover:bg-red-600/25 disabled:opacity-50 transition-all",children:[x?(0,le.jsx)(we.A,{size:13,className:"animate-spin"}):(0,le.jsx)(H.A,{size:13}),"Refuser"]})]}),"approved"===e.status&&e.approved_at&&(0,le.jsxs)("div",{className:"flex items-center gap-1.5 text-green-400 text-xs",children:[(0,le.jsx)(Oe.A,{size:11})," Approuv\xe9e le ",null===(r=e.approved_at)||void 0===r?void 0:r.slice(0,10).replace(/-/g,"/")]}),"rejected"===e.status&&e.rejected_at&&(0,le.jsxs)("div",{className:"flex items-center gap-1.5 text-red-400 text-xs",children:[(0,le.jsx)(H.A,{size:11})," Refus\xe9e le ",null===(i=e.rejected_at)||void 0===i?void 0:i.slice(0,10).replace(/-/g,"/")]})]},e.id)})})]})}var rs=s(77737),is=s(66151);const ns=window.location.origin;function ds(){const e=(0,se.A)().authHeaders,t=(0,r.useState)([]),s=(0,l.A)(t,2),i=s[0],d=s[1],o=(0,r.useState)(!0),c=(0,l.A)(o,2),x=c[0],m=c[1],p=(0,r.useState)(""),h=(0,l.A)(p,2),b=h[0],g=h[1],f=(0,r.useState)(!1),j=(0,l.A)(f,2),v=j[0],N=j[1],y=(0,r.useState)(null),k=(0,l.A)(y,2),S=k[0],z=k[1],E=(0,r.useState)(""),R=(0,l.A)(E,2),T=R[0],D=R[1],I=(0,r.useState)(!1),L=(0,l.A)(I,2),q=L[0],P=L[1],M=(0,r.useState)(!1),O=(0,l.A)(M,2),V=O[0],B=O[1],U=(0,r.useState)(null),W=(0,l.A)(U,2),H=W[0],G=W[1],K=(0,r.useCallback)(async()=>{try{const t=await n.A.get("".concat(ns,"/api/bot/debug/h24"),{headers:e()});G(t.data)}catch(t){}},[e]),J=(0,r.useCallback)(async()=>{m(!0);try{const t=await n.A.get("".concat(ns,"/api/admin/proxies"),{headers:e()});d(t.data)}catch(t){z({type:"error",text:"Impossible de charger les proxies."})}m(!1)},[e]);(0,r.useEffect)(()=>{J(),K()},[J,K]);const Q=i.filter(e=>e.is_active).length,Z=i.reduce((e,t)=>e+(t.usage_count||0),0);return(0,le.jsxs)("div",{className:"space-y-6",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsxs)("div",{children:[(0,le.jsxs)("h2",{className:"text-white font-black text-xl flex items-center gap-2",children:[(0,le.jsx)(u.A,{size:18,className:"text-blue-400"})," Pool de Proxies"]}),(0,le.jsx)("p",{className:"text-slate-500 text-sm mt-0.5",children:"Proxies r\xe9sidentiels utilis\xe9s par le bot scanner pour contourner DataDome."})]}),(0,le.jsx)("button",{onClick:J,className:"p-2 rounded-lg bg-slate-800 text-slate-400 hover:text-white transition-all",children:(0,le.jsx)(A.A,{size:14,className:x?"animate-spin":""})})]}),(0,le.jsx)("div",{className:"grid grid-cols-3 gap-3",children:[{label:"Total proxies",value:i.length,color:"text-white"},{label:"Actifs",value:Q,color:"text-green-400"},{label:"Usages totaux",value:Z,color:"text-blue-400"}].map((e,t)=>(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-xl p-3",children:[(0,le.jsx)("div",{className:"text-2xl font-black ".concat(e.color),children:e.value}),(0,le.jsx)("div",{className:"text-slate-500 text-xs",children:e.label})]},t))}),S&&(0,le.jsxs)("div",{className:"flex items-center gap-2 px-4 py-2.5 rounded-xl text-sm font-semibold border ".concat("success"===S.type?"bg-green-600/10 border-green-500/20 text-green-400":"bg-red-600/10 border-red-500/20 text-red-400"),children:["success"===S.type?(0,le.jsx)(C.A,{size:14}):(0,le.jsx)(Xe.A,{size:14}),S.text]}),H&&(0,le.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3 rounded-xl border text-sm ".concat(H.pool_sessions>=4?"bg-green-600/10 border-green-500/20 text-green-400":"bg-red-600/10 border-red-500/20 text-red-400"),children:[H.pool_sessions>=4?(0,le.jsx)(C.A,{size:14}):(0,le.jsx)(Xe.A,{size:14}),(0,le.jsx)("span",{className:"font-bold",children:"Bot Scanner :"}),(0,le.jsxs)("span",{children:[H.pool_sessions," sessions actives \xb7 ",H.proxies_loaded," proxies en DB"]}),!H.webshare_key_set&&(0,le.jsx)("span",{className:"ml-auto text-xs font-bold text-red-400",children:"WEBSHARE_API_KEY manquant dans les secrets Production !"})]}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-green-500/15 rounded-2xl p-5 space-y-3",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2",children:[(0,le.jsx)(A.A,{size:14,className:"text-green-400"}),(0,le.jsx)("p",{className:"text-white font-bold text-sm",children:"Rechargement automatique 1-clic"}),(0,le.jsx)("span",{className:"text-[10px] px-2 py-0.5 rounded-full bg-green-600/15 border border-green-500/20 text-green-400 font-bold",children:"RECOMMAND\xc9"})]}),(0,le.jsxs)("p",{className:"text-slate-500 text-xs",children:["Recharge les proxies depuis Webshare en utilisant la cl\xe9 configur\xe9e dans les variables d'environnement du serveur (production).",(0,le.jsx)("br",{}),"Utilise la ",(0,le.jsx)("span",{className:"text-green-400 font-bold",children:"WEBSHARE_DOWNLOAD_URL"})," (plus fiable) ou l'API Key en fallback."]}),(0,le.jsxs)("button",{onClick:async()=>{B(!0),z(null);try{const t=await n.A.post("".concat(ns,"/api/bot/admin/force-reload-proxies"),{},{headers:e()});z({type:"success",text:"Rechargement OK \u2014 ".concat(t.data.proxies_imported," proxies import\xe9s via ").concat(t.data.method)}),J(),K()}catch(a){var t,s;z({type:"error",text:(null===(t=a.response)||void 0===t||null===(s=t.data)||void 0===s?void 0:s.detail)||"Erreur rechargement proxies."})}B(!1)},disabled:V,"data-testid":"force-reload-proxies-btn",className:"flex items-center gap-2 px-5 py-2.5 bg-green-600 text-white text-sm font-bold rounded-xl hover:bg-green-500 disabled:opacity-50 transition-all",children:[(0,le.jsx)(A.A,{size:13,className:V?"animate-spin":""}),V?"Rechargement...":"Recharger les proxies depuis Webshare"]})]}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-blue-500/15 rounded-2xl p-5 space-y-3",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2",children:[(0,le.jsx)(Y.A,{size:14,className:"text-blue-400"}),(0,le.jsx)("p",{className:"text-white font-bold text-sm",children:"Import WebShare automatique"}),(0,le.jsx)("span",{className:"text-[10px] px-2 py-0.5 rounded-full bg-blue-600/15 border border-blue-500/20 text-blue-400 font-bold",children:"RECOMMAND\xc9"})]}),(0,le.jsxs)("p",{className:"text-slate-500 text-xs",children:["Entre ta cl\xe9 API WebShare pour importer automatiquement tous tes proxies r\xe9sidentiels.",(0,le.jsx)("br",{}),(0,le.jsx)("span",{className:"text-slate-600",children:"Trouve ta cl\xe9 sur proxy.webshare.io \u2192 API \u2192 Token"})]}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsxs)("div",{className:"relative flex-1",children:[(0,le.jsx)(rs.A,{size:13,className:"absolute left-3 top-1/2 -translate-y-1/2 text-slate-500"}),(0,le.jsx)("input",{value:T,onChange:e=>D(e.target.value),placeholder:"Cl\xe9 API WebShare (ex: abc123xyz...)","data-testid":"webshare-api-key-input",type:"password",className:"w-full pl-9 pr-4 py-2.5 bg-slate-800/60 border border-white/8 rounded-xl text-white text-xs placeholder-slate-600 focus:outline-none focus:border-blue-500/40 transition-colors"})]}),(0,le.jsxs)("button",{onClick:async()=>
1{if(T.trim()){P(!0),z(null);try{const t=await n.A.post("".concat(ns,"/api/admin/proxies/import-webshare"),{api_key:T.trim()},{headers:e()});z({type:"success",text:"WebShare : ".concat(t.data.added," proxy(s) import\xe9(s), ").concat(t.data.skipped," ignor\xe9(s).")}),D(""),J()}catch(a){var t,s;z({type:"error",text:(null===(t=a.response)||void 0===t||null===(s=t.data)||void 0===s?void 0:s.detail)||"Erreur import WebShare."})}P(!1)}},disabled:!T.trim()||q,"data-testid":"webshare-import-btn",className:"flex items-center gap-2 px-4 py-2.5 bg-blue-600 text-white text-xs font-black rounded-xl hover:bg-blue-500 disabled:opacity-50 transition-all whitespace-nowrap",children:[q?(0,le.jsx)(A.A,{size:13,className:"animate-spin"}):(0,le.jsx)(Y.A,{size:13}),q?"Import...":"Importer"]})]})]}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl p-5 space-y-3",children:[(0,le.jsxs)("p",{className:"text-white font-bold text-sm flex items-center gap-2",children:[(0,le.jsx)(_.A,{size:14,className:"text-teal-400"})," Ajouter manuellement"]}),(0,le.jsx)("p",{className:"text-slate-500 text-xs",children:"Un proxy par ligne. Formats accept\xe9s :"}),(0,le.jsx)("div",{className:"flex flex-wrap gap-2",children:["ip:port","ip:port:user:pass","user:pass@ip:port"].map(e=>(0,le.jsx)("span",{className:"text-[10px] font-mono bg-slate-800 border border-white/8 px-2 py-0.5 rounded text-slate-400",children:e},e))}),(0,le.jsx)("textarea",{value:b,onChange:e=>g(e.target.value),placeholder:"185.220.101.1:8080:user1:pass1\n185.220.101.2:8080:user2:pass2\n...","data-testid":"proxy-bulk-input",rows:6,className:"w-full bg-[#0a0e18] border border-white/10 rounded-xl px-4 py-3 text-slate-300 text-xs font-mono placeholder-slate-700 focus:outline-none focus:border-blue-500/30 resize-none"}),(0,le.jsxs)("button",{onClick:async()=>{if(b.trim()){N(!0),z(null);try{const t=await n.A.post("".concat(ns,"/api/admin/proxies/bulk"),{proxies_raw:b},{headers:e()});z({type:"success",text:"".concat(t.data.added," proxy(s) ajout\xe9(s), ").concat(t.data.skipped," ignor\xe9(s).")}),g(""),J()}catch(t){z({type:"error",text:"Erreur lors de l'ajout."})}N(!1)}},disabled:!b.trim()||v,"data-testid":"proxy-bulk-submit",className:"flex items-center gap-2 px-5 py-2.5 bg-teal-600 text-white text-sm font-bold rounded-xl hover:bg-teal-500 disabled:opacity-50 transition-all",children:[v?(0,le.jsx)(A.A,{size:13,className:"animate-spin"}):(0,le.jsx)(_.A,{size:13}),v?"Ajout en cours...":"Ajouter ces proxies"]})]}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl overflow-hidden",children:[(0,le.jsxs)("div",{className:"p-4 border-b border-white/5 flex items-center justify-between",children:[(0,le.jsxs)("p",{className:"text-white font-bold text-sm",children:["Liste des proxies (",i.length,")"]}),(0,le.jsxs)("span",{className:"text-slate-500 text-xs",children:[Q," actifs sur ",i.length]})]}),x?(0,le.jsx)("div",{className:"flex items-center justify-center py-10 text-slate-500 text-sm",children:"Chargement..."}):0===i.length?(0,le.jsxs)("div",{className:"flex flex-col items-center justify-center py-10 gap-2",children:[(0,le.jsx)(u.A,{size:24,className:"text-slate-700"}),(0,le.jsx)("p",{className:"text-slate-600 text-sm",children:"Aucun proxy. Importe via WebShare ou colle ta liste."})]}):(0,le.jsx)("div",{className:"divide-y divide-white/5 max-h-[480px] overflow-y-auto",children:i.map(t=>(0,le.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3 hover:bg-white/2 transition-all",children:[t.is_active?(0,le.jsx)(ut.A,{size:13,className:"text-green-400 flex-shrink-0"}):(0,le.jsx)(ht.A,{size:13,className:"text-slate-600 flex-shrink-0"}),(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsxs)("span",{className:"text-slate-200 text-xs font-mono",children:[t.host,":",t.port]}),t.username&&(0,le.jsxs)("span",{className:"text-slate-600 text-[10px] ml-2",children:["(",t.username,")"]})]}),(0,le.jsxs)("span",{className:"text-slate-500 text-[10px] flex-shrink-0",children:[t.usage_count||0," usages"]}),(0,le.jsx)("button",{onClick:()=>(async t=>{try{const s=await n.A.put("".concat(ns,"/api/admin/proxies/").concat(t,"/toggle"),{},{headers:e()});d(e=>e.map(e=>e.proxy_id===t?(0,a.A)((0,a.A)({},e),{},{is_active:s.data.is_active}):e))}catch(s){z({type:"error",text:"Erreur toggle."})}})(t.proxy_id),className:"flex-shrink-0 p-1 rounded-lg transition-all ".concat(t.is_active?"text-green-400 hover:text-green-300":"text-slate-600 hover:text-slate-400"),title:t.is_active?"D\xe9sactiver":"Activer",children:t.is_active?(0,le.jsx)(is.A,{size:16}):(0,le.jsx)(w.A,{size:16})}),(0,le.jsx)("button",{onClick:()=>(async t=>{if(window.confirm("Supprimer ce proxy ?"))try{await n.A.delete("".concat(ns,"/api/admin/proxies/").concat(t),{headers:e()}),d(e=>e.filter(e=>e.proxy_id!==t))}catch(s){z({type:"error",text:"Erreur suppression."})}})(t.proxy_id),className:"flex-shrink-0 p-1 rounded-lg text-slate-600 hover:text-red-400 transition-all",title:"Supprimer",children:(0,le.jsx)(F.A,{size:13})})]},t.proxy_id))})]})]})}var os=s(72313),cs=s(79978),xs=s(41680);const ms=window.location.origin;function us(){const e=(0,r.useState)(null),t=(0,l.A)(e,2),s=t[0],a=t[1],i=(0,r.useState)(!1),n=(0,l.A)(i,2),d=n[0],o=n[1],c=async()=>{o(!0);try{const e=localStorage.getItem("vr_token"),t=await fetch("".concat(ms,"/api/admin/extension/download"),{headers:{Authorization:"Bearer ".concat(e)}});if(!t.ok)throw new Error;const s=await t.blob(),a=URL.createObjectURL(s),l=document.createElement("a");l.href=a,l.download="vintyresell-extension-pro-v2.zip",l.click(),URL.revokeObjectURL(a)}catch(e){alert("Erreur t\xe9l\xe9chargement \u2014 contacte le support.")}finally{o(!1)}},x=e=>{let t=e.text,l=e.id,r=e.label;return(0,le.jsxs)("button",{onClick:()=>((e,t)=>{navigator.clipboard.writeText(e),a(t),setTimeout(()=>a(null),2200)})(t,l),className:"flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-semibold border transition-all flex-shrink-0 ".concat(s===l?"bg-green-600/20 border-green-500/30 text-green-400":"bg-slate-800 border-white/10 text-slate-400 hover:text-white"),children:[s===l?(0,le.jsx)(C.A,{size:11}):(0,le.jsx)(os.A,{size:11}),s===l?"Copi\xe9 !":r||"Copier"]})},m=e=>{let t=e.n,s=e.title,a=e.children;return(0,le.jsxs)("div",{className:"mb-6",children:[(0,le.jsxs)("div",{className:"flex items-center gap-3 mb-3",children:[(0,le.jsx)("div",{className:"w-7 h-7 rounded-lg bg-teal-600/20 border border-teal-500/25 flex items-center justify-center text-teal-400 font-black text-sm flex-shrink-0",children:t}),(0,le.jsx)("h3",{className:"text-white font-bold text-base",children:s})]}),a]})},p=e=>{let t=e.label,s=e.value,a=e.id,l=e.mono;return(0,le.jsxs)("div",{className:"mb-3",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,le.jsx)("span",{className:"text-slate-500 text-xs font-semibold uppercase tracking-wide",children:t}),(0,le.jsx)(x,{text:s,id:a})]}),(0,le.jsx)("div",{className:"bg-[#0a1020] border border-white/6 rounded-xl p-3.5 text-slate-300 text-sm leading-relaxed ".concat(l?"font-mono text-xs":""),children:s})]})},h="VINTYRESELL est un outil d'assistance \xe0 la revente Vinted qui vous aide \xe0 g\xe9rer votre boutique plus efficacement.\n\n\ud83d\udd04 REPUBLICATION INTELLIGENTE\nS\xe9lectionnez vos annonces directement depuis votre dressing Vinted. L'extension r\xe9cup\xe8re toutes les donn\xe9es (photos, titre, description, prix, cat\xe9gorie) et vous propose de les republier avec une l\xe9g\xe8re optimisation du prix. L'IA r\xe9\xe9crit le titre et la description pour donner une nouvelle visibilit\xe9 \xe0 vos articles.\n\n\ud83d\udcac MESSAGERIE ASSIST\xc9E PAR IA\nRecevez des suggestions de r\xe9ponses pour vos messages Vinted. L'IA analyse le contexte de chaque conversation et votre annonce pour proposer une r\xe9ponse professionnelle et naturelle. Vous gardez toujours le contr\xf4le final.\n\n\u2764\ufe0f GESTION DES FAVORIS\nSoyez avert
1i quand quelqu'un met votre article en favori et envoyez un message de relance personnalis\xe9 au bon moment.\n\n\ud83d\udcca GESTION DES OFFRES\nD\xe9finissez un prix minimum par article. Les offres correspondant \xe0 vos crit\xe8res sont trait\xe9es automatiquement selon vos pr\xe9f\xe9rences.\n\n\ud83d\udd10 CONFIDENTIALIT\xc9 & S\xc9CURIT\xc9\n\u2022 Aucune donn\xe9e personnelle n'est transmise \xe0 des tiers\n\u2022 Votre session Vinted reste enti\xe8rement sur votre navigateur\n\u2022 Toutes les actions sont initi\xe9es par vous et pour votre compte uniquement\n\u2022 Politique de confidentialit\xe9 : https://vintyresell.com/privacy\n\nCompatible avec les navigateurs bas\xe9s sur Chromium (Chrome, Edge, Brave).",b="Politique de Confidentialit\xe9 \u2014 VINTYRESELL Extension\n\nDerni\xe8re mise \xe0 jour : ".concat((new Date).toLocaleDateString("fr-FR"),"\n\n1. DONN\xc9ES COLLECT\xc9ES\nL'extension VINTYRESELL ne collecte aucune donn\xe9e personnelle. Toutes les informations (identifiants de session, pr\xe9f\xe9rences) sont stock\xe9es localement dans votre navigateur via chrome.storage.local.\n\n2. DONN\xc9ES TRANSMISES\nLes seules donn\xe9es transmises sont envoy\xe9es aux serveurs de VINTYRESELL (vintyresell.com) pour :\n- Authentifier votre compte VINTYRESELL\n- G\xe9n\xe9rer des suggestions de texte via intelligence artificielle\n- V\xe9rifier vos quotas d'utilisation selon votre abonnement\n\n3. ACC\xc8S \xc0 VINTED.FR\nL'extension interagit avec vinted.fr uniquement en votre nom et uniquement lorsque vous activez explicitement une fonctionnalit\xe9. Aucune action n'est effectu\xe9e sans votre consentement.\n\n4. PARTAGE DES DONN\xc9ES\nVos donn\xe9es ne sont jamais vendues ni partag\xe9es avec des tiers.\n\n5. CONTACT\nPour toute question : [email protected]"),g=[{name:"storage",reason:"Stocker localement vos pr\xe9f\xe9rences et votre session de connexion VINTYRESELL entre les pages."},{name:"tabs",reason:"Ouvrir un onglet Vinted.fr quand aucun n'est actif lors du d\xe9marrage d'une session."},{name:"activeTab",reason:"Injecter l'interface VINTYRESELL dans l'onglet Vinted.fr actuellement ouvert."},{name:"alarms",reason:"Planifier des v\xe9rifications p\xe9riodiques des favoris et offres re\xe7ues en arri\xe8re-plan."}];return(0,le.jsxs)("div",{className:"max-w-3xl mx-auto space-y-6 pb-16",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h2",{className:"text-2xl font-black text-white",children:"Extension Chrome V2"}),(0,le.jsx)("p",{className:"text-slate-500 text-sm mt-1",children:"ZIP pr\xeat \xb7 Guide de soumission Chrome Web Store"})]}),(0,le.jsxs)("button",{onClick:c,disabled:d,"data-testid":"download-extension-btn",className:"flex items-center gap-2.5 px-6 py-3 rounded-2xl bg-gradient-to-r from-teal-500 to-cyan-500 text-black font-black text-sm hover:from-teal-400 hover:to-cyan-400 active:scale-95 transition-all shadow-lg shadow-teal-900/30 disabled:opacity-50",children:[(0,le.jsx)(Y.A,{size:16}),d?"T\xe9l\xe9chargement\u2026":"T\xe9l\xe9charger le ZIP"]})]}),(0,le.jsx)("div",{className:"grid grid-cols-3 gap-3",children:[{icon:Ae.A,label:"18 fichiers",sub:"Extension compl\xe8te"},{icon:u.A,label:"4 permissions",sub:"Pas de cookies"},{icon:cs.A,label:"MV3",sub:"Manifest V3"}].map(e=>{let t=e.icon,s=e.label,a=e.sub;return(0,le.jsxs)("div",{className:"flex items-center gap-3 p-3.5 bg-slate-900 border border-white/6 rounded-2xl",children:[(0,le.jsx)(t,{size:16,className:"text-teal-400 flex-shrink-0"}),(0,le.jsxs)("div",{children:[(0,le.jsx)("div",{className:"text-white font-bold text-sm",children:s}),(0,le.jsx)("div",{className:"text-slate-600 text-xs",children:a})]})]},s)})}),(0,le.jsxs)("div",{className:"bg-slate-900/60 border border-white/6 rounded-2xl p-6",children:[(0,le.jsxs)("div",{className:"flex items-center gap-3 mb-6",children:[(0,le.jsx)(cs.A,{size:20,className:"text-teal-400"}),(0,le.jsx)("h2",{className:"text-lg font-black text-white",children:"Guide de soumission Chrome Web Store"}),(0,le.jsxs)("a",{href:"https://chrome.google.com/webstore/devconsole",target:"_blank",rel:"noreferrer",className:"ml-auto flex items-center gap-1.5 px-3 py-1.5 rounded-xl bg-slate-800 border border-white/8 text-slate-400 hover:text-white text-xs font-semibold transition-all",children:["Ouvrir le Dev Console ",(0,le.jsx)(j.A,{size:11})]})]}
1),(0,le.jsxs)(m,{n:"1",title:"Informations de base",children:[(0,le.jsx)(p,{label:"Nom de l'extension",value:"VINTYRESELL \u2014 Outils Pro Vinted",id:"title"}),(0,le.jsx)(p,{label:"Description courte (132 chars max)",value:"Republicez vos articles, r\xe9pondez \xe0 vos messages et g\xe9rez vos offres automatiquement gr\xe2ce \xe0 l'IA directement sur Vinted.fr.",id:"short"})]}),(0,le.jsxs)(m,{n:"2",title:"Description d\xe9taill\xe9e",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,le.jsx)("span",{className:"text-slate-500 text-xs font-semibold uppercase tracking-wide",children:"Description compl\xe8te (coller telle quelle)"}),(0,le.jsx)(x,{text:h,id:"longdesc"})]}),(0,le.jsx)("div",{className:"bg-[#0a1020] border border-white/6 rounded-xl p-3.5 text-slate-300 text-xs leading-relaxed whitespace-pre-wrap max-h-48 overflow-y-auto",children:h})]}),(0,le.jsx)(m,{n:"3",title:"Param\xe8tres \xe0 remplir",children:(0,le.jsx)("div",{className:"space-y-2",children:[{label:"Cat\xe9gorie",value:"Productivit\xe9"},{label:"Langue principale",value:"Fran\xe7ais"},{label:"Site web officiel",value:"https://vintyresell.com"},{label:"Email de support",value:"[email protected]"},{label:"Politique de confidentialit\xe9 URL",value:"https://vintyresell.com/privacy"},{label:"Visibilit\xe9",value:"Public"},{label:"Distribution g\xe9ographique",value:"France uniquement (ou UE)"},{label:"Public cible",value:"Tout public"},{label:"Prix",value:"Gratuit"}].map(e=>{let t=e.label,s=e.value;return(0,le.jsxs)("div",{className:"flex items-center justify-between p-3 bg-slate-800/60 border border-white/5 rounded-xl",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2",children:[(0,le.jsx)("div",{className:"w-4 h-4 rounded border-2 border-teal-500 flex items-center justify-center flex-shrink-0",children:(0,le.jsx)(C.A,{size:9,className:"text-teal-400"})}),(0,le.jsx)("span",{className:"text-slate-400 text-xs font-semibold",children:t})]}),(0,le.jsxs)("div",{className:"flex items-center gap-2",children:[(0,le.jsx)("span",{className:"text-white text-xs font-bold",children:s}),(0,le.jsx)(x,{text:s,id:"cl-".concat(t),label:""})]})]},t)})})}),(0,le.jsxs)(m,{n:"4",title:"Justification des permissions (champ d\xe9di\xe9 dans le Store)",children:[(0,le.jsx)("p",{className:"text-slate-500 text-xs mb-3",children:'Colle ce texte dans le champ "Permissions justification" du formulaire :'}),(0,le.jsx)("div",{className:"space-y-2 mb-3",children:g.map(e=>(0,le.jsxs)("div",{className:"flex gap-3 p-3 bg-slate-800/60 border border-white/5 rounded-xl",children:[(0,le.jsx)("code",{className:"text-teal-400 text-xs font-mono font-bold flex-shrink-0 w-20",children:e.name}),(0,le.jsx)("span",{className:"text-slate-400 text-xs",children:e.reason})]},e.name))}),(0,le.jsx)(x,{text:g.map(e=>"".concat(e.name,": ").concat(e.reason)).join("\n"),id:"perms",label:"Copier tout"})]}),(0,le.jsxs)(m,{n:"5",title:"Politique de confidentialit\xe9",children:[(0,le.jsxs)("p",{className:"text-slate-500 text-xs mb-2",children:["Publie cette page sur ",(0,le.jsx)("span",{className:"text-teal-400 font-mono",children:"vintyresell.com/privacy"})," (page statique simple)."]}),(0,le.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,le.jsx)("span",{className:"text-slate-500 text-xs font-semibold uppercase tracking-wide",children:"Contenu \xe0 publier"}),(0,le.jsx)(x,{text:b,id:"privacy"})]}),(0,le.jsx)("div",{className:"bg-[#0a1020] border border-white/6 rounded-xl p-3.5 text-slate-300 text-xs leading-relaxed whitespace-pre-wrap max-h-36 overflow-y-auto",children:b})]}),(0,le.jsx)(m,{n:"6",title:"Captures d'\xe9cran requises (min. 1, recommand\xe9 3)",children:(0,le.jsx)("div",{className:"space-y-2",children:[{n:1,label:"Dashboard modal \u2014 les 4 cartes de modules",sub:"Ouvre Vinted.fr avec l'extension \u2192 clique sur le cercle vert"},{n:2,label:"Module Republication \u2014 s\xe9lection des annonces",sub:'Clique sur "Republier" \u2192 affiche tes annonces avec checkboxes'}
1,{n:3,label:"Popup de connexion \u2014 \xe9cran de login VINTYRESELL",sub:"Clique sur l'ic\xf4ne de l'extension dans la barre Chrome"}].map(e=>(0,le.jsxs)("div",{className:"flex gap-3 p-3 bg-slate-800/60 border border-white/5 rounded-xl",children:[(0,le.jsx)("div",{className:"w-6 h-6 rounded-lg bg-slate-700 flex items-center justify-center text-xs font-black text-slate-400 flex-shrink-0",children:e.n}),(0,le.jsxs)("div",{children:[(0,le.jsx)("div",{className:"text-white text-xs font-bold",children:e.label}),(0,le.jsx)("div",{className:"text-slate-500 text-xs mt-0.5",children:e.sub})]})]},e.n))})}),(0,le.jsx)(m,{n:"7",title:"Conseils pour maximiser les chances d'approbation",children:(0,le.jsx)("div",{className:"space-y-2",children:[{emoji:"\u2705",text:"Nouveau compte d\xe9veloppeur (1-time fee $5) \u2014 pas li\xe9 au compte du refus pr\xe9c\xe9dent"},{emoji:"\u2705",text:"Publier la page /privacy AVANT de soumettre l'extension"},{emoji:"\u2705",text:'NE PAS mentionner "automatique" ou "bot" dans la description \u2014 utiliser "assist\xe9" et "suggestion"'},{emoji:"\u2705",text:"Attendre 3-5 jours ouvrables pour la review \u2014 ne pas spam-soumettre"},{emoji:"\u2705",text:"Si refus \u2192 lire exactement la raison, r\xe9pondre \xe0 la review team en justifiant chaque point"},{emoji:"\u26a0\ufe0f",text:"Vinted.fr est dans les host_permissions \u2014 le reviewer va tester l'extension sur vinted.fr : assure-toi qu'elle s'affiche correctement"}].map(e=>{let t=e.emoji,s=e.text;return(0,le.jsxs)("div",{className:"flex gap-2.5 p-3 bg-slate-800/50 border border-white/5 rounded-xl",children:[(0,le.jsx)("span",{className:"flex-shrink-0",children:t}),(0,le.jsx)("span",{className:"text-slate-300 text-xs leading-relaxed",children:s})]},s)})})}),(0,le.jsxs)("div",{className:"flex items-center gap-4 mt-2 p-4 bg-teal-600/8 border border-teal-500/15 rounded-2xl",children:[(0,le.jsx)(xs.A,{size:18,className:"text-teal-400 flex-shrink-0"}),(0,le.jsxs)("div",{className:"flex-1",children:[(0,le.jsx)("div",{className:"text-white font-bold text-sm",children:"Pr\xeat \xe0 soumettre"}),(0,le.jsx)("div",{className:"text-slate-500 text-xs mt-0.5",children:"T\xe9l\xe9charge le ZIP, suis les 7 \xe9tapes, et soumets sur le Dev Console Chrome."})]}),(0,le.jsxs)("button",{onClick:c,disabled:d,className:"flex items-center gap-2 px-4 py-2.5 rounded-xl bg-gradient-to-r from-teal-500 to-cyan-500 text-black font-black text-xs hover:opacity-90 active:scale-95 transition-all disabled:opacity-50",children:[(0,le.jsx)(Y.A,{size:13})," ",d?"\u2026":"T\xe9l\xe9charger"]})]})]})]})}var ps=s(29350),hs=s(87147),bs=s(61349);const gs=window.location.origin,fs={once:"Une seule fois",forever:"Illimit\xe9",repeating:"R\xe9current"};function js(e){return e.active?(0,le.jsxs)("span",{className:"flex items-center gap-1 px-2 py-0.5 rounded-full text-[10px] font-black bg-emerald-500/15 border border-emerald-500/25 text-emerald-400",children:[(0,le.jsx)(C.A,{size:9})," Actif"]}):(0,le.jsxs)("span",{className:"flex items-center gap-1 px-2 py-0.5 rounded-full text-[10px] font-black bg-slate-700/40 border border-white/8 text-slate-500",children:[(0,le.jsx)(q.A,{size:9})," Inactif"]})}function vs(e){let t=e.text;const s=(0,r.useState)(!1),a=(0,l.A)(s,2),i=a[0],n=a[1];return(0,le.jsx)("button",{onClick:function(){navigator.clipboard.writeText(t).catch(()=>{}),n(!0),setTimeout(()=>n(!1),1500)},className:"p-1 text-slate-500 hover:text-teal-400 transition-colors",children:i?(0,le.jsx)(Oe.A,{size:12,className:"text-teal-400"}):(0,le.jsx)(os.A,{size:12})})}function Ns(e){let t=e.headers;const s=(0,r.useState)([]),i=(0,l.A)(s,2),d=i[0],o=i[1],c=(0,r.useState)(!1),x=(0,l.A)(c,2),m=x[0],u=x[1],p=(0,r.useState)(""),h=(0,l.A)(p,2),b=h[0],g=h[1],f=(0,r.useState)(""),j=(0,l.A)(f,2),v=j[0],N=j[1],S=(0,r.useState)(!1),z=(0,l.A)(S,2),E=z[0],R=z[1],T=(0,r.useState)(null),D=(0,l.A)(T,2),I=D[0],L=D[1],q=(0,r.useState)(null),P=(0,l.A)(q,2),M=P[0],O=P[1],V=(0,r.useState)({code:"",discount_type:"percent",discount_value:"",name:"",duration:"once",max_redemptions:""}),B=(0,l.A)(V,2),U=B[0],W=B[1],H=(0,r.useState)(!1),Y=(0,l.A)(H,2),G=Y[0],K=Y[1],J=(0,r.useState)(""),Q=(0,l.A)(J,2),Z=Q[0],X=Q[1],$=(0,r.useCallback)(async()=>{u(!0);try{const e=await n.A.get("".concat(gs,"/api/admin/promo-codes"),{headers:t()});o(e.data||[])}catch(a){var e,s;g((null===(e=a.response)||void 0===e||null===(s=e.data)||void 0===s?void 0:s.detail)||"Erreur chargement codes promo")}finally{u(!1)}},[]);function ee(e){arguments.length>1&&void 0!==arguments[1]&&arguments[1]?(g(e),setTimeout(()=>g(""),4e3)):(N(e),setTimeout(()=>N(""),3e3))}(0,r.useEffect)(()=>{$()},[$]);const te=d.filter(e=>e.active).length,se=d.filter(e=>!e.active).length,ae=d.reduce((e,t)=>
1e+(t.times_redeemed||0),0);return(0,le.jsxs)("div",{className:"space-y-6","data-testid":"admin-promo-panel",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsxs)("div",{children:[(0,le.jsxs)("h2",{className:"text-white font-bold text-base flex items-center gap-2",children:[(0,le.jsx)(ps.A,{size:16,className:"text-teal-400"})," Codes Promo Stripe"]}),(0,le.jsx)("p",{className:"text-slate-500 text-xs mt-0.5",children:"Cr\xe9er et g\xe9rer les codes de r\xe9duction sur l'espace Stripe."})]}),(0,le.jsxs)("div",{className:"flex items-center gap-2",children:[(0,le.jsx)("button",{onClick:$,className:"p-2 text-slate-500 hover:text-white transition-colors",title:"Actualiser",children:(0,le.jsx)(A.A,{size:14,className:m?"animate-spin":""})}),(0,le.jsxs)("button",{"data-testid":"create-promo-btn",onClick:()=>R(e=>!e),className:"flex items-center gap-2 px-4 py-2 rounded-xl bg-teal-600/20 border border-teal-500/30 text-teal-400 text-sm font-bold hover:bg-teal-600/30 transition-all",children:[(0,le.jsx)(_.A,{size:14})," Cr\xe9er un code"]})]})]}),(0,le.jsx)("div",{className:"grid grid-cols-3 gap-3",children:[{label:"Codes actifs",value:te,color:"text-emerald-400"},{label:"Codes inactifs",value:se,color:"text-slate-400"},{label:"Utilisations",value:ae,color:"text-teal-400"}].map(e=>(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl p-4 text-center",children:[(0,le.jsx)("p",{className:"text-2xl font-black ".concat(e.color),children:e.value}),(0,le.jsx)("p",{className:"text-slate-500 text-xs mt-0.5",children:e.label})]},e.label))}),b&&(0,le.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-red-500/8 border border-red-500/20 rounded-xl text-red-400 text-sm",children:[(0,le.jsx)(k.A,{size:14})," ",b]}),v&&(0,le.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-emerald-500/8 border border-emerald-500/20 rounded-xl text-emerald-400 text-sm",children:[(0,le.jsx)(C.A,{size:14})," ",v]}),E&&(0,le.jsxs)("form",{onSubmit:async function(e){if(e.preventDefault(),X(""),!U.code.trim())return X("Code requis");if(!U.discount_value||parseFloat(U.discount_value)<=0)return X("Valeur de remise invalide");K(!0);try{const e={code:U.code.trim().toUpperCase(),discount_type:U.discount_type,discount_value:parseFloat(U.discount_value),name:U.name.trim()||void 0,duration:U.duration,max_redemptions:U.max_redemptions?parseInt(U.max_redemptions):void 0};await n.A.post("".concat(gs,"/api/admin/promo-codes"),e,{headers:t()}),ee('Code "'.concat(e.code,'" cr\xe9\xe9 avec succ\xe8s')),R(!1),W({code:"",discount_type:"percent",discount_value:"",name:"",duration:"once",max_redemptions:""}),await $()}catch(e){var s,a;X((null===(s=e.response)||void 0===s||null===(a=s.data)||void 0===a?void 0:a.detail)||"Erreur cr\xe9ation code promo")}finally{K(!1)}},className:"bg-slate-900 border border-teal-500/20 rounded-2xl p-5 space-y-4","data-testid":"promo-create-form",children:[(0,le.jsxs)("p",{className:"text-white font-bold text-sm flex items-center gap-2",children:[(0,le.jsx)(_.A,{size:13,className:"text-teal-400"})," Nouveau code promo"]}),(0,le.jsxs)("div",{className:"grid md:grid-cols-2 gap-4",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold uppercase tracking-wider mb-1.5 block",children:"Code *"}),(0,le.jsx)("input",{"data-testid":"promo-code-field",value:U.code,onChange:e=>W(t=>(0,a.A)((0,a.A)({},t),{},{code:e.target.value.toUpperCase()})),placeholder:"SUMMER20",className:"w-full bg-slate-800/60 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm placeholder-slate-600 font-mono uppercase tracking-widest focus:outline-none focus:border-teal-500/40 transition-colors"})]}),(0,le.jsxs)("div",{children:[(0,le.jsxs)("label",{className:"text-slate-400 text-xs font-semibold uppercase tracking-wider mb-1.5 block",children:["Nom affich\xe9 ",(0,le.jsx)("span",{className:"text-slate-600 font-normal lowercase",children:"(optionnel)"})]}),(0,le.jsx)("input",{value:U.name,onChange:e=>W(t=>(0,a.A)((0,a.A)({},t),{},{name:e.target.value})),placeholder:"ex: Promo \xc9t\xe9 2025",className:"w-full bg-slate-800/60 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm placeholder-slate-600 focus:outline-none focus:border-teal-500/40 transition-colors"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold uppercase tracking-wider mb-1.5 block",children:"Type de remise"}),(0,le.jsx)("div",{className:"flex gap-2",children:[{v:"percent",icon:hs.A,label:"Pourcentage (%)"},{v:"amount",icon:bs.A,label:"Montant fixe (\u20ac)"}].map(e=>(0,le.jsxs)("button",{type:"button",onClick:()=>W(t=>(0,a.A)((0,a.A)({},t),{},{discount_type:e.v})),className:"flex-1 flex items-center justify-center gap-1.5 py-2 rounded-xl border text-xs font-bold transition-all ".concat(U.discount_type===e.v?"bg-teal-500/15 border-teal-500/30 text-teal-400":"bg-slate-800/40 border-white/8 text-slate-500 hover:text-white"),children:[(0,le.jsx)(e.icon,{size:12})," ",U.discount_type===e.v?e.label:"percent"===e.v?"%":"\u20ac"]},e.v))})]}),(0,le.jsxs)("div",{children:[(0,le.jsxs)("label",{className:"text-slate-400 text-xs font-semibold uppercase tracking-wider mb-1.5 block",children:["Valeur * ","percent"===U.discount_type?"(%)":"(\u20ac)"]}),(0,le.jsxs)("div",{className:"relative",children:["percent"===U.discount_type?(0,le.jsx)(hs.A,{size:13,className:"absolute left-3 top-1/2 -translate-y-1/2 text-slate-500"}):(0,le.jsx)(bs.A,{size:13,className:"absolute left-3 top-1/2 -translate-y-1/2 text-slate-500"}),(0,le.jsx)("input",{"data-testid":"promo-value-field",type:"number",min:"0.01",step:"0.01",value:U.discount_value,onChange:e=>W(t=>(0,a.A)((0,a.A)({},t),{},{discount_value:e.target.value})),placeholder:"percent"===U.discount_type?"20":"10.00",className:"w-full bg-slate-800/60 border border-white/8 rounded-xl pl-8 pr-3 py-2.5 text-white text-sm placeholder-slate-600 focus:outline-none focus:border-teal-500/40 transition-colors"})]})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold uppercase tracking-wider mb-1.5 block",children:"Dur\xe9e"}),(0,le.jsxs)("select",{value:U.duration,onChange:e=>W(t=>(0,a.A)((0,a.A)({},t),{},{duration:e.target.value})),className:"w-full bg-slate-800/60 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm focus:outline-none focus:border-teal-500/40 transition-colors",children:[(0,le.jsx)("option",{value:"once",children:"Une seule fois"}),(0,le.jsx)("option",{value:"forever",children:"Illimit\xe9"})]})]}),(0,le.jsxs)("div",{children:[(0,le.jsxs)("label",{className:"text-slate-400 text-xs font-semibold uppercase tracking-wider mb-1.5 block",children:["Max utilisations ",(0,le.jsx)("span",{className:"text-slate-600 font-normal lowercase",children:"(vide = illimit\xe9)"})]}),(0,le.jsx)("input",{type:"number",min:"1",value:U.max_redemptions,onChange:e=>W(t=>(0,a.A)((0,a.A)({},t),{},{max_redemptions:e.target.value})),placeholder:"ex: 50",className:"w-full bg-slate-800/60 border border-white/8 rounded-xl px-3 py-2.5 text-white text-sm placeholder-slate-600 focus:outline-none focus:border-teal-500/40 transition-colors"})]})]}),Z&&(0,le.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-red-500/8 border border-red-500/20 rounded-xl text-red-400 text-xs",children:[(0,le.jsx)(k.A,{size:12})," ",Z]}),U.code&&U.discount_value&&(0,le.jsxs)("div",{className:"flex items-center gap-3 p-3 bg-slate-800/40 border border-white/5 rounded-xl",children:[(0,le.jsx)("div",{className:"w-8 h-8 rounded-lg bg-teal-500/15 border border-teal-500/25 flex items-center justify-center flex-shrink-0",children:(0,le.jsx)(ps.A,{size:14,className:"text-teal-400"})}),(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-white font-black text-sm font-mono",children:U.co
1de||"PROMO"}),(0,le.jsxs)("p",{className:"text-slate-400 text-xs",children:[U.discount_value,"percent"===U.discount_type?"%":"\u20ac"," de remise \xb7 ",fs[U.duration],U.max_redemptions&&" \xb7 Max ".concat(U.max_redemptions," utilisations")]})]})]}),(0,le.jsxs)("div",{className:"flex gap-3",children:[(0,le.jsx)("button",{"data-testid":"promo-create-submit",type:"submit",disabled:G,className:"flex-1 flex items-center justify-center gap-2 py-3 rounded-xl bg-teal-600/20 border border-teal-500/30 text-teal-400 font-black text-sm hover:bg-teal-600/30 disabled:opacity-50 transition-all",children:G?(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)("span",{className:"w-3.5 h-3.5 border-2 border-teal-400/30 border-t-teal-400 rounded-full animate-spin"})," Cr\xe9ation\u2026"]}):(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)(y.A,{size:13})," Cr\xe9er le code"]})}),(0,le.jsx)("button",{type:"button",onClick:()=>{R(!1),X("")},className:"px-4 py-3 rounded-xl bg-slate-800/40 border border-white/8 text-slate-400 font-bold text-sm hover:text-white transition-all",children:"Annuler"})]})]}),(0,le.jsx)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl overflow-hidden",children:m?(0,le.jsxs)("div",{className:"flex items-center justify-center py-12 text-slate-500 text-sm gap-2",children:[(0,le.jsx)(A.A,{size:14,className:"animate-spin"})," Chargement\u2026"]}):0===d.length?(0,le.jsxs)("div",{className:"text-center py-12",children:[(0,le.jsx)(ps.A,{size:32,className:"text-slate-700 mx-auto mb-3"}),(0,le.jsx)("p",{className:"text-white font-bold mb-1",children:"Aucun code promo"}),(0,le.jsx)("p",{className:"text-slate-500 text-sm",children:"Cr\xe9e ton premier code promo ci-dessus."})]}):(0,le.jsx)("div",{className:"overflow-x-auto",children:(0,le.jsxs)("table",{className:"w-full",children:[(0,le.jsx)("thead",{children:(0,le.jsxs)("tr",{className:"border-b border-white/5",children:[(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3",children:"Code"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3",children:"Remise"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3 hidden md:table-cell",children:"Dur\xe9e"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3",children:"Utilisations"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3 hidden sm:table-cell",children:"Cr\xe9\xe9 le"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3",children:"Statut"}),(0,le.jsx)("th",{className:"px-4 py-3"})]})}),(0,le.jsx)("tbody",{className:"divide-y divide-white/5",children:d.map(e=>{var s;return(0,le.jsxs)("tr",{className:"hover:bg-white/2 transition-colors","data-testid":"promo-row",children:[(0,le.jsxs)("td",{className:"px-4 py-3",children:[(0,le.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,le.jsx)("span",{className:"text-white font-black text-sm font-mono",children:e.code}),(0,le.jsx)(vs,{text:e.code})]}),e.name&&e.name!==e.code&&(0,le.jsx)("p",{className:"text-slate-500 text-[10px] mt-0.5",children:e.name})]}),(0,le.jsx)("td",{className:"px-4 py-3",children:(0,le.jsx)("span",{className:"text-sm font-black ".concat("percent"===e.discount_type?"text-amber-400":"text-teal-400"),children:"percent"===e.discount_type?"-".concat(e.discount_value,"%"):"-".concat(e.discount_value,"\u20ac")})}),(0,le.jsx)("td",{className:"px-4 py-3 text-slate-400 text-xs hidden md:table-cell",children:fs[e.duration]||e.duration}),(0,le.jsxs)("td",{className:"px-4 py-3",children:[(0,le.jsx)("span",{className:"text-white text-sm font-bold",children:null!==(s=e.times_redeemed)&&void 0!==s?s:0}),e.max_redemptions&&(0,le.jsxs)("span",{className:"text-slate-500 text-xs",children:[" / ",e.max_redemptions]})]}),(0,le.jsx)("td",{className:"px-4 py-3 text-slate-500 text-xs hidden sm:table-cell",children:e.created_at||"\u2014"}),(0,le.jsx)("td",{className:"px-4 py-3",children:(0,le.jsx)(js,{active:e.active})}),(0,le.jsx)("td",{className:"px-4 py-3",children:(0,le.jsxs)("div",{className:"flex items-center gap-1",children:[(0,le.jsx)("button",{"data-testid":"toggle-promo-".concat(e.id),onClick:()=>async function(e){L(e);try{const s=await n.A.patch("".concat(gs,"/api/admin/promo-codes/").concat(e,"/toggle"),{},{headers:t()});o(t=>t.map(t=>
1t.id===e?(0,a.A)((0,a.A)({},t),{},{active:s.data.active}):t)),ee(s.data.active?"Code activ\xe9":"Code d\xe9sactiv\xe9")}catch(r){var s,l;ee((null===(s=r.response)||void 0===s||null===(l=s.data)||void 0===l?void 0:l.detail)||"Erreur",!0)}finally{L(null)}}(e.id),disabled:I===e.id,title:e.active?"D\xe9sactiver":"Activer",className:"p-1.5 rounded-lg transition-colors ".concat(I===e.id?"opacity-50":e.active?"text-emerald-400 hover:bg-emerald-500/10":"text-slate-500 hover:text-emerald-400 hover:bg-emerald-500/10"),children:e.active?(0,le.jsx)(is.A,{size:15}):(0,le.jsx)(w.A,{size:15})}),(0,le.jsx)("button",{"data-testid":"delete-promo-".concat(e.id),onClick:()=>async function(e,s){if(window.confirm('D\xe9sactiver d\xe9finitivement le code "'.concat(s,'" ?'))){O(e);try{await n.A.delete("".concat(gs,"/api/admin/promo-codes/").concat(e),{headers:t()}),ee('Code "'.concat(s,'" d\xe9sactiv\xe9')),await $()}catch(r){var a,l;ee((null===(a=r.response)||void 0===a||null===(l=a.data)||void 0===l?void 0:l.detail)||"Erreur",!0)}finally{O(null)}}}(e.id,e.code),disabled:M===e.id,title:"D\xe9sactiver d\xe9finitivement",className:"p-1.5 rounded-lg text-slate-600 hover:text-red-400 hover:bg-red-500/8 transition-colors disabled:opacity-50",children:(0,le.jsx)(F.A,{size:13})})]})})]},e.id)})})]})})}),(0,le.jsxs)("p",{className:"text-slate-600 text-xs text-center",children:["Les codes sont synchronis\xe9s en temps r\xe9el avec Stripe. Le code ",(0,le.jsx)("span",{className:"font-mono font-bold text-slate-500",children:"VINTY20"})," (-20%) est d\xe9j\xe0 actif."]})]})}const ys=window.location.origin,ws={tools:"VINTYRESELL Bot (9,99\u20ac/mois \u2014 600 cr\xe9dits)",methode:"VINTYRESELL Formation (49,99\u20ac/mois \u2014 2000 cr\xe9dits)",bot_starter:"Bot Starter (legacy)",audit_hugo:"Audit Hugo (19,99\u20ac)",credits_s:"Recharge Starter \u2014 4,90\u20ac (600 cr)",credits_m:"Recharge Pro \u2014 7,90\u20ac (2 000 cr)",credits_l:"Recharge Elite \u2014 10,90\u20ac (6 000 cr)"};function As(e){var t,s,a,i,d,o;let c=e.headers;const x=(0,r.useState)(null),m=(0,l.A)(x,2),u=m[0],p=m[1],h=(0,r.useState)([]),b=(0,l.A)(h,2),g=b[0],f=b[1],j=(0,r.useState)(!1),v=(0,l.A)(j,2),N=v[0],y=v[1],w=(0,r.useState)(null),A=(0,l.A)(w,2),_=A[0],k=A[1],S=(0,r.useState)(null),C=(0,l.A)(S,2),z=C[0],E=C[1],R=(0,r.useState)(null),T=(0,l.A)(R,2),F=T[0],D=T[1],I=(0,r.useState)(""),L=(0,l.A)(I,2),q=L[0],P=L[1],M=(0,r.useState)("methode"),O=(0,l.A)(M,2),V=O[0],B=O[1],U=(0,r.useState)(!0),W=(0,l.A)(U,2),H=W[0],Y=W[1],G=(0,r.useState)(""),K=(0,l.A)(G,2),J=K[0],Q=K[1],Z=(0,r.useState)("methode"),X=(0,l.A)(Z,2),$=X[0],ee=X[1],te=(0,r.useState)(""),se=(0,l.A)(te,2),ae=se[0],re=se[1],ie=(0,r.useState)(150),ne=(0,l.A)(ie,2),de=ne[0],oe=ne[1],ce=(0,r.useCallback)(async()=>{try{const e=(await n.A.get("".concat(ys,"/api/repair/webhook-health"),{headers:c()})).data;p(e)}catch(e){p(null)}},[c]),xe=(0,r.useCallback)(async()=>{try{const e=(await n.A.get("".concat(ys,"/api/repair/recent-webhooks?limit=15"),{headers:c()})).data;f(e.events||[])}catch(e){}},[c]),me=(0,r.useState)(null),ue=(0,l.A)(me,2),pe=ue[0],he=ue[1],be=(0,r.useState)(!1),ge=(0,l.A)(be,2),fe=ge[0],je=ge[1],ve=(0,r.useState)(!1),Ne=(0,l.A)(ve,2),ye=Ne[0],we=Ne[1],Ae=(0,r.useState)(null),_e=(0,l.A)(Ae,2),ke=_e[0],Se=_e[1];(0,r.useEffect)(()=>{ce(),xe()},[ce,xe]);const Ce=async e=>{y(!0),k(null),E(null);try{k(await e())}catch(a){var t,s;E((null===a||void 0===a||null===(t=a.response)||void 0===t||null===(s=t.data)||void 0===s?void 0:s.detail)||a.message||"Erreur inconnue")}finally{y(!1)}},ze=e=>(0,le.jsx)("div",{style:{background:"#060d1e",border:"1px solid rgba(255,255,255,.07)",borderRadius:14,padding:"20px 22px",marginBottom:16},children:e}),Ee=e=>(0,le.jsx)("p",{style:{color:"#64748b",fontSize:11,fontWeight:700,textTransform:"uppercase",letterSpacing:".08em",marginBottom:6},children:e}),Re=(e,t,s)=>(0,le.jsx)("input",{value:e,onChange:e=>t(e.target.value),placeholder:s,style:{width:"100%",background:"#0a1426",border:"1px solid rgba(255,255,255,.09)",borderRadius:8,padding:"9px 12px",color:"#f8fafc",fontSize:13,outline:"none",marginBottom:10}}),Te=(e,t,s)=>
1(0,le.jsx)("select",{value:e,onChange:e=>t(e.target.value),style:{width:"100%",background:"#0a1426",border:"1px solid rgba(255,255,255,.09)",borderRadius:8,padding:"9px 12px",color:"#f8fafc",fontSize:13,outline:"none",marginBottom:10,cursor:"pointer"},children:s.map(e=>{let t=(0,l.A)(e,2),s=t[0],a=t[1];return(0,le.jsx)("option",{value:s,children:a},s)})}),Fe=function(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"#2563eb";return(0,le.jsx)("button",{onClick:t,disabled:N,"data-testid":"repair-btn-".concat(e.toLowerCase().replace(/\s+/g,"-")),style:{background:s,color:"#fff",border:"none",borderRadius:8,padding:"9px 18px",fontSize:13,fontWeight:700,cursor:N?"not-allowed":"pointer",opacity:N?.6:1,transition:"opacity .15s"},children:N?"En cours...":e})};return(0,le.jsxs)("div",{style:{fontFamily:"Inter, sans-serif",color:"#f8fafc"},children:[(0,le.jsxs)("div",{style:{marginBottom:20},children:[(0,le.jsx)("h2",{style:{fontSize:18,fontWeight:800,margin:0,letterSpacing:"-.02em"},children:"R\xe9paration Post-Paiement"}),(0,le.jsx)("p",{style:{color:"#64748b",fontSize:13,marginTop:4},children:"Accorde manuellement un acc\xe8s, renvoie un email ou ajoute des cr\xe9dits quand un webhook a rat\xe9."})]}),ze((0,le.jsxs)(le.Fragment,{children:[(0,le.jsxs)("div",{style:{marginBottom:12},children:[(0,le.jsx)("p",{style:{fontSize:14,fontWeight:700,margin:"0 0 4px"},children:"Red\xe9marrer le serveur backend"}),(0,le.jsx)("p",{style:{color:"#64748b",fontSize:12,margin:0},children:"Relance le processus Python (Pterodactyl/Nookure red\xe9marre automatiquement). N\xe9cessaire apr\xe8s un d\xe9ploiement de code, ou pour forcer une resynchronisation imm\xe9diate du cache Stripe (MRR/CA) au d\xe9marrage."})]}),(0,le.jsx)("button",{onClick:async()=>{if(window.confirm("Red\xe9marrer le serveur backend ?\n\nLe site sera indisponible quelques secondes le temps que le processus red\xe9marre.\nUtile apr\xe8s un d\xe9ploiement, ou pour relancer la synchronisation Stripe au d\xe9marrage.")){we(!0),Se(null);try{const e=(await n.A.post("".concat(ys,"/api/admin/system/reload"),{},{headers:c()})).data;Se({ok:!0,text:e.message||"Red\xe9marrage lanc\xe9."})}catch(s){var e,t;Se({ok:!1,text:(null===s||void 0===s||null===(e=s.response)||void 0===e||null===(t=e.data)||void 0===t?void 0:t.detail)||s.message||"Erreur"})}finally{we(!1)}}},disabled:ye,style:{background:"#dc2626",color:"#fff",border:"none",borderRadius:8,padding:"9px 18px",fontSize:13,fontWeight:700,cursor:ye?"not-allowed":"pointer",opacity:ye?.6:1},children:ye?"Red\xe9marrage...":"Red\xe9marrer le serveur"}),ke&&(0,le.jsx)("div",{style:{marginTop:12,background:ke.ok?"rgba(34,197,94,.08)":"rgba(239,68,68,.08)",border:"1px solid ".concat(ke.ok?"rgba(34,197,94,.2)":"rgba(239,68,68,.2)"),borderRadius:8,padding:"10px 14px"},children:(0,le.jsxs)("p",{style:{color:ke.ok?"#86efac":"#fca5a5",fontSize:12,fontWeight:700,margin:0},children:[ke.ok?"\u2713 ":"\u2717 ",ke.text]})})]})),ze((0,le.jsxs)(le.Fragment,{children:[(0,le.jsxs)("div",{style:{marginBottom:12},children:[(0,le.jsx)("p",{style:{fontSize:14,fontWeight:700,margin:"0 0 4px"},children:"Synchroniser les cr\xe9dits"}),(0,le.jsxs)("p",{style:{color:"#64748b",fontSize:12,margin:0},children:["Remet automatiquement ",(0,le.jsx)("strong",{children:"tous les membres"})," au bon niveau de cr\xe9dits selon leur plan actif.",(0,le.jsx)("br",{}),"lp_tools \u2192 80 \u2022 lp_ecosystem \u2192 150 \u2022 lp_premium \u2192 200"]})]}),(0,le.jsx)("button",{onClick:async()=>{if(window.confirm("Remettre TOUS les membres au bon niveau de cr\xe9dits selon leur plan ?\n\nCette action est r\xe9versible mais va modifier les cr\xe9dits actuels.")){je(!0),he(null);try{const e=(await n.A.post("".concat(ys,"/api/admin/sync-credits"),{},{headers:c()})).data;he(e)}catch(s){var e,t;E((null===s||void 0===s||null===(e=s.response)||void 0===e||null===(t=e.data)||void 0===t?void 0:t.detail)||s.message||"Erreur")}finally{je(!1)}}},disabled:fe,style:{background:"#7c3aed",color:"#fff",border:"none",borderRadius:8,padding:"9px 18px",fontSize:13,fontWeight:700,cursor:fe?"not-allowed":"pointer",opacity:fe?.6:1},children:fe?"Synchronisation...":"Synchroniser les cr\xe9dits"}),pe&&(0,le.jsxs)("div",{style:{marginTop:12,background:"#0f2a1a",border:"1px solid #22c55e33",borderRadius:8,padding:"12px 14px"},children:[(0,le.jsxs)("p",{style:{color:"#22c55e",fontSize:13,fontWeight:700,margin:"0 0 6px"},children:["\u2713 Synchronisation termin\xe9e \u2014 ",pe.updated," mis \xe0 jour / ",pe.skipped," d\xe9j\xe0 corrects / ",pe.total," total"]}),pe.by_plan&&(0,le.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:Object.entries(pe.by_plan).map(e=>{let t=(0,l.A)(e,2),s=t[0],a=t[1];return(0,le.jsxs)("span",{style:{background:"#0a1426",border:"1px solid rgba(255,255,255,.1)",borderRadius:6,padding:"2px 8px",fontSize:11,color:"#94a3b8"},children:[s,": ",a]},s)})}),(null===(t=pe.details)||void 0===t?void 0:t.length)>0&&(0,le.jsx)("div",{style:{marginTop:8,maxHeight:150,overflowY:"auto"},children:pe.details.map((e,t)=>(0,le.jsxs)("p",{style:{color:"#64748b",fontSize:11,margin:"1px 0"},children:[e.email," [",e.plan,"] : ",e.old_monthly," \u2192 ",e.new_monthly," cr\xe9dits"]},t))})]})]})),ze((0,le.jsxs)(le.Fragment,{children:[(0,le.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:12},children:[(0,le.jsx)("p",{style:{fontWeight:700,margin:0,fontSize:14},children:"Diagnostic configuration"}),(0,le.jsx)("button",{onClick:()=>{ce(),xe()},style:{background:"none",border:"1px solid rgba(255,255,255,.1)",borderRadius:6,padding:"4px 10px",color:"#94a3b8",fontSize:11,cursor:"pointer"},children:"Actualiser"})]}),u?(0,le.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:8},children:Object.entries(u.checks).map(e=>{let t=(0,l.A)(e,2),s=t[0],a=t[1];return(0,le.jsxs)("div",{style:{display:"flex",alignItems:"center",background:a.set?"rgba(34,197,94,.08)":"rgba(239,68,68,.08)",border:"1px solid ".concat(a.set?"rgba(34,197,94,.2)":"rgba(239,68,68,.2)"),borderRadius:8,padding:"6px 12px",fontSize:12},children:[(r=a.set,(0,le.jsx)("span",{style:{display:"inline-block",width:8,height:8,borderRadius:"50%",background:r?"#22c55e":"#ef4444",marginRight:6,flexShrink:0}})),(0,le.jsx)("span",{style:{color:a.set?"#86efac":"#fca5a5",fontWeight:600},children:s}),a.value&&(0,le.jsx)("span",{style:{color:"#475569",marginLeft:6,fontSize:10},children:a.value})]},s);var r})}):(0,le.jsx)("p",{style:{color:"#475569",fontSize:13},children:"Chargement..."}),u&&!u.ok&&(0,le.jsxs)("div",{style:{marginTop:12,background:"rgba(239,68,68,.07)",border:"1px solid rgba(239,68,68,.2)",borderRadius:8,padding:"10px 14px"},children:[(0,le.jsx)("p",{style:{color:"#fca5a5",fontSize:12,fontWeight:700,margin:"0 0 6px"},children:"\u26a0 Configuration incompl\xe8te \u2014 certaines automatisations ne fonctionnent pas"}),!1===(null===(s=u.checks)||void 0===s||null===(a=s.RESEND_DOMAIN_VERIFIED)||void 0===a?void 0:a.set)&&(0,le.jsxs)("p",{style:{color:"#fbbf24",fontSize:11,margin:"0 0 6px",lineHeight:1.7},children:["\ud83d\udce7 ",(0,le.jsx)("strong",{children:"Domaine Resend non v\xe9rifi\xe9"})," \u2014 C'est la cause principale des emails manquants.",(0,le.jsx)("br",{}),"Fix : ",(0,le.jsx)("a",{href:"https://resend.com/domains",target:"_blank",rel:"noreferrer",style:{color:"#60a5fa"},children:"resend.com/domains"})," \u2192 Add domain \u2192 ",(0,le.jsx)("code",{style:{background:"#0a1426",padding:"1px 5px",borderRadius:3},children:"vintyresell.com"})," \u2192 ajouter les DNS records dans ton h\xe9bergeur"]}),!(null!==(i=u.checks)&&void 0!==i&&null!==(d=i.STRIPE_WEBHOOK_SECRET)&&void 0!==d&&d.set)&&(0,le.jsxs)("p",{style:{color:"#fbbf24",fontSize:11,margin:0,lineHeight:1.7},children:["\ud83d\udd11 ",(0,le.jsx)("strong",{children:"STRIPE_WEBHOOK_SECRET manquant"})," \u2014 Cause: aucun webhook ne peut \xeatre re\xe7u.",(0,le.jsx)("br",{}),"Fix : Stripe Dashboard \u2192 Webhooks \u2192 endpoint prod \u2192 Signing secret \u2192 fic
1hier .env du serveur"]})]})]})),ze((0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)("p",{style:{fontWeight:700,margin:"0 0 6px",fontSize:14,color:"#f59e0b"},children:"Cr\xe9er le webhook Stripe automatiquement"}),(0,le.jsxs)("p",{style:{color:"#64748b",fontSize:12,margin:"0 0 12px",lineHeight:1.7},children:["Clique ci-dessous pour cr\xe9er l'endpoint webhook Stripe pointant vers ",(0,le.jsx)("code",{style:{color:"#60a5fa",background:"#0a1426",padding:"1px 5px",borderRadius:3},children:"https://vintyresell.com/api/webhooks/stripe"}),".",(0,le.jsx)("br",{}),"Tu recevras le ",(0,le.jsx)("strong",{style:{color:"#fbbf24"},children:"Signing Secret"})," \xe0 copier dans le fichier .env du serveur (backend).",(0,le.jsx)("br",{}),(0,le.jsx)("strong",{style:{color:"#ef4444"},children:"\u26a0 Ce secret n'est affich\xe9 qu'une seule fois \u2014 sauvegarde-le imm\xe9diatement."})]}),Fe("Cr\xe9er le webhook Stripe production",()=>{y(!0),D(null),E(null),n.A.post("".concat(ys,"/api/admin/setup-webhook"),{},{headers:c()}).then(e=>{let t=e.data;return D(t)}).catch(e=>{var t,s;return E((null===e||void 0===e||null===(t=e.response)||void 0===t||null===(s=t.data)||void 0===s?void 0:s.detail)||e.message)}).finally(()=>y(!1))},"#d97706"),F&&(0,le.jsx)("div",{style:{marginTop:12,borderRadius:10,padding:"12px 16px",background:F.success?"rgba(34,197,94,.08)":"rgba(239,68,68,.08)",border:"1px solid ".concat(F.success?"rgba(34,197,94,.2)":"rgba(239,68,68,.2)")},children:F.success?(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)("p",{style:{color:"#86efac",fontWeight:700,margin:"0 0 8px",fontSize:13},children:"\u2713 Webhook cr\xe9\xe9 !"}),(0,le.jsx)("p",{style:{color:"#94a3b8",fontSize:12,margin:"0 0 6px"},children:(0,le.jsx)("strong",{children:"Signing Secret \xe0 copier :"})}),(0,le.jsx)("code",{style:{display:"block",background:"#0a1426",padding:"8px 12px",borderRadius:6,color:"#fbbf24",fontSize:13,fontWeight:700,letterSpacing:".03em",wordBreak:"break-all",margin:"0 0 10px"},children:F.signing_secret}),(0,le.jsxs)("p",{style:{color:"#64748b",fontSize:11,margin:0,lineHeight:1.7},children:["1. Copie ce secret",(0,le.jsx)("br",{}),"2. Va dans le fichier .env du serveur (backend) \u2192 ",(0,le.jsx)("strong",{style:{color:"#94a3b8"},children:"Variables d'environnement"}),(0,le.jsx)("br",{}),"3. Ajoute ou mets \xe0 jour : ",(0,le.jsx)("code",{style:{color:"#60a5fa",background:"#0a1426",padding:"1px 5px",borderRadius:3},children:"STRIPE_WEBHOOK_SECRET"})," = la valeur ci-dessus",(0,le.jsx)("br",{}),"4. ",(0,le.jsx)("strong",{style:{color:"#f8fafc"},children:"Red\xe9ploie l'app"})," pour que le changement prenne effet"]})]}):(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)("p",{style:{color:"#fca5a5",fontWeight:700,margin:"0 0 4px",fontSize:13},children:"\u2717 Erreur"}),(0,le.jsx)("p",{style:{color:"#94a3b8",fontSize:12,margin:0},children:F.error}),(null===(o=F.error)||void 0===o?void 0:o.includes("already"))&&(0,le.jsx)("p",{style:{color:"#fbbf24",fontSize:11,margin:"6px 0 0"},children:"Un webhook existe peut-\xeatre d\xe9j\xe0. Va dans Stripe Dashboard \u2192 Developers \u2192 Webhooks pour voir et copier le secret existant."})]})})]})),ze((0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)("p",{style:{fontWeight:700,margin:"0 0 8px",fontSize:14,color:"#a78bfa"},children:"Configurer Resend (emails)"}),(0,le.jsxs)("ol",{style:{color:"#64748b",fontSize:12,lineHeight:2.1,paddingLeft:18,margin:"0 0 10px"},children:[(0,le.jsxs)("li",{children:["Va sur ",(0,le.jsx)("a",{href:"https://resend.com/domains",target:"_blank",rel:"noreferrer",style:{color:"#60a5fa"},children:"resend.com/domains"})," \u2192 ",(0,le.jsx)("strong",{style:{color:"#94a3b8"},children:"Add domain"})]}),(0,le.jsxs)("li",{children:["Entre ",(0,le.jsx)("code",{style:{color:"#60a5fa",background:"#0a1426",padding:"1px 5px",borderRadius:3},children:"vintyresell.com"})]}),(0,le.jsx)("li",{children:"Resend te donne des records DNS (TXT, MX, DKIM) \u2192 ajoute-les chez ton registrar (OVH, Cloudflare, Namecheap\u2026)"}),(0,le.jsx)("li",{children:'Attendre la validation DNS (5\u201360 min) \u2192 clique "Verify" dans Resend'}),(0,le.jsx)("li",{children:"Une fois v\xe9rifi\xe9, le health check ici passera au vert"})]}),(0,le.jsx)("p",{style:{color:"#475569",fontSize:11,margin:0},children:"Sans domaine v\xe9rifi\xe9, tous les emails (bienvenue, acc\xe8s, audit) \xe9chouent silencieusement m\xeame si RESEND_API_KEY est correct."})]})),ze((0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)("p",{style:{fontWeight:700,margin:"0 0 14px",fontSize:14,color:"#60a5fa"},children:"Accorder l'acc\xe8s manuellement"}),(0,le.jsx)("p",{style:{color:"#64748b",fontSize:12,margin:"0 0 14px"},children:"Cr\xe9e le compte si besoin, attribue le plan, ajoute les cr\xe9dits et envoie l'email. \xc0 utiliser quand un client a pay\xe9 mais n'a rien re\xe7u."}),Ee("Email client"),Re(q,P,"[email protected]"),Ee("Plan achet\xe9"),Te(V,B,Object.entries(ws)),(0,le.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:14},children:[(0,le.jsx)("input",{type:"checkbox",id:"sendMailCbx",checked:H,onChange:e=>Y(e.target.checked),style:{width:16,height:16,cursor:"pointer"}}),(0,le.jsx)("label",{htmlFor:"sendMailCbx",style:{color:"#94a3b8",fontSize:13,cursor:"pointer"},children:"Envoyer l'email d'acc\xe8s automatiquement"})]}),Fe("Accorder l'acc\xe8s complet",()=>Ce(async()=>(await n.A.post("".concat(ys,"/api/repair/grant-access"),{email:q,plan:V,send_email:H},{headers:c()})).data),"#16a34a")]})),ze((0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)("p",{style:{fontWeight:700,margin:"0 0 14px",fontSize:14,color:"#a78bfa"},children:"Renvoyer l'email d'acc\xe8s"}),Ee("Email du membre"),Re(J,Q,"[email protected]"),Ee("Plan (pour choisir le bon template)"),Te($,ee,Object.entries(ws)),Fe("Renvoyer l'email",()=>Ce(async()=>(await n.A.post("".concat(ys,"/api/repair/resend-email"),{email:J,plan:$},{headers:c()})).data),"#7c3aed")]})),ze((0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)("p",{style:{fontWeight:700,margin:"0 0 14px",fontSize:14,color:"#f59e0b"},children:"Ajuster le solde de cr\xe9dits d'un membre"}),Ee("Email du membre"),Re(ae,re,"[email protected]"),Ee("Nombre de cr\xe9dits \xe0 ajouter"),(0,le.jsx)("input",{type:"number",value:de,onChange:e=>oe(parseInt(e.target.value)||0),style:{width:"100%",background:"#0a1426",border:"1px solid rgba(255,255,255,.09)",borderRadius:8,padding:"9px 12px",color:"#f8fafc",fontSize:13,outline:"none",marginBottom:10}}),Fe("Ajouter les cr\xe9dits",()=>Ce(async()=>(await n.A.post("".concat(ys,"/api/repair/add-credits"),{email:ae,credits:de,reason:"manual_admin_repair"},{headers:c()})).data),"#d97706")]})),_&&(0,le.jsxs)("div",{style:{background:"rgba(34,197,94,.08)",border:"1px solid rgba(34,197,94,.2)",borderRadius:12,padding:"14px 18px",marginTop:8},children:[(0,le.jsx)("p",{style:{color:"#86efac",fontWeight:700,margin:"0 0 8px",fontSize:14},children:"\u2713 Op\xe9ration r\xe9ussie"}),(0,le.jsx)("pre",{style:{color:"#94a3b8",fontSize:11,margin:0,whiteSpace:"pre-wrap",wordBreak:"break-all"},children:JSON.stringify(_,null,2)})]}),z&&(0,le.jsxs)("div",{style:{background:"rgba(239,68,68,.08)",border:"1px solid rgba(239,68,68,.2)",borderRadius:12,padding:"14px 18px",marginTop:8},children:[(0,le.jsx)("p",{style:{color:"#fca5a5",fontWeight:700,margin:"0 0 4px",fontSize:14},children:"\u2717 Erreur"}),(0,le.jsx)("p",{style:{color:"#94a3b8",fontSize:12,margin:0},children:z})]}),ze((0,le.jsxs)(le.Fragment,{children:[(0,le.jsxs)("p",{style:{fontWeight:700,margin:"0 0 12px",fontSize:14},children:["Derniers \xe9v\xe9nements webhook trait\xe9s (",g.length,")"]}),0===g.length?(0,le.jsx)("p",{style:{color:"#475569",fontSize:12},children:"Aucun \xe9v\xe9nement re\xe7u. Le webhook n'est peut-\xeatre pas encore configur\xe9 en production."}):(0,le.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:g.map((e,t)=>(0,le.jsxs)("div",{style:{background:"#0a1426",borderRadius:8,padding:"8px 12px",display:"flex",justifyContent:"space-between",alignItems:"center",gap:8},children:[(0,le.jsx)("span",{style:{fontSize:12,color:"#60a5fa",fontFamily:"monospace",fontWeight:600},children:e.event_type}
1),(0,le.jsx)("span",{style:{fontSize:10,color:"#475569"},children:e.processed_at?new Date(e.processed_at).toLocaleString("fr-FR"):"\u2014"}),(0,le.jsxs)("span",{style:{fontSize:10,color:"#334155",fontFamily:"monospace"},children:[(e.event_id||"").slice(0,20),"..."]})]},t))})]})),ze((0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)("p",{style:{fontWeight:700,margin:"0 0 10px",fontSize:14,color:"#94a3b8"},children:"Comment configurer le webhook Stripe pour la production"}),(0,le.jsxs)("ol",{style:{color:"#64748b",fontSize:12,lineHeight:1.9,paddingLeft:16,margin:0},children:[(0,le.jsxs)("li",{children:["Stripe Dashboard \u2192 ",(0,le.jsx)("strong",{style:{color:"#94a3b8"},children:"Developers \u2192 Webhooks"})]}),(0,le.jsxs)("li",{children:["Clique ",(0,le.jsx)("strong",{style:{color:"#94a3b8"},children:"Add an endpoint"})]}),(0,le.jsxs)("li",{children:["URL de l'endpoint : ",(0,le.jsx)("code",{style:{color:"#60a5fa",background:"#0a1426",padding:"1px 6px",borderRadius:4},children:"https://vintyresell.com/api/webhooks/stripe"})]}),(0,le.jsxs)("li",{children:["\xc9v\xe9nements \xe0 \xe9couter : ",(0,le.jsx)("code",{style:{color:"#60a5fa",background:"#0a1426",padding:"1px 6px",borderRadius:4},children:"checkout.session.completed, invoice.paid, invoice.payment_failed, customer.subscription.deleted, charge.refunded"})]}),(0,le.jsxs)("li",{children:["Clique ",(0,le.jsx)("strong",{style:{color:"#94a3b8"},children:"Add endpoint"})," \u2192 copie le ",(0,le.jsx)("strong",{style:{color:"#94a3b8"},children:"Signing secret (whsec_...)"})]}),(0,le.jsxs)("li",{children:["Fichier .env du serveur (backend) \u2192 ajoute ",(0,le.jsx)("code",{style:{color:"#60a5fa",background:"#0a1426",padding:"1px 6px",borderRadius:4},children:"STRIPE_WEBHOOK_SECRET=whsec_..."})]}),(0,le.jsx)("li",{children:"Red\xe9ployer l'app apr\xe8s ajout des variables"})]})]}))]})}const _s=window.location.origin;function ks(e){var t,s,a,i,d,o,c,x,m,u,p,h,b;let g=e.headers;const f=(0,r.useState)(null),j=(0,l.A)(f,2),v=j[0],N=j[1],y=(0,r.useState)(null),w=(0,l.A)(y,2),A=w[0],_=w[1],k=(0,r.useState)(!0),S=(0,l.A)(k,2),C=S[0],z=S[1],E=(0,r.useState)(null),R=(0,l.A)(E,2),T=R[0],F=R[1],D=(0,r.useCallback)(async()=>{z(!0),F(null);try{const e=await Promise.all([n.A.get("".concat(_s,"/api/admin/stripe/health"),{headers:g()}),n.A.get("".concat(_s,"/api/admin/stripe/sync-audit"),{headers:g()})]),t=(0,l.A)(e,2),s=t[0],a=t[1];N(s.data),_(a.data)}catch(s){var e,t;F((null===s||void 0===s||null===(e=s.response)||void 0===e||null===(t=e.data)||void 0===t?void 0:t.detail)||s.message||"Erreur de chargement")}finally{z(!1)}},[g]);(0,r.useEffect)(()=>{D()},[D]);const I=(e,t)=>(0,le.jsx)("div",{style:{background:"#060d1e",border:"1px solid rgba(255,255,255,.07)",borderRadius:14,padding:"20px 22px",marginBottom:16},children:e},t),L=e=>(0,le.jsx)("span",{style:{display:"inline-block",width:8,height:8,borderRadius:"50%",background:e?"#22c55e":"#ef4444",marginRight:6,flexShrink:0}}),q=e=>(0,le.jsx)("p",{style:{color:"#64748b",fontSize:11,fontWeight:700,textTransform:"uppercase",letterSpacing:".08em",marginBottom:8},children:e});if(C)return(0,le.jsx)("div",{style:{textAlign:"center",padding:"48px 0",color:"#64748b",fontSize:13},children:"Chargement..."});if(T)return(0,le.jsxs)("div",{style:{background:"rgba(239,68,68,.08)",border:"1px solid rgba(239,68,68,.2)",borderRadius:12,padding:"14px 18px",color:"#fca5a5",fontSize:13},children:["\u2717 ",T]});if(!v)return null;const P=v.checks||{},M={healthy:{bg:"rgba(34,197,94,.1)",border:"rgba(34,197,94,.3)",text:"#86efac",dot:"#22c55e",label:"\ud83d\udfe2 OK"},clean:{bg:"rgba(34,197,94,.1)",border:"rgba(34,197,94,.3)",text:"#86efac",dot:"#22c55e",label:"\ud83d\udfe2 OK"},warning:{bg:"rgba(245,158,11,.1)",border:"rgba(245,158,11,.3)",text:"#fbbf24",dot:"#f59e0b",label:"\ud83d\udfe1 Attention"},critical:{bg:"rgba(239,68,68,.1)",border:"rgba(239,68,68,.3)",text:"#fca5a5",dot:"#ef4444",label:"\ud83d\udd34 Critique"},divergent:{bg:"rgba(245,158,11,.1)",border:"rgba(245,158,11,.3)",text:"#fbbf24",dot:"#f59e0b",label:"\ud83d\udfe1 Divergences"}}[O=v.status]||{bg:"rgba(100,116,139,.1)",border:"rgba(100,116,139,.3)",text:"#94a3b8",dot:"#64748b",label:O};var O;return(0,le.jsxs)("div",{style:{fontFamily:"Inter, sans-serif",color:"#f8fafc"},children:[(0,le.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:20,flexWrap:"wrap",gap:10},children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h2",{style:{fontSize:18,fontWeight:800,margin:0,letterSpacing:"-.02em"},children:"Sant\xe9 Stripe"}),(0,le.jsxs)("p",{style:{color:"#64748b",fontSize:13,marginTop:4},children:["\xc9tat r\xe9el du compte Stripe ","live"===v.mode?"(mode LIVE)":"(mode TEST)"," \u2014 lu en direct via l'API."]})]}),(0,le.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,le.jsx)("span",{style:{background:M.bg,border:"1px solid ".concat(M.border),color:M.text,borderRadius:8,padding:"6px 14px",fontSize:13,fontWeight:700},children:M.label}),(0,le.jsx)("button",{onClick:D,style:{background:"none",border:"1px solid rgba(255,255,255,.1)",borderRadius:6,padding:"6px 12px",color:"#94a3b8",fontSize:12,cursor:"pointer"},children:"Actualiser"})]})]}),((null===(t=v.errors)||void 0===t?void 0:t.length)>0||(null===(s=v.warnings)||void 0===s?void 0:s.length)>0)&&I((0,le.jsxs)(le.Fragment,{children:[null===(a=v.errors)||void 0===a?void 0:a.map((e,t)=>(0,le.jsxs)("p",{style:{color:"#fca5a5",fontSize:13,margin:"0 0 6px",display:"flex",gap:6},children:["\u2717 ",e]},"e".concat(t))),null===(i=v.warnings)||void 0===i?void 0:i.map((e,t)=>(0,le.jsxs)("p",{style:{color:"#fbbf24",fontSize:13,margin:"0 0 6px",display:"flex",gap:6},children:["\u26a0 ",e]},"w".concat(t)))]}),"errors"),I((0,le.jsxs)(le.Fragment,{children:[q("Cl\xe9s API & connectivit\xe9"),(0,le.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:8},children:[(0,le.jsxs)("span",{style:{display:"flex",alignItems:"center",background:"#0a1426",border:"1px solid rgba(255,255,255,.08)",borderRadius:8,padding:"6px 12px",fontSize:12},children:[L(null===(d=P.publishable_key)||void 0===d?void 0:d.ok)," Cl\xe9 publique ",(0,le.jsx)("span",{style:{color:"#475569",marginLeft:6},children:(null===(o=P.publishable_key)||void 0===o?void 0:o.prefix)||"\u2014"})]}),(0,le.jsxs)("span",{style:{display:"flex",alignItems:"center",background:"#0a1426",border:"1px solid rgba(255,255,255,.08)",borderRadius:8,padding:"6px 12px",fontSize:12},children:[L(null===(c=P.secret_key)||void 0===c?void 0:c.ok)," Cl\xe9 secr\xe8te ",(0,le.jsx)("span",{style:{color:"#475569",marginLeft:6},children:(null===(x=P.secret_key)||void 0===x?void 0:x.prefix)||"\u2014"})]}),(0,le.jsxs)("span",{style:{display:"flex",alignItems:"center",background:"#0a1426",border:"1px solid rgba(255,255,255,.08)",borderRadius:8,padding:"6px 12px",fontSize:12},children:[L(null===(m=P.api_connectivity)||void 0===m?void 0:m.ok)," Connexion API ",(null===(u=P.api_connectivity)||void 0===u?void 0:u.account_id)&&(0,le.jsxs)("span",{style:{color:"#475569",marginLeft:6},children:[P.api_connectivity.account_id," (",P.api_connectivity.country,")"]})]}),(0,le.jsxs)("span",{style:{display:"flex",alignItems:"center",background:"#0a1426",border:"1px solid rgba(255,255,255,.08)",borderRadius:8,padding:"6px 12px",fontSize:12},children:[L(null===(p=P.webhook_secret)||void 0===p?void 0:p.ok)," Webhook secret configur\xe9"]})]})]}),"keys"),P.webhook_endpoint&&I((0,le.jsxs)(le.Fragment,{children:[(0,le.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:[q("Endpoint webhook c\xf4t\xe9 Stripe"),(0,le.jsx)("a",{href:"https://dashboard.stripe.com/webhooks",target:"_blank",rel:"noreferrer",style:{color:"#60a5fa",fontSize:11},children:"Voir sur Stripe \u2192"})]}),P.webhook_endpoint.error?(0,le.jsx)("p",{style:{color:"#fca5a5",fontSize:12},children:P.webhook_endpoint.error}):(0,le.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap",fontSize:12},children:[L(P.webhook_endpoint.ok),(0,le.jsx)("span",{style:{color:P.webhook_endpoint.ok?"#86efac":"#fca5a5",fontWeight:700},children:P.webhook_endpoint.ok?"Actif et pointe vers nous":"Aucun endpoint actif ne pointe vers nous"}),(0,le.jsxs)("span",{style:{color:"#475569"},children:["\u2014 ",P.webhook_endpoint.enabled_matching,"/",P.webhook_endpoint.matching_url," actif(s) sur ",P.webhook_endpoint.total_endpoints," endpoint(s) au total"]})]})]}),"webhook"),(0,le.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(200px, 1fr) minmax(280px, 2fr)",gap:16,marginBottom:16},children:[P.balance&&!P.balance.error&&(0,le.jsxs)("div",{style:{background:"#060d1e",border:"1px solid rgba(255,255,255,.07)",borderRadius:14,padding:"20px 22px"},children:[q("Solde Stripe"),null===(h=P.balance.available)||void 0===h?void 0:h.map((e,t)=>(0,le.jsxs)("p",{style:{fontSize:22,fontWeight:800,margin:"0 0 2px",color:"#86efac"},children:[e.amount.toFixed(2)," ",e.currency.toUpperCase()]},t)),(0,le.jsx)("p",{style:{color:"#64748b",fontSize:11,margin:"0 0 10px"},children:"disponible"}),null===(b=P.balance.pending)||void 0===b?void 0:b.map((e,t)=>(0,le.jsxs)("p",{style:{fontSize:16,fontWeight:700,margin:"0 0 2px",color:"#fbbf24"},children:[e.amount.toFixed(2)," ",e.currency.toUpperCase()]},t)),(0,le.jsx)("p",{style:{color:"#64748b",fontSize:11,margin:0},children:"en attente"})]}),Array.isArray(P.recent_payouts)&&(0,le.jsxs)("div",{style:{background:"#060d1e",border:"1px solid rgba(255,255,255,.07)",borderRadius:14,padding:"20px 22px"},children:[q("Derniers virements"),0===P.recent_payouts.length?(0,le.jsx)("p",{style:{color:"#475569",fontSize:12},children:"Aucun virement."}):(0,le.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:P.recent_payouts.map(e=>(0,le.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",fontSize:12,background:"#0a1426",borderRadius:8,padding:"6px 12px"},children:[(0,le.jsxs)("span",{style:{color:"paid"===e.status?"#86efac":"#fbbf24",fontWeight:700},children:[e.amount.toFixed(2)," ",e.currency.toUpperCase()]}),(0,le.jsx)("span",{style:{color:"#64748b"},children:e.status}),(0,le.jsx)("span",{style:{color:"#475569"},children:e.arrival_date?new Date(1e3*e.arrival_date).toLocaleDateString("fr-FR"):"\u2014"})]},e.id))})]})]}),(0,le.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"minmax(200px, 1fr) minmax(280px, 2fr)",gap:16,marginBottom:16},children:[P.charge_success_rate&&!P.charge_success_rate.error&&(0,le.jsxs)("div",{style:{background:"#060d1e",border:"1px solid rgba(255,255,255,.07)",borderRadius:14,padding:"20px 22px"},children:[q("Taux d'\xe9chec paiement (".concat(P.charge_success_rate.sample_size," derniers)")),(0,le.jsxs)("p",{style:{fontSize:28,fontWeight:800,margin:"0 0 4px",color:P.charge_success_rate.fail_rate_pct>=40?"#fca5a5":P.charge_success_rate.fail_rate_pct>=20?"#fbbf24":"#86efac"},children:[P.charge_success_rate.fail_rate_pct,"%"]}),(0,le.jsxs)("p",{style:{color:"#64748b",fontSize:11,margin:0},children:[P.charge_success_rate.succeeded," r\xe9ussi(s) / ",P.charge_success_rate.failed," \xe9chou\xe9(s)"]})]}),P.disputes&&!P.disputes.error&&(0,le.jsxs)("div",{style:{background:"#060d1e",border:"1px solid rgba(255,255,255,.07)",borderRadius:14,padding:"20px 22px"},children:[q("Litiges actifs (".concat(P.disputes.active_count,")")),0===P.disputes.active_count?(0,le.jsx)("p",{style:{color:"#475569",fontSize:12},children:"Aucun litige en cours."}):(0,le.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:P.disputes.active.map(e=>(0,le.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",fontSize:12,background:"rgba(239,68,68,.08)",border:"1px solid rgba(239,68,68,.2)",borderRadius:8,padding:"6px 12px"},children:[(0,le.jsxs)("span",{style:{color:"#fca5a5",fontWeight:700},children:[e.amount.toFixed(2)," ",e.currency.toUpperCase()]}),(0,le.jsx)("span",{style:{color:"#94a3b8"},children:e.reason}),(0,le.jsx)("span",{style:{color:"#64748b"},children:e.status})]},e.id))})]})]}),P.tiers&&I((0,le.jsxs)(le.Fragment,{children:[q("Tarifs (plan_registry \u2194 Str
1ipe)"),(0,le.jsx)("div",{style:{overflowX:"auto"},children:(0,le.jsxs)("table",{style:{width:"100%",fontSize:12,borderCollapse:"collapse"},children:[(0,le.jsx)("thead",{children:(0,le.jsxs)("tr",{style:{color:"#64748b",textAlign:"left"},children:[(0,le.jsx)("th",{style:{padding:"4px 8px"},children:"Tier"}),(0,le.jsx)("th",{style:{padding:"4px 8px"},children:"Prix Stripe"}),(0,le.jsx)("th",{style:{padding:"4px 8px"},children:"Devise"}),(0,le.jsx)("th",{style:{padding:"4px 8px"},children:"Actif"}),(0,le.jsx)("th",{style:{padding:"4px 8px"},children:"Valide"})]})}),(0,le.jsx)("tbody",{children:Object.entries(P.tiers).map(e=>{let t=(0,l.A)(e,2),s=t[0],a=t[1];return(0,le.jsxs)("tr",{style:{borderTop:"1px solid rgba(255,255,255,.05)"},children:[(0,le.jsx)("td",{style:{padding:"6px 8px",fontWeight:700,textTransform:"capitalize"},children:s}),(0,le.jsx)("td",{style:{padding:"6px 8px",color:"#94a3b8"},children:null!=a.monthly_unit_amount?(a.monthly_unit_amount/100).toFixed(2):"\u2014"}),(0,le.jsx)("td",{style:{padding:"6px 8px",color:"#94a3b8"},children:a.monthly_currency||"\u2014"}),(0,le.jsx)("td",{style:{padding:"6px 8px"},children:L(a.monthly_active)}),(0,le.jsx)("td",{style:{padding:"6px 8px"},children:L(a.monthly_valid)})]},s)})})]})})]}),"tiers"),A&&I((0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:8},children:q("Coh\xe9rence Stripe \u2194 config (".concat(A.divergences_count," divergence(s))"))}),0===A.divergences_count?(0,le.jsx)("p",{style:{color:"#86efac",fontSize:12},children:"\u2713 Rien \xe0 signaler \u2014 tout est coh\xe9rent."}):(0,le.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:A.divergences.map((e,t)=>{const s={critical:"#fca5a5",high:"#fbbf24",medium:"#93c5fd",low:"#94a3b8"}[e.severity]||"#94a3b8";return(0,le.jsxs)("div",{style:{background:"#0a1426",borderRadius:8,padding:"8px 12px",fontSize:12},children:[(0,le.jsx)("span",{style:{color:s,fontWeight:700,textTransform:"uppercase",fontSize:10,marginRight:8},children:e.severity}),(0,le.jsx)("span",{style:{color:"#94a3b8"},children:e.kind}),(e.tier||e.plan)&&(0,le.jsxs)("span",{style:{color:"#f8fafc",marginLeft:6},children:["(",e.tier||e.plan,")"]}),e.detail&&(0,le.jsx)("p",{style:{color:"#64748b",margin:"4px 0 0"},children:e.detail})]},t)})})]}),"audit")]})}var Ss=s(57856);const Cs=window.location.origin;function zs(e){let t=e.headers;const s=(0,r.useState)([]),i=(0,l.A)(s,2),d=i[0],o=i[1],c=(0,r.useState)(!0),x=(0,l.A)(c,2),m=x[0],p=x[1],h=(0,r.useState)(""),b=(0,l.A)(h,2),g=b[0],f=b[1],j=(0,r.useState)({}),v=(0,l.A)(j,2),N=v[0],y=v[1],A="function"===typeof t?t:()=>t||{},_=(0,r.useCallback)(async()=>{p(!0),f("");try{const e=await n.A.get("".concat(Cs,"/api/admin/feature-flags/"),{headers:A()});o(e.data||[])}catch(s){var e,t;f((null===s||void 0===s||null===(e=s.response)||void 0===e||null===(t=e.data)||void 0===t?void 0:t.detail)||"Impossible de charger les feature flags.")}finally{p(!1)}},[t]);(0,r.useEffect)(()=>{_()},[_]);return m?(0,le.jsx)("div",{className:"flex items-center justify-center py-20",children:(0,le.jsx)("div",{className:"w-6 h-6 border-2 border-teal-400/30 border-t-teal-400 rounded-full animate-spin"})}):(0,le.jsxs)("div",{className:"space-y-6",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h2",{className:"text-xl font-black text-white",style:{fontFamily:"Outfit,sans-serif"},children:"Feature Flags"}),(0,le.jsx)("p",{className:"text-slate-500 text-sm mt-0.5",children:"Activez/d\xe9sactivez les fonctionnalit\xe9s exp\xe9rimentales. Chaque action est trac\xe9e dans l'audit log."})]}),(0,le.jsxs)("div",{className:"bg-amber-500/8 border border-amber-500/20 rounded-2xl p-4 flex items-start gap-3",children:[(0,le.jsx)(u.A,{size:16,className:"text-amber-400 flex-shrink-0 mt-0.5"}),(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-amber-300 text-sm font-bold",children:"Double garde de s\xe9curit\xe9"}),(0,le.jsx)("p",{className:"text-amber-400/70 text-xs mt-0.5",children:"Chaque flag n\xe9cessite (1) une variable d'environnement activ\xe9e par le d\xe9ployeur ET (2) ce toggle admin. Si la variable env est \xe0 false, le toggle ici n'a aucun effet."})]})]}),g&&(0,le.jsxs)("div",{className:"bg-red-500/8 border border-red-500/15 rounded-xl p-3 flex items-center gap-2 text-red-400 text-sm",children:[(0,le.jsx)(k.A,{size:14,className:"flex-shrink-0"})," ",g]}),0===d.length?(0,le.jsx)("p",{className:"text-slate-500 text-sm",children:"Aucun feature flag configur\xe9."}):(0,le.jsx)("div",{className:"space-y-4",children:d.map(e=>(0,le.jsx)("div",{"data-testid":"flag-card-".concat(e.name),className:"rounded-2xl p-5 border transition-all ".concat(e.enabled?"bg-teal-500/5 border-teal-500/20":"bg-slate-900/60 border-white/5"),children:(0,le.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,le.jsx)("h3",{className:"text-white font-bold text-base",children:e.label}),(0,le.jsx)("span",{className:"text-[10px] font-black px-2 py-0.5 rounded-full border ".concat(e.enabled?"bg-teal-500/15 border-teal-500/25 text-teal-400":"bg-slate-700/60 border-white/10 text-slate-500"),children:e.enabled?"ACTIF":"INACTIF"}),!e.env_guard_on&&(0,le.jsxs)("span",{className:"text-[10px] font-bold px-2 py-0.5 rounded-full bg-red-500/15 border border-red-500/25 text-red-400 flex items-center gap-1",children:[(0,le.jsx)(k.A,{size:9})," Env guard OFF"]}
1)]}),(0,le.jsx)("p",{className:"text-slate-400 text-xs mt-1.5 leading-relaxed",children:e.description}),(0,le.jsxs)("div",{className:"flex items-center gap-3 mt-3 flex-wrap",children:[(0,le.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-slate-500",children:[(0,le.jsx)(bs.A,{size:10})," Prix : ",(0,le.jsxs)("strong",{className:"text-slate-300 ml-0.5",children:[e.price_eur,"\u20ac"]})]}),(0,le.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-slate-500",children:[(0,le.jsx)(B.A,{size:10})," Dur\xe9e : ",(0,le.jsxs)("strong",{className:"text-slate-300 ml-0.5",children:[e.duration_h,"h"]})]}),e.env_guard_key&&(0,le.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-slate-500",children:[(0,le.jsx)(Ss.A,{size:10})," Env : ",(0,le.jsxs)("code",{className:"text-slate-400 ml-0.5",children:[e.env_guard_key,"=",e.env_guard_on?"true":"false"]})]})]}),e.updated_at&&(0,le.jsxs)("p",{className:"text-slate-600 text-[10px] mt-2",children:["Modifi\xe9 le ",new Date(e.updated_at).toLocaleString("fr-FR"),e.updated_by?" par ".concat(e.updated_by):""]})]}),(0,le.jsx)("button",{onClick:()=>(async(e,t)=>{y(t=>(0,a.A)((0,a.A)({},t),{},{[e.name]:!0}));try{await n.A.patch("".concat(Cs,"/api/admin/feature-flags/").concat(e.name),{enabled:t},{headers:A()}),o(s=>s.map(s=>s.name===e.name?(0,a.A)((0,a.A)({},s),{},{enabled:t,updated_at:(new Date).toISOString()}):s))}catch(r){var s,l;f((null===r||void 0===r||null===(s=r.response)||void 0===s||null===(l=s.data)||void 0===l?void 0:l.detail)||'Erreur lors de la mise \xe0 jour du flag "'.concat(e.label,'".'))}finally{y(t=>(0,a.A)((0,a.A)({},t),{},{[e.name]:!1}))}})(e,!e.enabled),disabled:N[e.name]||!e.env_guard_on&&!e.enabled,"data-testid":"toggle-flag-".concat(e.name),title:e.env_guard_on?void 0:"N\xe9cessite ".concat(e.env_guard_key,"=true dans l'environnement"),className:"flex-shrink-0 transition-all p-1 rounded-xl ".concat(N[e.name]?"opacity-50 cursor-wait":e.env_guard_on||e.enabled?"hover:scale-105 cursor-pointer":"opacity-30 cursor-not-allowed"),children:N[e.name]?(0,le.jsx)("div",{className:"w-12 h-7 flex items-center justify-center",children:(0,le.jsx)("div",{className:"w-4 h-4 border-2 border-teal-400/30 border-t-teal-400 rounded-full animate-spin"})}):e.enabled?(0,le.jsx)(is.A,{size:42,className:"text-teal-400"}):(0,le.jsx)(w.A,{size:42,className:"text-slate-600"})})]})},e.name))}),(0,le.jsx)("div",{className:"flex justify-end",children:(0,le.jsx)("button",{onClick:_,className:"text-xs text-slate-500 hover:text-white transition-colors px-3 py-2 rounded-xl hover:bg-white/5",children:"Actualiser"})})]})}var Es=s(88693),Rs=s(19233);const Ts=window.location.origin;function Fs(e){let t=e.title,s=e.icon,a=e.color,l=e.count,r=e.children,i=e.actions;return(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl overflow-hidden",children:[(0,le.jsxs)("div",{className:"px-5 py-4 border-b border-white/5 flex items-center justify-between",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2",children:[(0,le.jsx)(s,{size:15,className:a}),(0,le.jsx)("h2",{className:"text-white font-bold text-sm",children:t}),null!=l&&(0,le.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-full bg-white/5 text-slate-400 border border-white/5",children:l})]}),i]}),(0,le.jsx)("div",{className:"p-5",children:r})]})}function Ds(){const e=(0,se.A)().authHeaders,t=(0,r.useState)([]),s=(0,l.A)(t,2),a=s[0],i=s[1],d=(0,r.useState)(!0),o=(0,l.A)(d,2),c=o[0],x=o[1],m=(0,r.useState)(""),u=(0,l.A)(m,2),p=u[0],h=u[1],b=(0,r.useState)(!1),g=(0,l.A)(b,2),f=g[0],j=g[1],v=(0,r.useState)(null),N=(0,l.A)(v,2),w=N[0],k=N[1],S=(0,r.useCallback)(async()=>{x(!0);try{const t=await n.A.get("".concat(Ts,"/api/admin/affiliate/tasks"),{headers:e()});i(t.data||[])}catch(t){}finally{x(!1)}},[e]);(0,r.useEffect)(()=>{S()},[S]);const C=async()=>{if(p.trim()){j(!0);try{await n.A.post("".concat(Ts,"/api/admin/affiliate/tasks"),{title:p.trim()},{headers:e()}),h(""),S()}catch(t){}finally{j(!1)}}};return(0,le.jsxs)(Fs,{title:"T\xe2ches TikTok",icon:y.A,color:"text-pink-400",count:a.length,actions:(0,le.jsx)("button",{onClick:S,disabled:c,
1className:"p-1.5 rounded-lg bg-slate-800 text-slate-500 hover:text-white transition-all",children:(0,le.jsx)(A.A,{size:12,className:c?"animate-spin":""})}),children:[(0,le.jsxs)("div",{className:"flex gap-2 mb-4",children:[(0,le.jsx)("input",{value:p,onChange:e=>h(e.target.value),onKeyDown:e=>"Enter"===e.key&&C(),placeholder:"Nouvelle t\xe2che TikTok (visible par tous les affili\xe9s)\u2026","data-testid":"new-task-input",className:"flex-1 bg-slate-800 border border-white/8 text-white text-sm rounded-xl px-3 py-2 placeholder-slate-600 focus:border-pink-500/40 focus:outline-none"}),(0,le.jsx)("button",{onClick:C,disabled:f||!p.trim(),"data-testid":"add-task-submit",className:"px-4 py-2 bg-pink-600 hover:bg-pink-500 text-white text-sm font-bold rounded-xl flex items-center gap-1.5 transition-all disabled:opacity-50",children:f?(0,le.jsx)(we.A,{size:13,className:"animate-spin"}):(0,le.jsx)(_.A,{size:13})})]}),c?(0,le.jsx)("div",{className:"flex justify-center py-8",children:(0,le.jsx)(we.A,{size:18,className:"animate-spin text-pink-400"})}):0===a.length?(0,le.jsx)("p",{className:"text-slate-600 text-sm text-center py-6",children:"Aucune t\xe2che cr\xe9\xe9e. Les t\xe2ches par d\xe9faut s'affichent aux affili\xe9s."}):(0,le.jsx)("div",{className:"space-y-2",children:a.map(t=>(0,le.jsxs)("div",{"data-testid":"task-item-".concat(t.id),className:"flex items-center gap-3 p-3 bg-slate-800/50 border border-white/5 rounded-xl",children:[(0,le.jsx)(y.A,{size:12,className:"text-pink-400 flex-shrink-0"}),(0,le.jsx)("p",{className:"flex-1 text-slate-300 text-sm leading-relaxed",children:t.title}),t.affiliate_code&&(0,le.jsx)("span",{className:"text-xs px-2 py-0.5 bg-purple-600/10 text-purple-400 border border-purple-500/15 rounded-full",children:t.affiliate_code}),(0,le.jsx)("button",{onClick:()=>(async t=>{k(t);try{await n.A.delete("".concat(Ts,"/api/admin/affiliate/tasks/").concat(t),{headers:e()}),S()}catch(s){}finally{k(null)}})(t.id),disabled:w===t.id,"data-testid":"delete-task-".concat(t.id),className:"p-1.5 text-slate-600 hover:text-red-400 transition-all disabled:opacity-50",children:w===t.id?(0,le.jsx)(we.A,{size:12,className:"animate-spin"}):(0,le.jsx)(F.A,{size:12})})]},t.id))})]})}function Is(){const e=(0,se.A)().authHeaders,t=(0,r.useState)([]),s=(0,l.A)(t,2),i=s[0],d=s[1],o=(0,r.useState)(!0),c=(0,l.A)(o,2),x=c[0],m=c[1],p=(0,r.useState)(null),h=(0,l.A)(p,2),b=h[0],g=h[1],f=(0,r.useState)(null),j=(0,l.A)(f,2),v=j[0],N=j[1],w=(0,r.useState)(!1),A=(0,l.A)(w,2),k=A[0],S=A[1],z=(0,r.useState)({title:"",content:"",visible:!0,mandatory:!1}),E=(0,l.A)(z,2),R=E[0],T=E[1],D=(0,r.useState)({}),I=(0,l.A)(D,2),L=I[0],q=I[1],P=(0,r.useState)(!1),M=(0,l.A)(P,2),O=M[0],V=M[1],B=[{title:"Publier minimum 3 TikTok par semaine",content:"Avec ton lien affili\xe9 visible ou en bio.",mandatory:!0},{title:"Lien affili\xe9 dans ta bio",content:"Garder le lien actif en permanence dans ta biographie.",mandatory:!0},{title:"Ne pas promettre de revenus garantis",content:"Toute promesse de revenus garantis est interdite.",mandatory:!0},{title:"Ne pas utiliser de faux r\xe9sultats",content:"Les captures falsifi\xe9es ou trompeuses sont interdites.",mandatory:!0},{title:"Ne pas spammer",content:"Les envois massifs non sollicit\xe9s sont interdits.",mandatory:!1},{title:"Respecter l'image VINTYRESELL",content:"Tout contenu d\xe9nigrant la marque est interdit.",mandatory:!1},{title:"Respecter les conditions d'affiliation",content:"En adh\xe9rant au programme, vous acceptez toutes ces r\xe8gles.",mandatory:!0}],U=(0,r.useCallback)(async()=>{m(!0);try{const t=await n.A.get("".concat(Ts,"/api/affiliate/rules"),{headers:e()});d(t.data||[])}catch(t){}finally{m(!1)}},[e]);(0,r.useEffect)(()=>{U()},[U]);return(0,le.jsxs)(Fs,{title:"R\xe8gles d'affiliation",icon:u.A,color:"text-amber-400",count:i.length,actions:(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsxs)("button",{onClick:()=>V(e=>!e),"data-testid":"toggle-add-rule",className:"flex items-center gap-1.5 px-3 py-1.5 bg-amber-600/15 border border-amber-500/20 text-amber-400 text-xs font-bold rounded-lg hover:bg-amber-600/25 transition-all",children:[(0,le.jsx)(_.A,{size:11})," Ajouter"]}),0===i.length&&(0,le.jsxs)("button",{onClick:async()=>{S(!0);try{for(const t of B)await n.A.post("".concat(Ts,"/api/admin/affiliate/rules"),t,{headers:e()});U()}catch(t){}finally{S(!1)}},disabled:k,"data-testid":"seed-rules-btn",className:"flex items-center gap-1.5 px-3 py-1.5 bg-slate-800 border border-white/8 text-slate-400 text-xs font-bold rounded-lg hover:text-white transition-all disabled:opacity-50",children:[k?(0,le.jsx)(we.A,{size:11,className:"animate-spin"}):(0,le.jsx)(y.A,{size:11})," Charger r\xe8gles par d\xe9faut"]})]}),children:[O&&(0,le.jsxs)("div",{className:"mb-4 p-4 bg-slate-800/50 border border-white/5 rounded-xl space-y-3","data-testid":"add-rule-form",children:[(0,le.jsx)("input",{value:R.title,onChange:e=>T(t=>(0,a.A)((0,a.A)({},t),{},{title:e.target.value})),placeholder:"Titre de la r\xe8gle *",className:"w-full bg-slate-700 border border-white/8 text-white text-sm rounded-xl px-3 py-2 placeholder-slate-500 focus:border-amber-500/40 focu
1s:outline-none"}),(0,le.jsx)("textarea",{value:R.content,onChange:e=>T(t=>(0,a.A)((0,a.A)({},t),{},{content:e.target.value})),rows:2,placeholder:"Description / explication (optionnel)",className:"w-full bg-slate-700 border border-white/8 text-white text-sm rounded-xl px-3 py-2 placeholder-slate-500 focus:border-amber-500/40 focus:outline-none resize-none"}),(0,le.jsxs)("div",{className:"flex items-center gap-4",children:[(0,le.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer",children:[(0,le.jsx)("div",{className:"w-4 h-4 rounded border flex items-center justify-center ".concat(R.visible?"bg-teal-600 border-teal-600":"border-slate-600"),onClick:()=>T(e=>(0,a.A)((0,a.A)({},e),{},{visible:!e.visible})),children:R.visible&&(0,le.jsx)(C.A,{size:9,className:"text-white"})}),(0,le.jsx)("span",{className:"text-slate-400 text-xs",children:"Visible par les affili\xe9s"})]}),(0,le.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer",children:[(0,le.jsx)("div",{className:"w-4 h-4 rounded border flex items-center justify-center ".concat(R.mandatory?"bg-red-600 border-red-600":"border-slate-600"),onClick:()=>T(e=>(0,a.A)((0,a.A)({},e),{},{mandatory:!e.mandatory})),children:R.mandatory&&(0,le.jsx)(C.A,{size:9,className:"text-white"})}),(0,le.jsx)("span",{className:"text-slate-400 text-xs",children:"Obligatoire"})]})]}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsxs)("button",{onClick:async()=>{if(R.title.trim()){S(!0);try{await n.A.post("".concat(Ts,"/api/admin/affiliate/rules"),R,{headers:e()}),T({title:"",content:"",visible:!0,mandatory:!1}),V(!1),U()}catch(t){}finally{S(!1)}}},disabled:k||!R.title.trim(),"data-testid":"save-rule-btn",className:"flex items-center gap-1.5 px-4 py-2 bg-amber-600 hover:bg-amber-500 text-white text-xs font-bold rounded-xl transition-all disabled:opacity-50",children:[k?(0,le.jsx)(we.A,{size:11,className:"animate-spin"}):(0,le.jsx)(Es.A,{size:11})," Enregistrer"]}),(0,le.jsx)("button",{onClick:()=>V(!1),className:"px-3 py-2 bg-slate-700 text-slate-400 hover:text-white text-xs rounded-xl transition-all",children:"Annuler"})]})]}),x?(0,le.jsx)("div",{className:"flex justify-center py-8",children:(0,le.jsx)(we.A,{size:18,className:"animate-spin text-amber-400"})}):0===i.length?(0,le.jsxs)("div",{className:"text-center py-8",children:[(0,le.jsx)(u.A,{size:28,className:"mx-auto mb-3 text-slate-700"}),(0,le.jsx)("p",{className:"text-slate-500 text-sm",children:"Aucune r\xe8gle configur\xe9e."}),(0,le.jsx)("p",{className:"text-slate-600 text-xs mt-1",children:"Les r\xe8gles par d\xe9faut s'affichent aux affili\xe9s si aucune r\xe8gle n'est d\xe9finie."})]}):(0,le.jsx)("div",{className:"space-y-2",children:i.map(t=>(0,le.jsx)("div",{"data-testid":"rule-item-".concat(t.id),className:"p-3 bg-slate-800/50 border border-white/5 rounded-xl",children:b===t.id?(0,le.jsxs)("div",{className:"space-y-2",children:[(0,le.jsx)("input",{value:L.title,onChange:e=>q(t=>(0,a.A)((0,a.A)({},t),{},{title:e.target.value})),className:"w-full bg-slate-700 border border-white/8 text-white text-sm rounded-xl px-3 py-2 focus:border-amber-500/40 focus:outline-none"}),(0,le.jsx)("textarea",{value:L.content,onChange:e=>q(t=>(0,a.A)((0,a.A)({},t),{},{content:e.target.value})),rows:2,className:"w-full bg-slate-700 border border-white/8 text-white text-sm rounded-xl px-3 py-2 focus:border-amber-500/40 focus:outline-none resize-none"}),(0,le.jsxs)("div",{className:"flex items-center gap-4",children:[(0,le.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer",children:[(0,le.jsx)("div",{className:"w-4 h-4 rounded border flex items-center justify-center ".concat(L.visible?"bg-teal-600 border-teal-600":"border-slate-600"),onClick:()=>q(e=>(0,a.A)((0,a.A)({},e),{},{visible:!e.visible})),children:L.visible&&(0,le.jsx)(C.A,{size:9,className:"text-white"})}),(0,le.jsx)("span",{className:"text-slate-400 text-xs",children:"Visible"})]}),(0,le.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer",children:[(0,le.jsx)("div",{className:"w-4 h-4 rounded border flex items-center justify-center ".concat(L.mandatory?"bg-red-600 border-red-600":"border-slate-600"),onClick:()=>q(e=>(0,a.A)((0,a.A)({},e),{},{mandatory:!e.mandatory})),children:L.mandatory&&(0,le.jsx)(C.A,{size:9,className:"text-white"})}),(0,le.jsx)("span",{className:"text-slate-400 text-xs",children:"Obligatoire"})]})]}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsxs)("button",{onClick:()=>(async t=>{S(!0);try{await n.A.patch("".concat(Ts,"/api/admin/affiliate/rules/").concat(t),L,{headers:e()}),g(null),U()}catch(s){}finally{S(!1)}})(t.id),disabled:k,className:"flex items-center gap-1 px-3 py-1.5 bg-teal-600 text-white text-xs font-bold rounded-lg transition-all disabled:opacity-50",children:[k?(0,le.jsx)(we.A,{size:10,
1className:"animate-spin"}):(0,le.jsx)(Es.A,{size:10})," Sauvegarder"]}),(0,le.jsx)("button",{onClick:()=>g(null),className:"px-2 py-1.5 bg-slate-700 text-slate-400 text-xs rounded-lg hover:text-white transition-all",children:"Annuler"})]})]}):(0,le.jsxs)("div",{className:"flex items-start gap-3",children:[(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 flex-wrap mb-0.5",children:[(0,le.jsx)("p",{className:"text-white text-xs font-bold",children:t.title}),t.mandatory&&(0,le.jsx)("span",{className:"text-[9px] font-bold px-1.5 py-0.5 rounded bg-red-600/15 text-red-400 border border-red-500/20",children:"OBLIGATOIRE"}),!t.visible&&(0,le.jsx)("span",{className:"text-[9px] font-bold px-1.5 py-0.5 rounded bg-slate-700 text-slate-500",children:"MASQU\xc9E"})]}),t.content&&(0,le.jsx)("p",{className:"text-slate-500 text-xs leading-relaxed",children:t.content})]}),(0,le.jsxs)("div",{className:"flex gap-1 flex-shrink-0",children:[(0,le.jsx)("button",{onClick:()=>{g(t.id),q({title:t.title,content:t.content||"",visible:!1!==t.visible,mandatory:t.mandatory||!1})},"data-testid":"edit-rule-".concat(t.id),className:"p-1.5 text-slate-600 hover:text-teal-400 transition-all",children:(0,le.jsx)(_e.A,{size:11})}),(0,le.jsx)("button",{onClick:()=>(async t=>{N(t);try{await n.A.delete("".concat(Ts,"/api/admin/affiliate/rules/").concat(t),{headers:e()}),U()}catch(s){}finally{N(null)}})(t.id),disabled:v===t.id,"data-testid":"delete-rule-".concat(t.id),className:"p-1.5 text-slate-600 hover:text-red-400 transition-all disabled:opacity-50",children:v===t.id?(0,le.jsx)(we.A,{size:11,className:"animate-spin"}):(0,le.jsx)(F.A,{size:11})})]})]})},t.id))})]})}function Ls(){const e=(0,se.A)().authHeaders,t=(0,r.useState)([]),s=(0,l.A)(t,2),i=s[0],d=s[1],o=(0,r.useState)(!0),c=(0,l.A)(o,2),x=c[0],m=c[1],u=(0,r.useState)(null),p=(0,l.A)(u,2),h=p[0],b=p[1],g=(0,r.useState)(!1),f=(0,l.A)(g,2),j=f[0],v=f[1],N=(0,r.useState)(!1),y=(0,l.A)(N,2),w=y[0],A=y[1],k=(0,r.useState)({title:"",content:"",affiliate_code:""}),S=(0,l.A)(k,2),C=S[0],z=S[1],E=(0,r.useCallback)(async()=>{m(!0);try{const t=await n.A.get("".concat(Ts,"/api/admin/affiliate/messages"),{headers:e()}).catch(()=>({data:[]}));d(t.data||[])}catch(t){}finally{m(!1)}},[e]);(0,r.useEffect)(()=>{E()},[E]);return(0,le.jsxs)(Fs,{title:"Messages aux affili\xe9s",icon:Rs.A,color:"text-blue-400",count:i.length,actions:(0,le.jsxs)("button",{onClick:()=>A(e=>!e),"data-testid":"toggle-add-message",className:"flex items-center gap-1.5 px-3 py-1.5 bg-blue-600/15 border border-blue-500/20 text-blue-400 text-xs font-bold rounded-lg hover:bg-blue-600/25 transition-all",children:[(0,le.jsx)(_.A,{size:11})," Nouveau message"]}),children:[w&&(0,le.jsxs)("div",{className:"mb-4 p-4 bg-slate-800/50 border border-white/5 rounded-xl space-y-3","data-testid":"add-message-form",children:[(0,le.jsx)("input",{value:C.title,onChange:e=>z(t=>(0,a.A)((0,a.A)({},t),{},{title:e.target.value})),placeholder:"Titre du message *",className:"w-full bg-slate-700 border border-white/8 text-white text-sm rounded-xl px-3 py-2 placeholder-slate-500 focus:border-blue-500/40 focus:outline-none"}),(0,le.jsx)("textarea",{value:C.content,onChange:e=>z(t=>(0,a.A)((0,a.A)({},t),{},{content:e.target.value})),rows:3,placeholder:"Contenu du message *",className:"w-full bg-slate-700 border border-white/8 text-white text-sm rounded-xl px-3 py-2 placeholder-slate-500 focus:border-blue-500/40 focus:outline-none resize-none"}),(0,le.jsx)("input",{value:C.affiliate_code,onChange:e=>z(t=>(0,a.A)((0,a.A)({},t),{},{affiliate_code:e.target.value.toUpperCase()})),placeholder:"Code affili\xe9 (laisser vide = tous les affili\xe9s)",className:"w-full bg-slate-700 border border-white/8 text-white text-sm rounded-xl px-3 py-2 placeholder-slate-500 font-mono focus:border-blue-500/40 focus:outline-none"}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsxs)("button",{onClick:async()=>{if(C.title.trim()&&C.content.trim()){v(!0);try{await n.A.post("".concat(Ts,"/api/admin/affiliate/messages"),{title:C.title,content:C.content,affiliate_code:C.affiliate_code||null},{headers:e()}),z({title:"",content:"",affiliate_code:""}),A(!1),E()}catch(t){}finally{v(!1)}}},disabled:j||!C.title.trim()||!C.content.trim(),"data-testid":"send-message-btn",className:"flex items-center gap-1.5 px-4 py-2 bg-blue-600 hover:bg-blue-500 text-white text-xs font-bold rounded-xl transition-all disabled:opacity-50",children:[j?(0,le.jsx)(we.A,{size:11,className:"animate-spin"}):(0,le.jsx)(Rs.A,{size:11})," Envoyer"]}),(0,le.jsx)("button",{onClick:()=>A(!1),className:"px-3 py-2 bg-slate-700 text-slate-400 hover:text-white text-xs rounded-xl transition-all",children:"Annuler"})]})]}),x?(0,le.jsx)("div",{className:"flex justify-center py-8",children:(0,le.jsx)(we.A,{size:18,className:"animate-spin text-blue-400"})}):0===i.length?(0,le.jsx)("p",{className:"text-slate-600 text-sm text-center py-6",children:"Aucun message envoy\xe9. Utilisez ce module pour communiquer avec vos affili\xe9s."}):(0,le.jsx)("div",{className:"space-y-2",children:i.map(t=>(0,le.jsxs)("div",{"data-testid":"msg-item-".concat(t.id),className:"p-3 bg-slate-800/50 border border-white/5 rounded-xl flex items-start gap-3",children:[(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,le.jsx)("p",{className:"text-white text-xs font-bold",children:t.title}),t.affiliate_code?(0,le.jsx)("span",{className:"text-[9px] px-1.5 py-0.5 rounded bg-purple-600/10 text-purple-400 border border-purple-500/15 font-bold",children:t.affiliate_code}):(0,le.jsx)("span",{className:"text-[9px] px-1.5 py-0.5 rounded bg-blue-600/10 text-blue-400 border border-blue-500/15 font-bold",children:"Tous"})]}),(0,le.jsx)("p",{className:"text-slate-400 text-xs leading-relaxed",children:t.content}),(0,le.jsx)("p",{className:"text-slate-600 text-[10px] mt-1",children:t.created_at?new Date(t.created_at).toLocaleDateString("fr-FR"):""})]}),(0,le.jsx)("button",{onClick:()=>(async t=>{b(t);try{await n.A.delete("".concat(Ts,"/api/admin/affiliate/messages/").concat(t),{headers:e()}),E()}catch(s){}finally{b(null)}})(t.id),disabled:h===t.id,"data-testid":"delete-msg-".concat(t.id),className:"p-1.5 text-slate-600 hover:text-red-400 transition-all flex-shrink-0 disabled:opacity-50",children:h===t.id?(0,le.jsx)(we.A,{size:11,className:"animate-spin"}):(0,le.jsx)(F.A,{size:11})})]},t.id))})]})}function qs(){return(0,le.jsxs)("div",{className:"space-y-6","data-testid":"affiliate-tools-panel",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h1",{className:"text-2xl font-bold text-white",style:{fontFamily:"Outfit, sans-serif"},children:"Outils Affili\xe9s"}),(0,le.jsx)("p",{className:"text-slate-400 text-sm mt-1",children:"G\xe9rez les t\xe2ches TikTok, r\xe8gles d'affiliation et messages envoy\xe9s aux affili\xe9s."})]}),(0,le.jsx)(Ds,{}),(0,le.jsx)(Is,{}),(0,le.jsx)(Ls,{})]})}var Ps=s(84991);const Ms=window.location.origin;function Os(){const e=new Date;return e.setDate(e.getDate()+1),e.toISOString().split("T")[0]}function Vs(e){if(!e)return"";return new Date(e+"T00:00:00").toLocaleDateString("fr-FR",{weekday:"short",day:"numeric",month:"short"})}const Bs={high:{label:"Urgent",color:"text-red-400",bg:"bg-red-500/10 border-red-500/20"},normal:{label:"Normal",color:"text-slate-400",bg:"bg-slate-700/20 border-slate-700"},low:{label:"Faible",color:"text-slate-600",bg:"bg-slate-800/20 border-slate-800"}};function Us(){const e=(0,se.A)().authHeaders,t=(0,r.useState)([]),s=(0,l.A)(t,2),i=s[0],o=s[1],c=(0,r.useState)(!0),x=(0,l.A)(c,2),m=x[0],u=x[1],p=(0,r.useState)(""),h=(0,l.A)(p,2),b=h[0],g=h[1],f=(0,r.useState)(Os()),j=(0,l.A)(f,2),v=j[0],N=j[1],y=(0,r.useState)("normal"),w=(0,l.A)(y,2),A=w[0],k=w[1],S=(0,r.useState)(!1),C=(0,l.A)(S,2),z=C[0],E=C[1],R=(0,r.useState)(""),T=(0,l.A)(R,2),D=T[0],I=T[1],L=(0,r.useState)("pending"),q=(0,l.A)(L,2),P=q[0],M=q[1],O=(0,r.useCallback)(async()=>{try{const t=await n.A.get("".concat(Ms,"/api/admin/todos"),{headers:e()});o(t.data||[])}catch(t){I("Erreur chargement des t\xe2ches")}finally{u(!1)}},[]);(0,r.useEffect)(()=>{O()},[O]);const B=i.filter(e=>"all"===P||("done"===P?e.done:!e.done)),U=Os(),W=i.filter(e=>!e.done).length,H=i.filter(e=>!e.done&&"high"===e.priority).length;return(0,le.jsxs)("div",{className:"bg-[#0d1117] border border-white/6 rounded-2xl overflow-hidden","data-testid":"admin-todo-panel",children:[(0,le.jsxs)("div",{className:"px-5 py-4 border-b border-white/5 flex items-center justify-between",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2",children:[(0,le.jsx)(d.A,{size:15,className:"text-teal-400"}),(0,le.jsx)("span",{className:"text-white font-black text-sm",children:"To-do"}),W>0&&(0,le.jsx)("span",{className:"bg-teal-600/20 border border-teal-500/25 text-teal-400 text-[10px] font-bold px-2 py-0.5 rounded-full",children:W}),H>0&&(0,le.jsxs)("span",{className:"bg-red-600/15 border border-red-500/20 text-red-400 text-[10px] font-bold px-2 py-0.5 rounded-full",children:[H," urgent",H>1?"s":""]})]}),(0,le.jsx)("div",{className:"flex gap-1",children:["pending","done","all"].map(e=>(0,le.jsx)("button",{onClick:()=>M(e),className:"px-2 py-1 rounded-lg text-[10px] font-bold transition-all\n ".concat(P===e?"bg-teal-600/20 text-teal-400":"text-slate-600 hover:text-slate-400"),children:"pending"===e?"En cours":"done"===e?"Termin\xe9":"Tout"},e))})]}),(0,le.jsxs)("form",{onSubmit:async t=>{if(t.preventDefault(),b.trim()){E(!0);try{const t=await n.A.post("".concat(Ms,"/api/admin/todos"),{text:b,due_date:v,priority:A},{headers:e()});o(e=>[t.data,...e]),g("")}catch(s){I("Erreur ajout de la t\xe2che")}finally{E(!1)}}},className:"p-4 border-b border-white/5 space-y-3",children:[(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsx)("input",{value:b,onChange:e=>g(e.target.value),placeholder:"Nouvelle t\xe2che pour demain...",className:"flex-1 bg-slate-800/80 border border-white/8 rounded-xl px-3 py-2 text-sm text-white placeholder-slate-600 focus:outline-none focus:border-teal-500/40","data-testid":"todo-text-input"}),(0,le.jsx)("button",{type:"submit",disabled:z||!b.trim(),className:"px-3 py-2 bg-teal-600 text-white rounded-xl hover:bg-teal-500 transition-all disabled:opacity-40 flex-shrink-0","data-testid":"todo-add-btn",children:z?(0,le.jsx)(we.A,{size:14,className:"animate-spin"}):(0,le.jsx)(_.A,{size:14})})]}),(0,le.jsxs)("div",{className:"flex items-center gap-3",children:[(0,le.jsxs)("div",{className:"flex items-center gap-1.5 flex-1",children:[(0,le.jsx)(V.A,{size:11,className:"text-slate-600"}
1),(0,le.jsx)("input",{type:"date",value:v,onChange:e=>N(e.target.value),className:"bg-transparent text-slate-400 text-xs focus:outline-none cursor-pointer","data-testid":"todo-date-input"}),v===U&&(0,le.jsx)("span",{className:"text-[10px] text-teal-400/70 font-semibold",children:"(demain)"})]}),(0,le.jsx)("div",{className:"flex gap-1",children:Object.entries(Bs).map(e=>{let t=(0,l.A)(e,2),s=t[0],a=t[1];return(0,le.jsx)("button",{type:"button",onClick:()=>k(s),className:"px-2 py-1 rounded-lg text-[10px] font-bold border transition-all\n ".concat(A===s?"".concat(a.bg," ").concat(a.color):"border-slate-800 text-slate-600 hover:text-slate-400"),children:a.label},s)})})]})]}),(0,le.jsx)("div",{className:"divide-y divide-white/4 max-h-80 overflow-y-auto",children:m?(0,le.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,le.jsx)(we.A,{size:16,className:"animate-spin text-teal-400"})}):0===B.length?(0,le.jsxs)("div",{className:"py-8 text-center",children:[(0,le.jsx)(d.A,{size:20,className:"text-slate-700 mx-auto mb-2"}),(0,le.jsx)("p",{className:"text-slate-600 text-xs",children:"pending"===P?"Aucune t\xe2che en cours":"done"===P?"Aucune t\xe2che termin\xe9e":"Aucune t\xe2che"})]}):B.map(t=>{const s=Bs[t.priority]||Bs.normal;return(0,le.jsxs)("div",{className:"flex items-start gap-3 px-4 py-3 hover:bg-white/2 transition-all ".concat(t.done?"opacity-50":""),"data-testid":"todo-item-".concat(t.id),children:[(0,le.jsx)("button",{onClick:()=>(async t=>{const s=(0,a.A)((0,a.A)({},t),{},{done:!t.done});o(e=>e.map(e=>e.id===t.id?s:e));try{await n.A.patch("".concat(Ms,"/api/admin/todos/").concat(t.id),{done:!t.done},{headers:e()})}catch(l){o(e=>e.map(e=>e.id===t.id?t:e))}})(t),className:"mt-0.5 flex-shrink-0 transition-colors","data-testid":"todo-toggle-".concat(t.id),children:t.done?(0,le.jsx)(d.A,{size:15,className:"text-teal-400"}):(0,le.jsx)(Ps.A,{size:15,className:"text-slate-600 hover:text-slate-400"})}),(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsx)("p",{className:"text-sm ".concat(t.done?"line-through text-slate-600":"text-white"),children:t.text}),(0,le.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[t.due_date&&(0,le.jsx)("span",{className:"text-[10px] text-slate-600",children:Vs(t.due_date)}),(0,le.jsx)("span",{className:"text-[10px] font-bold px-1.5 py-0.5 rounded border ".concat(s.bg," ").concat(s.color),children:s.label})]})]}),(0,le.jsx)("button",{onClick:()=>(async t=>{o(e=>e.filter(e=>e.id!==t));try{await n.A.delete("".concat(Ms,"/api/admin/todos/").concat(t),{headers:e()})}catch(s){O()}})(t.id),className:"text-slate-700 hover:text-red-400 transition-colors flex-shrink-0","data-testid":"todo-delete-".concat(t.id),children:(0,le.jsx)(F.A,{size:12})})]},t.id)})}),D&&(0,le.jsxs)("div",{className:"px-4 py-2 flex items-center gap-2 text-red-400 text-xs border-t border-white/5",children:[(0,le.jsx)(Xe.A,{size:11})," ",D]})]})}var Ws=s(62029);const Hs={nouveau:{label:"Nouveau",color:"bg-blue-500/15 text-blue-400 border-blue-500/25"},"contact\xe9":{label:"Contact\xe9",color:"bg-yellow-500/15 text-yellow-400 border-yellow-500/25"},"sign\xe9":{label:"Sign\xe9 \u2713",color:"bg-teal-500/15 text-teal-400 border-teal-500/25"},"archiv\xe9":{label:"Archiv\xe9",color:"bg-slate-700/40 text-slate-500 border-slate-600/25"}},Ys={starter:"Premiers 500\u20ac/mois",growth:"1 000\u20ac \xe0 3 000\u20ac/mois",elite:"D\xe9passer 5 000\u20ac/mois"};function Gs(e){let t=e.headers;const s=(0,r.useState)([]),i=(0,l.A)(s,2),d=i[0],o=i[1],x=(0,r.useState)({}),m=(0,l.A)(x,2),u=m[0],h=m[1],b=(0,r.useState)(!0),g=(0,l.A)(b,2),f=g[0],j=g[1],v=(0,r.useState)(""),N=(0,l.A)(v,2),y=N[0],w=N[1],_=(0,r.useState)("tous"),k=(0,l.A)(_,2),S=k[0],z=k[1],E=(0,r.useState)(null),R=(0,l.A)(E,2),T=R[0],F=R[1],D=(0,r.useState)(""),I=(0,l.A)(D,2),q=I[0],P=I[1],M=(0,r.useState)(!1),O=(0,l.A)(M,2),V=O[0],H=O[1],Y=async()=>{j(!0);try{const e=(await n.A.get("".concat("","/api/formulaire/leads"),{headers:t()})).data;o(e.leads||[]),h(e.counts||{})}catch(e){Ht.oR.error("Erreur chargement leads")}finally{j(!1)}};(0,r.useEffect)(()=>{Y()},[]);const G=d.filter(e=>"tous"===S||e.status===S).filter(e=>!y||"".concat(e.prenom," ").concat(e.nom," ").concat(e.email," ").concat(e.telephone).toLowerCase().includes(y.toLowerCase()));return(0,le.jsxs)("div",{className:"flex gap-4 h-full min-h-[600px]",children:[(0,le.jsxs)("div",{className:"flex-1 space-y-3 min-w-0",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2",children:[(0,le.jsx)(xs.A,{className:"w-5 h-5 text-teal-400"}),(0,le.jsx)("h2",{className:"text-lg font-bold text-white",children:"Formulaire accompagnement"}),(0,le.jsxs)("span",{className:"text-xs text-slate-500",children:[d.length," candidatures"]})]}),(0,le.jsxs)("button",{onClick:Y,className:"flex items-center gap-1.5 text-xs text-slate-400 hover:text-white px-3 py-1.5 rounded-lg bg-slate-800 transition-colors",children:[(0,le.jsx)(A.A,{className:"w-3 h-3"})," Rafra\xeechir"]})]}),(0,le.jsx)("div",{className:"grid grid-cols-4 gap-2",children:[["tous","Tous",d.length],...Object.entries(Hs).map(e=>{let t=(0,l.A)(e,2),s=t[0];return[s,t[1].label,u[s]||0]})].map(e=>{let t=(0,l.A)(e,3),s=t[0],a=t[1],r=t[2];return(0,le.jsxs)("button",{onClick:()=>z(s),className:"text-center p-2.5 rounded-xl border transition-all text-xs font-semibold ".concat(S===s?"border-teal-500/50 bg-teal-500/8 text-teal-400":"border-white/6 bg-slate-900 text-slate-500 hover:text-slate-300"),children:[(0,le.jsx)("p",{className:"text-base font-black text-white",children:r}),a]},s)})}),(0,le.jsxs)("div",{className:"relative",children:[(0,le.jsx)(U.A,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-slate-500"}),(0,le.jsx)("input",{value:y,onChange:e=>w(e.target.value),placeholder:"Nom, email, t\xe9l\xe9phone...",className:"w-full bg-slate-900 border border-white/8 rounded-xl pl-9 pr-3 py-2 text-sm text-white focus:outline-none focus:border-teal-500/40"})]}),f?(0,le.jsx)("div",{className:"flex justify-center py-12",children:(0,le.jsx)(A.A,{className:"w-5 h-5 text-slate-500 animate-spin"})}):0===G.length?(0,le.jsx)("div",{className:"text-center py-12 text-slate-500 text-sm",children:"Aucune candidature trouv\xe9e"}):(0,le.jsx)("div",{className:"space-y-2",children:G.map(e=>{var t,s;return(0,le.jsx)("div",{"data-testid":"lead-".concat(e.id),onClick:()=>{F(e),P(e.notes||"")},className:"p-4 rounded-xl border cursor-pointer transition-all ".concat((null===T||void 0===T?void 0:T.id)===e.id?"border-teal-500/40 bg-teal-500/5":"border-white/6 bg-slate-900 hover:border-white/12"),children:(0,le.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,le.jsxs)("div",{className:"min-w-0",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,le.jsxs)("p",{className:"text-white font-bold text-sm",children:[e.prenom," ",e.nom]}),(0,le.jsx)("span",{className:"text-[10px] font-bold px-2 py-0.5 rounded-full border ".concat((null===(t=Hs[e.status])||void 0===t?void 0:t.color)||Hs.nouveau.color),children:(null===(s=Hs[e.status])||void 0===s?void 0:s.label)||e.status})]}),(0,le.jsxs)("div",{className:"flex flex-wrap gap-x-3 gap-y-0.5 text-xs text-slate-500",children:[(0,le.jsxs)("span",{className:"flex items-center gap-1",children:[(0,le.jsx)(L.A,{size:10})," ",e.telephone]}),(0,le.jsxs)("span",{className:"flex items-center gap-1",children:[(0,le.jsx)(p.A,{size:10})," ",e.email]})]}),(0,le.jsxs)("div",{className:"flex flex-wrap gap-1.5 mt-2",children:[(0,le.jsx)("span",{className:"text-[10px] px-2 py-0.5 rounded-full bg-blue-500/10 text-blue-400 border border-blue-500/15",children:Ys[e.objectif]||e.objectif}),(0,le.jsx)("span",{className:"text-[10px] px-2 py-0.5 rounded-full bg-slate-800 text-slate-400 border border-white/6",children:e.temps_dispo})]})]}),(0,le.jsx)("div",{className:"text-right flex-shrink-0",children:(0,le.jsx)("p",{className:"text-slate-600 text-[10px]",children:new Date(e.created_at).toLocaleDateString("fr-FR")})})]})},e.id)})})]}),T?(0,le.jsx)("div",{className:"w-72 flex-shrink-0 space-y-3",children:(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/8 rounded-2xl p-4 space-y-3",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 border-b border-white/6 pb-3",children:[(0,le.jsx)("div",{className:"w-9 h-9 rounded-xl bg-teal-500/10 flex items-center justify-center flex-shrink-0",children:(0,le.jsx)(mt.A,{size:16,className:"text-teal-400"})}),(0,le.jsxs)("div",{children:[(0,le.jsxs)("p",{className:"text-white font-bold text-sm",children:[T.prenom," ",T.
1nom]}),(0,le.jsx)("p",{className:"text-slate-500 text-xs",children:new Date(T.created_at).toLocaleDateString("fr-FR",{day:"2-digit",month:"long",year:"numeric"})})]})]}),(0,le.jsxs)("div",{className:"space-y-2 text-sm",children:[(0,le.jsxs)("a",{href:"tel:".concat(T.telephone),className:"flex items-center gap-2 text-teal-400 hover:underline",children:[(0,le.jsx)(L.A,{size:13})," ",T.telephone]}),(0,le.jsxs)("a",{href:"mailto:".concat(T.email),className:"flex items-center gap-2 text-blue-400 hover:underline text-xs break-all",children:[(0,le.jsx)(p.A,{size:13})," ",T.email]})]}),(0,le.jsxs)("div",{className:"space-y-2 pt-1 border-t border-white/6",children:[[{icon:c.A,label:"Objectif",val:Ys[T.objectif]||T.objectif},{icon:Ws.A,label:"Tr\xe9sorerie",val:T.tresorerie},{icon:B.A,label:"Temps dispo",val:T.temps_dispo}].map(e=>{let t=e.icon,s=e.label,a=e.val;return(0,le.jsxs)("div",{children:[(0,le.jsxs)("p",{className:"text-[10px] text-slate-600 uppercase tracking-wide flex items-center gap-1",children:[(0,le.jsx)(t,{size:9})," ",s]}),(0,le.jsx)("p",{className:"text-slate-300 text-xs font-medium mt-0.5",children:a})]},s)}),(0,le.jsxs)("div",{children:[(0,le.jsxs)("p",{className:"text-[10px] text-slate-600 uppercase tracking-wide flex items-center gap-1",children:[(0,le.jsx)(W.A,{size:9})," Motivation"]}),(0,le.jsxs)("p",{className:"text-slate-300 text-xs mt-0.5 leading-relaxed italic",children:['"',T.pourquoi,'"']})]})]}),(0,le.jsxs)("div",{className:"pt-1 border-t border-white/6",children:[(0,le.jsx)("p",{className:"text-[10px] text-slate-500 uppercase tracking-wide mb-1.5",children:"Changer le statut"}),(0,le.jsx)("div",{className:"grid grid-cols-2 gap-1.5",children:Object.entries(Hs).map(e=>{let s=(0,l.A)(e,2),r=s[0],i=s[1];return(0,le.jsxs)("button",{onClick:()=>(async(e,s)=>{try{await n.A.patch("".concat("","/api/formulaire/leads/").concat(e.id),{status:s,notes:q},{headers:t()}),Ht.oR.success("Statut \u2192 ".concat(s)),o(t=>t.map(t=>t.id===e.id?(0,a.A)((0,a.A)({},t),{},{status:s,notes:q}):t)),(null===T||void 0===T?void 0:T.id)===e.id&&F(e=>(0,a.A)((0,a.A)({},e),{},{status:s,notes:q}))}catch(l){Ht.oR.error("Erreur mise \xe0 jour")}})(T,r),className:"text-xs font-semibold px-2 py-1.5 rounded-lg border transition-all flex items-center justify-center gap-1 ".concat(T.status===r?i.color:"border-white/6 text-slate-500 hover:text-slate-300"),children:[T.status===r&&(0,le.jsx)(C.A,{size:9})," ",i.label]},r)})})]}),(0,le.jsxs)("div",{className:"pt-1 border-t border-white/6",children:[(0,le.jsx)("p",{className:"text-[10px] text-slate-500 uppercase tracking-wide mb-1.5",children:"Notes internes"}),(0,le.jsx)("textarea",{value:q,onChange:e=>P(e.target.value),rows:3,placeholder:"Notes sur le lead...",className:"w-full bg-slate-800 border border-white/6 rounded-xl px-3 py-2 text-xs text-white focus:outline-none focus:border-teal-500/30 resize-none"}),(0,le.jsxs)("button",{onClick:async()=>{if(T){H(!0);try{await n.A.patch("".concat("","/api/formulaire/leads/").concat(T.id),{status:T.status,notes:q},{headers:t()}),o(e=>e.map(e=>e.id===T.id?(0,a.A)((0,a.A)({},e),{},{notes:q}):e)),F(e=>(0,a.A)((0,a.A)({},e),{},{notes:q})),Ht.oR.success("Notes sauvegard\xe9es")}catch(e){Ht.oR.error("Erreur sauvegarde notes")}H(!1)}},disabled:V,className:"w-full mt-1.5 py-1.5 bg-slate-800 hover:bg-slate-700 border border-white/8 text-slate-400 hover:text-white text-xs font-semibold rounded-xl transition-all flex items-center justify-center gap-1.5",children:[V?(0,le.jsx)(A.A,{size:11,className:"animate-spin"}):(0,le.jsx)(C.A,{size:11})," Sauvegarder"]})]})]})}):(0,le.jsx)("div",{className:"w-72 flex-shrink-0 flex items-center justify-center text-slate-600 text-sm bg-slate-900/30 border border-white/4 roun
1ded-2xl",children:"Clique sur un lead pour voir le d\xe9tail"})]})}const Ks={complete:{label:"Termin\xe9",color:"text-teal-400 bg-teal-500/10 border-teal-500/25"},running:{label:"En cours",color:"text-yellow-400 bg-yellow-500/10 border-yellow-500/25"},failed:{label:"Erreur",color:"text-red-400 bg-red-500/10 border-red-500/25"},cancelled:{label:"Annul\xe9",color:"text-slate-400 bg-slate-500/10 border-slate-500/25"}};function Js(e){if(!e)return"\u2014";const t=Math.floor((Date.now()-new Date(e))/1e3);return t<60?"".concat(t,"s"):t<3600?"".concat(Math.floor(t/60),"min"):t<86400?"".concat(Math.floor(t/3600),"h"):"".concat(Math.floor(t/86400),"j")}function Qs(e){let t=e.headers;const s=(0,r.useState)([]),i=(0,l.A)(s,2),d=i[0],o=i[1],c=(0,r.useState)(!0),x=(0,l.A)(c,2),m=x[0],u=x[1],p=(0,r.useState)(""),h=(0,l.A)(p,2),b=h[0],g=h[1],f=(0,r.useState)({}),j=(0,l.A)(f,2),v=j[0],N=j[1],y=(0,r.useState)({}),w=(0,l.A)(y,2),_=w[0],S=w[1],C=(0,r.useCallback)(async()=>{try{const e=(await n.A.get("".concat("","/api/admin/deep-scans?limit=100"),{headers:t()})).data;o(e||[])}catch(e){console.error(e)}finally{u(!1)}},[t]);(0,r.useEffect)(()=>{C()},[C]);const z=d.filter(e=>{var t,s;return!b||(null===(t=e.user_email)||void 0===t?void 0:t.includes(b))||(null===(s=e.niche)||void 0===s?void 0:s.toLowerCase().includes(b.toLowerCase()))}),E={total:d.length,complete:d.filter(e=>"complete"===e.status).length,running:d.filter(e=>"running"===e.status).length,failed:d.filter(e=>"failed"===e.status).length};return m?(0,le.jsx)("div",{className:"flex items-center justify-center h-40",children:(0,le.jsx)("div",{className:"w-6 h-6 border-2 border-teal-500/30 border-t-teal-400 rounded-full animate-spin"})}):(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsx)("div",{className:"grid grid-cols-4 gap-3",children:[{label:"Total",val:E.total,icon:xs.A},{label:"Termin\xe9s",val:E.complete,icon:Oe.A,color:"text-teal-400"},{label:"En cours",val:E.running,icon:B.A,color:"text-yellow-400"},{label:"Erreurs",val:E.failed,icon:k.A,color:"text-red-400"}].map(e=>{let t=e.label,s=e.val,a=e.icon,l=e.color,r=void 0===l?"text-slate-300":l;return(0,le.jsxs)("div",{className:"bg-[#0a1020] border border-white/8 rounded-xl p-3 flex items-center gap-3",children:[(0,le.jsx)(a,{size:18,className:r}),(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-xl font-black ".concat(r),children:s}),(0,le.jsx)("p",{className:"text-slate-500 text-xs",children:t})]})]},t)})}),(0,le.jsxs)("div",{className:"flex items-center gap-2",children:[(0,le.jsxs)("div",{className:"relative flex-1",children:[(0,le.jsx)(U.A,{size:14,className:"absolute left-3 top-1/2 -translate-y-1/2 text-slate-500"}),(0,le.jsx)("input",{value:b,onChange:e=>g(e.target.value),placeholder:"Filtrer par email ou niche...",className:"w-full bg-[#0a1020] border border-white/8 rounded-xl pl-9 pr-4 py-2.5 text-sm text-white placeholder-slate-600 focus:border-teal-500/40 outline-none"})]}),(0,le.jsx)("button",{onClick:C,className:"p-2.5 bg-[#0a1020] border border-white/8 rounded-xl text-slate-400 hover:text-white transition-colors",children:(0,le.jsx)(A.A,{size:14})})]}),(0,le.jsx)("div",{className:"bg-[#0a1020] border border-white/8 rounded-2xl overflow-hidden",children:(0,le.jsxs)("table",{className:"w-full text-sm",children:[(0,le.jsx)("thead",{children:(0,le.jsxs)("tr",{className:"border-b border-white/8 text-slate-500 text-xs uppercase tracking-wider",children:[(0,le.jsx)("th",{className:"px-4 py-3 text-left",children:"Membre"}),(0,le.jsx)("th",{className:"px-4 py-3 text-left",children:"Niche"}),(0,le.jsx)("th",{className:"px-3 py-3 text-center",children:"Dur\xe9e"}),(0,le.jsx)("th",{className:"px-3 py-3 text-center",children:"Articles"}),(0,le.jsx)("th",{className:"px-3 py-3 text-center",children:"Statut"}),(0,le.jsx)("th",{className:"px-3 py-3 text-center",children:"Lanc\xe9"}),(0,le.jsx)("th",{className:"px-4 py-3 text-right",children:"Actions"})]})}),(0,le.jsxs)("tbody",{children:[0===z.length&&(0,le.jsx)("tr",{children:(0,le.jsx)("td",{colSpan:7,className:"text-center py-10 text-slate-600",children:"Aucune analyse trouv\xe9e"})}),z.map((e,s)=>{const l=Ks[e.status]||Ks.cancelled;return(0,le.jsxs)("tr",{className:"border-b border-white/5 last:border-0 hover:bg-white/2 transition-colors ".concat("failed"===e.status?"bg-red-500/3":""),children:[(0,le.jsxs)("td",{className:"px-4 py-3",children:[(0,le.jsx)("p",{className:"text-slate-300 text-xs",children:e.user_email||"\u2014"}),(0,le.jsx)("p",{className:"text-slate-600 text-[10px]",children:e.user_name})]}),(0,le.jsxs)("td",{className:"px-4 py-3",children:[(0,le.jsx)("p",{className:"text-white text-xs font-semibold",children:e.niche||"\u2014"}),(0,le.jsx)("p",{className:"text-slate-600 text-[10px]",children:"brand_discovery"===e.mode?"D\xe9couverte":"Analyse marque"})]}),(0,le.jsxs)("td",{className:"px-3 py-3 text-center text-slate-400 text-xs",children:[e.duration_hours,"h"]}),(0,le.jsx)("td",{className:"px-3 py-3 text-center text-teal-400 text-xs font-bold",children:e.items_collected||0}),(0,le.jsxs)("td",{className:"px-3 py-3 text-center",children:[(0,le.jsx)("span",{className:"text-[10px] font-bold px-2 py-0.5 rounded-full border ".concat(l.color),children:l.label}),e.error&&(0,le.jsx)("p",{className:"text-red-400 text-[9px] mt-1 max-w-[120px] truncate",title:e.error,children:e.error})]}),(0,le.jsx)("td",{className:"px-3 py-3 text-center text-slate-500 text-xs",children:Js(e.started_at)}),(0,le.jsx)("td",{className:"px-4 py-3",children:(0,le.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[("failed"===e.status||"running"===e.status)&&(0,le.jsx)("button",{onClick:()=>(async e=>{N(t=>(0,a.A)((0,a.A)({},t),{},{[e.id]:!0}));try{await n.A.post("".concat("","/api/admin/deep-scans/").concat(e.id,"/regen"),{},{headers:t()}),setTimeout(C,2e3)}catch(r){var s,l;alert("Erreur r\xe9g\xe9n\xe9ration : "+((null===(s=r.response)||void 0===s||null===(l=s.data)||void 0===l?void 0:l.detail)||r.message))}N(t=>(0,a.A)((0,a.A)({},t),{},{[e.id]:!1}))})(e),disabled:v[e.id],title:"R\xe9g\xe9n\xe9rer le rapport",className:"p-1.5 rounded-lg bg-yellow-500/10 border border-yellow-500/20 text-yellow-400 hover:bg-yellow-500/20 transition-colors disabled:opacity-50",children:(0,le.jsx)(A.A,{size:12,className:v[e.id]?"animate-spin":""})}),"complete"===e.status&&e.report&&(0,le.jsx)("button",{onClick:()=>(async e=>{S(t=>(0,a.A)((0,a.A)({},t),{},{[e.id]:!0}));try{var s;const a=await n.A.get("".concat("","/api/admin/deep-scans/").concat(e.id,"/pdf"),{headers:t(),responseType:"blob"}),l=URL.createObjectURL(a.data),r=document.createElement("a");r.href=l,r.download="rapport-".concat((null===(s=e.niche)||void 0===s?void 0:s.slice(0,30).replace(/\s/g,"-"))||"niche",".pdf"),r.click(),URL.revokeObjectURL(l)}catch(l){alert("Rapport non disponible ou analyse non termin\xe9e.")}S(t=>(0,a.A)((0,a.A)({},t),{},{[e.id]:!1}))})(e),disabled:_[e.id],title:"T\xe9l\xe9charger le PDF",className:"p-1.5 rounded-lg bg-teal-500/10 border border-teal-500/20 text-teal-400 hover:bg-teal-500/20 transition-colors disabled:opacity-50",children:_[e.id]?(0,le.jsx)("div",{className:"w-3 h-3 border border-teal-400/40 border-t-teal-400 rounded-full animate-spin"}):(0,le.jsx)(Y.A,{size:12})})]})})]},e.id)})]})]})})]})}var Zs=s(87977),Xs=s(98142),$s=s(9463);function ea(e){let t=e.headers;const s=(0,r.useState)([]),i=(0,l.A)(s,2),d=i[0],o=i[1],c=(0,r.useState)(!0),x=(0,l.A)(c,2),m=x[0],u=x[1],h=(0,r.useState)("inbox"),b=(0,l.A)(h,2),g=b[0],f=b[1],j=(0,r.useState)(null),v=(0,l.A)(j,2),N=v[0],y=v[1],w=(0,r.useState)({to_email:"",from_email:"[email protected]",subject:"",html:""}),_=(0,l.A)(w,2),k=_[0],S=_[1],C=(0,r.useState)(!1),z=(0,l.A)(C,2),E=z[0],R=z[1],T=async()=>{u(!0);try{const e=(await n.A.get("".concat("","/api/admin/inbox"),{headers:t})).data;o(e||[])}catch(e){console.error("Erreur chargement emails",e)}finally{u(!1)}};(0,r.useEffect)(()=>{T()},[]);const I=async(e,s)=>{if(s&&s.stopPropagation(),window.confirm("Supprimer cet email ?"))try{await n.A.delete("".concat("","/api/admin/inbox/").concat(e),{headers:t}),o(d.filter(t=>t.id!==e)),N&&N.id===e&&y(null)}catch(a){console.error("Erreur suppression",a)}},L=e=>{y(e),e.read||"inbox"!==e.folder||(async e=>{try{await n.A.put("".concat("","/api/admin/inbox/").concat(e,"/read"),{},{headers:t}),o(d.map(t=>
1t.id===e?(0,a.A)((0,a.A)({},t),{},{read:!0}):t))}catch(s){console.error("Erreur mark as read",s)}})(e.id)},q=d.filter(e=>e.folder===g);return(0,le.jsxs)("div",{className:"flex h-[800px] bg-gray-900 rounded-xl border border-white/5 overflow-hidden",children:[(0,le.jsxs)("div",{className:"w-64 border-r border-white/5 bg-gray-900/50 flex flex-col",children:[(0,le.jsxs)("div",{className:"p-4 border-b border-white/5 flex items-center gap-2",children:[(0,le.jsx)(p.A,{className:"w-5 h-5 text-purple-400"}),(0,le.jsx)("h2",{className:"font-semibold text-white",children:"Bo\xeete Mail"})]}),(0,le.jsxs)("div",{className:"p-4 flex-1 space-y-2",children:[(0,le.jsxs)("button",{onClick:()=>{f("compose"),y(null)},className:"w-full flex items-center gap-3 px-4 py-2.5 rounded-lg text-sm font-medium transition-colors ".concat("compose"===g?"bg-purple-500 text-white":"bg-white/5 text-gray-300 hover:bg-white/10"),children:[(0,le.jsx)(_e.A,{className:"w-4 h-4"})," Nouveau message"]}),(0,le.jsxs)("div",{className:"pt-4 space-y-1",children:[(0,le.jsxs)("button",{onClick:()=>{f("inbox"),y(null)},className:"w-full flex items-center justify-between px-4 py-2 rounded-lg text-sm transition-colors ".concat("inbox"===g?"bg-white/10 text-white":"text-gray-400 hover:bg-white/5 hover:text-white"),children:[(0,le.jsxs)("div",{className:"flex items-center gap-3",children:[(0,le.jsx)(Xs.A,{className:"w-4 h-4"})," R\xe9ception"]}),d.filter(e=>"inbox"===e.folder&&!e.read).length>0&&(0,le.jsx)("span",{className:"bg-purple-500 text-white text-[10px] font-bold px-2 py-0.5 rounded-full",children:d.filter(e=>"inbox"===e.folder&&!e.read).length})]}),(0,le.jsxs)("button",{onClick:()=>{f("sent"),y(null)},className:"w-full flex items-center gap-3 px-4 py-2 rounded-lg text-sm transition-colors ".concat("sent"===g?"bg-white/10 text-white":"text-gray-400 hover:bg-white/5 hover:text-white"),children:[(0,le.jsx)(D.A,{className:"w-4 h-4"})," Envoy\xe9s"]})]})]})]}),(0,le.jsxs)("div",{className:"flex-1 flex flex-col bg-gray-900",children:["compose"===g&&(0,le.jsxs)("div",{className:"flex-1 flex flex-col",children:[(0,le.jsx)("div",{className:"p-4 border-b border-white/5 flex items-center justify-between",children:(0,le.jsx)("h3",{className:"text-white font-medium",children:"Nouveau message"})}),(0,le.jsx)("div",{className:"p-6 flex-1 overflow-y-auto",children:(0,le.jsxs)("form",{onSubmit:async e=>{e.preventDefault(),R(!0);try{await n.A.post("".concat("","/api/admin/inbox/send"),k,{headers:t}),alert("Email envoy\xe9 avec succ\xe8s !"),S((0,a.A)((0,a.A)({},k),{},{to_email:"",subject:"",html:""})),f("sent"),T()}catch(s){console.error("Erreur envoi email",s),alert("Erreur lors de l'envoi de l'email.")}finally{R(!1)}},className:"max-w-2xl space-y-4",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"block text-xs text-gray-400 mb-1",children:"De (Exp\xe9diteur)"}),(0,le.jsx)("input",{type:"email",required:!0,value:k.from_email,onChange:e=>S((0,a.A)((0,a.A)({},k),{},{from_email:e.target.value})),className:"w-full bg-gray-800 border border-white/10 rounded-lg px-3 py-2 text-white focus:outline-none focus:border-purple-500",placeholder:"[email protected]"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"block text-xs text-gray-400 mb-1",children:"\xc0 (Destinataire)"}),(0,le.jsx)("input",{type:"email",required:!0,value:k.to_email,onChange:e=>S((0,a.A)((0,a.A)({},k),{},{to_email:e.target.value})),className:"w-full bg-gray-800 border border-white/10 rounded-lg px-3 py-2 text-white focus:outline-none focus:border-purple-500",placeholder:"[email protected]"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"block text-xs text-gray-400 mb-1",children:"Sujet"}),(0,le.jsx)("input",{type:"text",required:!0,value:k.subject,onChange:e=>S((0,a.A)((0,a.A)({},k),{},{subject:e.target.value})),className:"w-full bg-gray-800 border border-white/10 rounded-lg px-3 py-2 text-white focus:outline-none focus:border-purple-500",placeholder:"Sujet de l'email"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"block text-xs text-gray-400 mb-1",children:"Message (HTML support\xe9)"}),(0,le.jsx)("textarea",{required:!0,rows:12,value:k.html,onChange:e=>S((0,a.A)((0,a.A)({},k),{},{html:e.target.value})),className:"w-full bg-gray-800 border border-white/10 rounded-lg px-3 py-2 text-white focus:outline-none focus:border-purple-500 font-mono text-sm",placeholder:"<p>Bonjour,</p>"})]}),(0,le.jsx)("div",{className:"pt-2",children:(0,le.jsxs)("button",{type:"submit",disabled:E,className:"flex items-center gap-2 bg-purple-500 hover:bg-purple-600 text-white px-6 py-2.5 rounded-lg text-sm font-medium transition-colors disabled:opacity-50",children:[E?(0,le.jsx)(A.A,{className:"w-4 h-4 animate-spin"}):(0,le.jsx)(D.A,{className:"w-4 h-4"}),E?"Envoi...":"Envoyer"]})})]})})]}),("inbox"===g||"sent"===g)&&(0,le.jsx)("div",{className:"flex-1 flex flex-col",children:N?(0,le.jsxs)("div",{className:"flex-1 flex flex-col",children:[(0,le.jsxs)("div",{className:"p-4 border-b border-white/5 flex items-center justify-between bg-gray-800/50",children:[(0,le.jsxs)("button",{onClick:()=>y(null),className:"flex items-center gap-2 text-gray-400 hover:text-white transition-colors",children:[(0,le.jsx)($s.A,{className:"w-4 h-4"})," Retour"]}
1),(0,le.jsxs)("button",{onClick:()=>I(N.id),className:"flex items-center gap-2 text-gray-400 hover:text-red-400 transition-colors",children:[(0,le.jsx)(F.A,{className:"w-4 h-4"})," Supprimer"]})]}),(0,le.jsxs)("div",{className:"p-6 border-b border-white/5 flex-shrink-0",children:[(0,le.jsx)("h2",{className:"text-xl font-medium text-white mb-4",children:N.subject||"(Sans sujet)"}),(0,le.jsxs)("div",{className:"flex items-center justify-between text-sm",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("span",{className:"text-gray-500",children:"De : "}),(0,le.jsx)("span",{className:"text-gray-300",children:N.from_email})]}),(0,le.jsx)("div",{className:"text-gray-500",children:new Date(N.created_at).toLocaleString("fr-FR")})]}),(0,le.jsxs)("div",{className:"text-sm mt-1",children:[(0,le.jsx)("span",{className:"text-gray-500",children:"\xc0 : "}),(0,le.jsx)("span",{className:"text-gray-300",children:N.to_email})]})]}),(0,le.jsx)("div",{className:"flex-1 p-6 overflow-y-auto bg-white text-gray-900 rounded-b-xl min-h-[400px]",children:N.html?(0,le.jsx)("div",{className:"prose prose-sm max-w-none",dangerouslySetInnerHTML:{__html:Zs.A.sanitize(N.html,{FORBID_TAGS:["script","style","iframe","object","embed","form"],FORBID_ATTR:["srcdoc"]})}}):(0,le.jsx)("pre",{className:"whitespace-pre-wrap font-sans text-sm",children:N.text})})]}):(0,le.jsxs)(le.Fragment,{children:[(0,le.jsxs)("div",{className:"p-4 border-b border-white/5 flex items-center justify-between",children:[(0,le.jsx)("h3",{className:"text-white font-medium capitalize",children:"inbox"===g?"Bo\xeete de r\xe9ception":"Messages envoy\xe9s"}),(0,le.jsx)("button",{onClick:T,className:"text-gray-400 hover:text-white p-1 rounded-md hover:bg-white/10 transition-colors",children:(0,le.jsx)(A.A,{className:"w-4 h-4 ".concat(m?"animate-spin":"")})})]}),(0,le.jsx)("div",{className:"flex-1 overflow-y-auto",children:m?(0,le.jsx)("div",{className:"flex justify-center p-8",children:(0,le.jsx)(A.A,{className:"w-6 h-6 text-purple-500 animate-spin"})}):0===q.length?(0,le.jsxs)("div",{className:"flex flex-col items-center justify-center h-full text-gray-500",children:[(0,le.jsx)(Xs.A,{className:"w-12 h-12 mb-3 opacity-20"}),(0,le.jsx)("p",{children:"Aucun message."})]}):(0,le.jsx)("div",{className:"divide-y divide-white/5",children:q.map(e=>(0,le.jsxs)("div",{onClick:()=>L(e),className:"p-4 flex items-center justify-between cursor-pointer transition-colors hover:bg-white/5 ".concat(e.read?"":"bg-white/2"),children:[(0,le.jsxs)("div",{className:"flex items-center gap-4 flex-1 min-w-0",children:[!e.read&&(0,le.jsx)("div",{className:"w-2 h-2 rounded-full bg-purple-500 shrink-0"}),(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,le.jsx)("span",{className:"text-sm truncate ".concat(e.read?"text-gray-300":"text-white font-medium"),children:"inbox"===g?e.from_email:e.to_email}),(0,le.jsx)("span",{className:"text-xs text-gray-500 shrink-0 ml-4",children:new Date(e.created_at).toLocaleDateString("fr-FR",{day:"numeric",month:"short",hour:"2-digit",minute:"2-digit"})})]}),(0,le.jsx)("div",{className:"text-sm truncate ".concat(e.read?"text-gray-500":"text-gray-300 font-medium"),children:e.subject||"(Sans sujet)"})]})]}),(0,le.jsx)("div",{className:"pl-4",children:(0,le.jsx)("button",{onClick:t=>I(e.id,t),className:"text-gray-500 hover:text-red-400 p-2 rounded-lg hover:bg-white/5 transition-colors",children:(0,le.jsx)(F.A,{className:"w-4 h-4"})})})]},e.id))})})]})})]})]})}var ta=s(62708);const sa=window.location.origin,aa=[{value:"feature",label:"Nouvelle fonctionnalit\xe9",emoji:"\u26a1"},{value:"announcement",label:"Annonce",emoji:"\ud83d\udce2"},{value:"live",label:"Live",emoji:"\ud83d\udd34"},{value:"module",label:"Nouveau module",emoji:"\ud83d\udce6"},{value:"offer",label:"Offre",emoji:"\ud83c\udff7\ufe0f"},{value:"reminder",label:"Rappel Discord/Skool",emoji:"\ud83d\udd14"},{value:"update",label:"Mise \xe0 jour",emoji:"\ud83d\udd04"}],la=["starter","elite","vip","accompagnement","boost"],ra={title:"",content:"",type:"announcement",is_featured:!1,emoji:"",link:"",link_label:"",target_plans:[],publish_at:""};function ia(e){let t=e.initial,s=void 0===t?ra:t,i=e.onSubmit,n=e.onCancel,d=e.loading;const o=(0,r.useState)(s),c=(0,l.A)(o,2),x=c[0],m=c[1];return(0,le.jsxs)("form",{onSubmit:e=>{e.preventDefault(),i(x)},className:"space-y-4",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-xs text-slate-400 font-semibold mb-1 block",children:"Titre *"}),(0,le.jsx)("input",{value:x.title,onChange:e=>m(t=>(0,a.A)((0,a.A)({},t),{},{title:e.target.value})),required:!0,placeholder:"Titre de l'actualit\xe9",className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2.5 text-sm text-white"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-xs text-slate-400 font-semibold mb-1 block",children:"Contenu *"}),(0,le.jsx)("textarea",{value:x.content,onChange:e=>m(t=>(0,a.A)((0,a.A)({},t),{},{content:e.target.value})),required:!0,rows:3,placeholder:"Description d\xe9taill\xe9e\u2026",className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2.5 text-sm text-white resize-none"})]}),(0,le.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-xs text-slate-400 font-semibold mb-1 block",children:"Type"}
1),(0,le.jsx)("select",{value:x.type,onChange:e=>m(t=>(0,a.A)((0,a.A)({},t),{},{type:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2.5 text-sm text-slate-300",children:aa.map(e=>(0,le.jsxs)("option",{value:e.value,children:[e.emoji," ",e.label]},e.value))})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-xs text-slate-400 font-semibold mb-1 block",children:"Emoji (optionnel)"}),(0,le.jsx)("input",{value:x.emoji,onChange:e=>m(t=>(0,a.A)((0,a.A)({},t),{},{emoji:e.target.value})),placeholder:"ex: \ud83d\ude80 \ud83c\udfaf \u2728",className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2.5 text-sm text-white"})]})]}),(0,le.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-xs text-slate-400 font-semibold mb-1 block",children:"Lien CTA (optionnel)"}),(0,le.jsx)("input",{value:x.link,onChange:e=>m(t=>(0,a.A)((0,a.A)({},t),{},{link:e.target.value})),placeholder:"https://\u2026",className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2.5 text-sm text-white"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-xs text-slate-400 font-semibold mb-1 block",children:"Label du bouton"}),(0,le.jsx)("input",{value:x.link_label,onChange:e=>m(t=>(0,a.A)((0,a.A)({},t),{},{link_label:e.target.value})),placeholder:"Voir plus",className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2.5 text-sm text-white"})]})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-xs text-slate-400 font-semibold mb-2 block",children:"Plans cibles (vide = tous)"}),(0,le.jsx)("div",{className:"flex flex-wrap gap-1.5",children:la.map(e=>(0,le.jsx)("button",{type:"button",onClick:()=>{return t=e,m(e=>(0,a.A)((0,a.A)({},e),{},{target_plans:e.target_plans.includes(t)?e.target_plans.filter(e=>e!==t):[...e.target_plans,t]}));var t},className:"px-2.5 py-1 rounded-lg text-xs font-semibold border transition-all ".concat(x.target_plans.includes(e)?"bg-teal-600/20 border-teal-500/30 text-teal-400":"bg-slate-800 border-white/8 text-slate-500 hover:text-white"),children:e},e))})]}),(0,le.jsx)("div",{className:"flex items-center gap-4",children:(0,le.jsxs)("button",{type:"button",onClick:()=>{return e="is_featured",m(t=>(0,a.A)((0,a.A)({},t),{},{[e]:!t[e]}));var e},className:"flex items-center gap-1.5 px-3 py-2 rounded-xl text-xs font-semibold border transition-all ".concat(x.is_featured?"bg-amber-500/15 border-amber-500/25 text-amber-400":"bg-slate-800 border-white/8 text-slate-400 hover:text-white"),children:[x.is_featured?(0,le.jsx)(z.A,{size:11,fill:"currentColor"}):(0,le.jsx)(ta.A,{size:11}),"Mettre en avant"]})}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-xs text-slate-400 font-semibold mb-1 block",children:"Date de publication (vide = maintenant)"}),(0,le.jsx)("input",{type:"datetime-local",value:x.publish_at,onChange:e=>m(t=>(0,a.A)((0,a.A)({},t),{},{publish_at:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2.5 text-sm text-slate-300"})]}),(0,le.jsxs)("div",{className:"flex gap-2 pt-1",children:[(0,le.jsx)("button",{type:"button",onClick:n,className:"flex-1 py-2.5 rounded-xl bg-slate-800 border border-white/8 text-slate-400 text-sm hover:text-white transition-all",children:"Annuler"}),(0,le.jsxs)("button",{type:"submit",disabled:d,"data-testid":"admin-news-submit-btn",className:"flex-1 py-2.5 rounded-xl bg-teal-600 text-white text-sm font-bold transition-all hover:bg-teal-500 disabled:opacity-50 flex items-center justify-center gap-2",children:[d?(0,le.jsx)(we.A,{size:14,className:"animate-spin"}):(0,le.jsx)(C.A,{size:14}
1),s.title?"Mettre \xe0 jour":"Publier"]})]})]})}function na(){const e=(0,se.A)().authHeaders,t=(0,r.useState)([]),s=(0,l.A)(t,2),i=s[0],d=s[1],o=(0,r.useState)(!0),c=(0,l.A)(o,2),x=c[0],m=c[1],u=(0,r.useState)(!1),p=(0,l.A)(u,2),h=p[0],b=p[1],g=(0,r.useState)(!1),f=(0,l.A)(g,2),j=f[0],v=f[1],N=(0,r.useState)(null),y=(0,l.A)(N,2),w=y[0],k=y[1],S=(0,r.useCallback)(async()=>{m(!0);try{const t=await n.A.get("".concat(sa,"/api/news/admin/list"),{headers:e()});d(t.data.news||[])}catch(t){}m(!1)},[e]);(0,r.useEffect)(()=>{S()},[S]);const C=async t=>{b(!0);try{const s=await n.A.put("".concat(sa,"/api/news/admin/").concat(w.id),t,{headers:e()});d(e=>e.map(e=>e.id===w.id?s.data:e)),k(null)}catch(l){var s,a;alert((null===l||void 0===l||null===(s=l.response)||void 0===s||null===(a=s.data)||void 0===a?void 0:a.detail)||"Erreur")}b(!1)};return(0,le.jsxs)("div",{className:"space-y-5","data-testid":"admin-news-panel",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h2",{className:"text-xl font-bold text-white",children:"Actualit\xe9s membres"}),(0,le.jsxs)("p",{className:"text-slate-500 text-xs mt-0.5",children:[i.length," actualit\xe9s publi\xe9es"]})]}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsx)("button",{onClick:S,className:"p-2 rounded-xl bg-slate-900 border border-white/8 text-slate-400 hover:text-white transition-all",children:(0,le.jsx)(A.A,{size:14})}),(0,le.jsxs)("button",{onClick:()=>{v(!0),k(null)},"data-testid":"admin-news-create-btn",className:"flex items-center gap-1.5 px-3 py-2 bg-teal-600 text-white text-sm font-semibold rounded-xl hover:bg-teal-500 transition-all",children:[(0,le.jsx)(_.A,{size:13})," Nouvelle actualit\xe9"]})]})]}),j&&!w&&(0,le.jsxs)("div",{className:"bg-slate-900 border border-teal-500/20 rounded-2xl p-5",children:[(0,le.jsx)("h3",{className:"text-white font-bold text-sm mb-4",children:"Cr\xe9er une actualit\xe9"}),(0,le.jsx)(ia,{onSubmit:async t=>{b(!0);try{const s=await n.A.post("".concat(sa,"/api/news/admin"),t,{headers:e()});d(e=>[s.data,...e]),v(!1)}catch(l){var s,a;alert((null===l||void 0===l||null===(s=l.response)||void 0===s||null===(a=s.data)||void 0===a?void 0:a.detail)||"Erreur")}b(!1)},onCancel:()=>v(!1),loading:h})]}),x?(0,le.jsx)("div",{className:"text-center py-12 text-slate-500",children:(0,le.jsx)(we.A,{size:16,className:"animate-spin mx-auto"})}):0===i.length?(0,le.jsx)("div",{className:"text-center py-12 text-slate-500 text-sm border border-dashed border-white/8 rounded-2xl",children:"Aucune actualit\xe9. Cr\xe9e la premi\xe8re !"}):(0,le.jsx)("div",{className:"space-y-2",children:i.map(t=>{var s,l;return(0,le.jsx)("div",{className:"bg-slate-900 border border-white/5 rounded-xl px-4 py-3",children:(null===w||void 0===w?void 0:w.id)===t.id?(0,le.jsx)("div",{className:"pt-1",children:(0,le.jsx)(ia,{initial:(0,a.A)({},w),onSubmit:C,onCancel:()=>k(null),loading:h})}):(0,le.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 flex-wrap mb-1",children:[t.emoji&&(0,le.jsx)("span",{className:"text-base",children:t.emoji}),(0,le.jsx)("p",{className:"text-white font-semibold text-sm truncate",children:t.title}),t.is_featured&&(0,le.jsx)(z.A,{size:10,className:"text-amber-400 flex-shrink-0",fill:"currentColor"}),t.is_new&&(0,le.jsx)("span",{className:"text-[9px] px-1.5 py-0.5 bg-blue-500/20 border border-blue-500/30 text-blue-400 rounded-full font-bold",children:"NEW"})]}),(0,le.jsx)("p",{className:"text-slate-500 text-[11px] truncate",children:t.content}),(0,le.jsxs)("div",{className:"flex items-center gap-3 mt-1 text-[10px] text-slate-600",children:[(0,le.jsx)("span",{className:"capitalize",children:t.type}),(0,le.jsx)("span",{children:"\xb7"}),(0,le.jsx)("span",{children:null===(s=t.publish_at||t.created_at)||void 0===s?void 0:s.slice(0,16).replace("T"," ")}),(null===(l=t.target_plans)||void 0===l?void 0:l.length)>0&&(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)("span",{children:"\xb7"}),(0,le.jsxs)("span",{className:"text-amber-600",children:["Plans: ",t.target_plans.join(", ")
1]})]})]})]}),(0,le.jsxs)("div",{className:"flex items-center gap-1 flex-shrink-0",children:[(0,le.jsx)("button",{onClick:()=>{k(t),v(!1)},"data-testid":"edit-news-".concat(t.id),className:"p-1.5 rounded-lg bg-slate-800 border border-white/8 text-slate-400 hover:text-white transition-all",children:(0,le.jsx)(I.A,{size:11})}),(0,le.jsx)("button",{onClick:()=>(async t=>{if(window.confirm("Supprimer cette actualit\xe9 ?"))try{await n.A.delete("".concat(sa,"/api/news/admin/").concat(t),{headers:e()}),d(e=>e.filter(e=>e.id!==t))}catch(l){var s,a;alert((null===l||void 0===l||null===(s=l.response)||void 0===s||null===(a=s.data)||void 0===a?void 0:a.detail)||"Erreur")}})(t.id),"data-testid":"delete-news-".concat(t.id),className:"p-1.5 rounded-lg bg-red-600/10 border border-red-500/15 text-red-400 hover:text-red-300 transition-all",children:(0,le.jsx)(F.A,{size:11})})]})]})},t.id)})})]})}function da(e){let t=e.headers;const s=window.location.origin,a=(0,r.useState)(null),i=(0,l.A)(a,2),d=i[0],c=i[1],x=(0,r.useState)(!0),m=(0,l.A)(x,2),u=m[0],p=m[1];(0,r.useEffect)(()=>{h()},[]);const h=()=>{p(!0),n.A.get("".concat(s,"/api/admin/vintytrack/stats"),{headers:t()}).then(e=>c(e.data)).catch(e=>console.error("Erreur chargement stats VintyTrack:",e)).finally(()=>p(!1))};return u?(0,le.jsx)("div",{className:"text-center py-12 text-slate-500 text-sm",children:"Chargement des donn\xe9es VintyTrack..."}):d?(0,le.jsxs)("div",{className:"space-y-6 p-2",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h2",{className:"text-xl font-black text-white",children:"Superviseur VintyTrack"}),(0,le.jsx)("p",{className:"text-slate-500 text-xs mt-0.5",children:"Surveillance globale des trackers V2 et annonces collect\xe9es"})]}),(0,le.jsx)("button",{onClick:h,className:"p-2 rounded-lg text-slate-400 hover:text-white transition-colors bg-slate-800/50",children:(0,le.jsx)(A.A,{size:15})})]}),(0,le.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-3",children:[(0,le.jsxs)("div",{className:"bg-slate-900/60 border border-white/5 rounded-2xl p-4",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,le.jsx)(o.A,{size:16,className:"text-teal-400"}),(0,le.jsx)("p",{className:"text-slate-400 text-xs font-semibold",children:"Trackers Actifs"})]}),(0,le.jsx)("p",{className:"text-3xl font-black text-white",children:d.active_trackers})]}),(0,le.jsxs)("div",{className:"bg-slate-900/60 border border-white/5 rounded-2xl p-4",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,le.jsx)(Ae.A,{size:16,className:"text-blue-400"}),(0,le.jsx)("p",{className:"text-slate-400 text-xs font-semibold",children:"Annonces Archiv\xe9es"})]}),(0,le.jsx)("p",{className:"text-3xl font-black text-white",children:d.total_items})]}),(0,le.jsxs)("div",{className:"bg-slate-900/60 border border-white/5 rounded-2xl p-4",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,le.jsx)(B.A,{size:16,className:"text-purple-400"}),(0,le.jsx)("p",{className:"text-slate-400 text-xs font-semibold",children:"Runs (24h)"})]}),(0,le.jsx)("p",{className:"text-3xl font-black text-white",children:d.recent_runs_24h})]})]}),(0,le.jsxs)("div",{className:"bg-slate-900/60 border border-white/5 rounded-2xl overflow-hidden mt-6",children:[(0,le.jsx)("div",{className:"p-4 border-b border-white/5 flex items-center justify-between",children:(0,le.jsxs)("h3",{className:"text-white font-bold text-sm flex items-center gap-2",children:[(0,le.jsx)(E.A,{size:16,className:"text-teal-400"})," Flux en direct (20 derni\xe8res annonces)"]})}),d.recent_items&&d.recent_items.length>0?(0,le.jsx)("div",{className:"overflow-x-auto",children:(0,le.jsxs)("table",{className:"w-full text-left border-collapse",children:[(0,le.jsx)("thead",{children:(0,le.jsxs)("tr",{className:"bg-white/[0.02]",children:[(0,le.jsx)("th",{className:"px-4 py-3 text-[10px] uppercase font-semibold text-slate-500",children:"Image"}),(0,le.jsx)("th",{className:"px-4 py-3 text-[10px] uppercase font-semibold text-slate-500",children:"Titre"}),(0,le.jsx)("th",{className:"px-4 py-3 text-[10px] uppercase font-semibold text-slate-500",children:"Prix"}),(0,le.jsx)("th",{className:"px-4 py-3 text-[10px] uppercase font-semibold text-slate-500",children:"Marque / Taille"}),(0,le.jsx)("th",{className:"px-4 py-3 text-[10px] uppercase font-semibold text-slate-500",children:"D\xe9couverte"}),(0,le.jsx)("th",{className:"px-4 py-3 text-[10px] uppercase font-semibold text-slate-500 text-right",children:"Lien"})]})}),(0,le.jsx)("tbody",{className:"divide-y divide-white/5",children:d.recent_items.map(e=>(0,le.jsxs)("tr",{className:"hover:bg-white/[0.02] transition-colors",children:[(0,le.jsx)("td",{className:"px-4 py-3",children:e.photo_url?(0,le.jsx)("img",{src:e.photo_url,alt:"Item",className:"w-10 h-10 object-cover rounded-md border border-white/10"}):(0,le.jsx)("div",{className:"w-10 h-10 rounded-md bg-slate-800 flex items-center justify-center",children:(0,le.jsx)(Ae.A,{size:14,className:"text-slate-500"})})}),(0,le.jsx)("td",{className:"px-4 py-3 text-xs text-slate-300 font-medium max-w-[200px] truncate",title:e.title,children:e.title||"Sans titre"}),(0,le.jsx)("td",{className:"px-4 py-3 text-sm font-bold text-teal-400",children:e.price?"".concat(e.price.toFixed(2)," \u20ac"):"--"}),(0,le.jsxs)("td",{className:"px-4 py-3 text-xs text-slate-400",children:[(0,le.jsx)("div",{children:e.brand||"--"}),(0,le.jsx)("div",{className:"text-[10px] text-slate-500 mt-0.5",children:e.size||"--"})]}),(0,le.jsx)("td",{className:"px-4 py-3 text-[10px] text-slate-500",children:new Date(e.tracked_at).toLocaleStr
1ing("fr-FR",{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit"})}),(0,le.jsx)("td",{className:"px-4 py-3 text-right",children:e.url&&(0,le.jsxs)("a",{href:e.url,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1 px-2 py-1 bg-white/5 hover:bg-white/10 text-white rounded text-[10px] transition-colors",children:[(0,le.jsx)(E.A,{size:12})," Vinted"]})})]},e.id))})]})}):(0,le.jsx)("div",{className:"p-8 text-center text-slate-500 text-xs",children:"Aucune annonce collect\xe9e pour le moment."})]})]}):(0,le.jsx)("div",{className:"text-center py-12 text-red-400 text-sm",children:"Impossible de charger les statistiques."})}var oa=s(15521),ca=s(42227);function xa(e){let t=e.headers;const s=(0,r.useState)([]),a=(0,l.A)(s,2),i=a[0],d=a[1],o=(0,r.useState)(!0),c=(0,l.A)(o,2),x=c[0],m=c[1],p=(0,r.useState)(""),h=(0,l.A)(p,2),b=h[0],g=h[1],f=window.location.origin,j=async()=>{m(!0);try{const e=await n.A.get("".concat(f,"/api/admin/audit/logs?limit=100"),{headers:t()});d(e.data.logs||[]),g("")}catch(e){g("Impossible de charger les logs d'audit.")}finally{m(!1)}};(0,r.useEffect)(()=>{j()},[]);const v=e=>{switch(e){case"SUCCESS":return"text-emerald-400 bg-emerald-400/10 border-emerald-400/20";case"FAILURE":return"text-amber-400 bg-amber-400/10 border-amber-400/20";case"BLOCKED":return"text-red-400 bg-red-400/10 border-red-400/20";default:return"text-slate-400 bg-slate-800 border-slate-700"}};return x?(0,le.jsx)("div",{className:"text-center py-12 text-slate-500 text-sm",children:"Chargement..."}):(0,le.jsxs)("div",{className:"space-y-6 p-2",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsxs)("div",{children:[(0,le.jsxs)("h2",{className:"text-xl font-black text-white flex items-center gap-2",children:[(0,le.jsx)(u.A,{className:"text-teal-400",size:24}),"Logs de S\xe9curit\xe9 & Audit"]}),(0,le.jsx)("p",{className:"text-slate-500 text-xs mt-0.5",children:"Derni\xe8res connexions, inscriptions et r\xe9initialisations"})]}),(0,le.jsx)("button",{onClick:j,className:"p-2 rounded-lg bg-slate-800 text-slate-400 hover:text-white transition-colors border border-white/5",children:(0,le.jsx)(A.A,{size:15})})]}),b&&(0,le.jsxs)("div",{className:"bg-red-500/10 border border-red-500/20 rounded-xl p-4 flex items-center gap-3",children:[(0,le.jsx)(Xe.A,{className:"text-red-400 flex-shrink-0",size:16}),(0,le.jsx)("p",{className:"text-red-400 text-sm",children:b})]}),(0,le.jsx)("div",{className:"bg-slate-900/60 border border-white/6 rounded-2xl overflow-hidden",children:(0,le.jsx)("div",{className:"overflow-x-auto",children:(0,le.jsxs)("table",{className:"w-full text-left text-sm",children:[(0,le.jsx)("thead",{className:"bg-slate-800/50 text-slate-400 text-xs uppercase tracking-wider",children:(0,le.jsxs)("tr",{children:[(0,le.jsx)("th",{className:"px-4 py-3 font-semibold",children:"Date & Heure"}),(0,le.jsx)("th",{className:"px-4 py-3 font-semibold",children:"\xc9v\xe9nement"}),(0,le.jsx)("th",{className:"px-4 py-3 font-semibold",children:"Utilisateur"}),(0,le.jsx)("th",{className:"px-4 py-3 font-semibold",children:"Statut"}),(0,le.jsx)("th",{className:"px-4 py-3 font-semibold",children:"D\xe9tails / IP"})]})}),(0,le.jsx)("tbody",{className:"divide-y divide-white/5",children:0===i.length?(0,le.jsx)("tr",{children:(0,le.jsx)("td",{colSpan:5,className:"px-4 py-8 text-center text-slate-500",children:"Aucun log trouv\xe9."})}):i.map(e=>(0,le.jsxs)("tr",{className:"hover:bg-slate-800/30 transition-colors",children:[(0,le.jsx)("td",{className:"px-4 py-3 whitespace-nowrap",children:(0,le.jsxs)("div",{className:"flex items-center gap-2 text-slate-300",children:[(0,le.jsx)(B.A,{size:14,className:"text-slate-500"}),(0,oa.GP)(new Date(e.timestamp),"dd MMM yyyy \xe0 HH:mm",{locale:ca.fr})]})}),(0,le.jsx)("td",{className:"px-4 py-3 whitespace-nowrap",children:(0,le.jsx)("span",{className:"font-semibold text-slate-200",children:e.event_type})}),(0,le.jsx)("td",{className:"px-4 py-3 whitespace-nowrap",children:(0,le.jsxs)("div",{className:"flex flex-col",children:[(0,le.jsx)("span",{className:"text-slate-300",children:e.email}),(0,le.jsx)("span",{className:"text-slate-600 text-xs",children:e.user_id})]})}),(0,le.jsx)("td",{className:"px-4 py-3 whitespace-nowrap",children:(0,le.jsx)("span",{className:"px-2.5 py-1 rounded-full border text-[10px] font-bold uppercase tracking-wider ".concat(v(e.status)),children:e.status})}),(0,le.jsx)("td",{className:"px-4 py-3",children:(0,le.jsxs)("div",{className:"text-xs text-slate-400 flex flex-col gap-1",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("span",{className:"text-slate-500",children:"IP:"})," ",e.ip_address]}),e.details&&Object.keys(e.details).length>0&&(0,le.jsx)("div",{className:"bg-slate-950 p-2 rounded text-slate-500 font-mono text-[10px] break-all max-w-[200px] overflow-hidden",children:JSON.stringify(e.details)})]})})]},e.id))})]})})})]})}const ma=window.location.origin,ua={bot_starter:"VINTYRESELL Bot (9,99\u20ac/mois)",starter:"VINTYRESELL Bot (legacy)",bot:"Bot Starter (legacy)",all_access:"Acc\xe8s Complet (legacy)",mini_elite:"Accompagnement (legacy)",elite:"Accompagnement Elite (597\u20ac)",formation:"Formation Compl\xe8te (197\u20ac)"},pa={bot_starter:"bg-emerald-600/15 text-emerald-400 border-emerald-500/20",starter:"bg-emerald-600/15 text-emerald-400 border-emerald-500/20",bot:"bg-emerald-600/15 text-emerald-400 border-emerald-500/20",all_access:"bg-amber-600/15 text-amber-400 border-amber-500/20",mini_elite:"bg-amber-600/15 text-amber-400 border-amber-500/20",elite:"bg-amber-600/15 text-amber-400 border-amber-500/20",formation:"bg-blue-600/15 text-blue-400 border-blue-500/20"},ha=[{id:"todo",label:"To-do demain",icon:d.A,color:"text-teal-400"},{id:"ai_tracking",label:"Tracking IA & Usage",icon:o.A,color:"text-blue-400"},{id:"vintytrack",label:"Superviseur VintyTrack",icon:c.A,color:"text-purple-400",isNew:!0},{divider:"Membres"},{id:"overview",label:"Vue d'ensemble",icon:x.A},{id:"analytics",label:"Analytics (MRR, IA, visites)",icon:m.A,color:"text-emerald-400",isNew:!0},{id:"crm",label:"CRM Membres",icon:u.A,color:"text-emerald-400"},{id:"audit",label:"Logs de S\xe9curit\xe9",icon:u.A,color:"text-rose-400",isNew:!0},{id:"inbox",label:"Bo\xeete Mail",icon:p.A,color:"text-purple-400"},{id:"subscriptions",label:"Abonnements",icon:h.A,color:"text-teal-400",isNew:!0},{id:"stripe_health",label:"Sant\xe9 Stripe",icon:b.A,color:"text-amber-400",isNew:!0},{divider:"Affiliation"},{id:"affiliate_apps",label:"Candidatures Affili\xe9s",icon:g.A,color:"text-blue-400"},{id:"crm_affiliates",label:"CRM Affili\xe9s & Paiements",icon:f.A,color:"text-emerald-400"},{id:"affiliate_tools",label:"Outils & Liens",icon:j.A,color:"text-purple-400"},{divider:"Contenu"},{id:"modules",label:"Vid\xe9os de Formation",icon:v.A},{id:"products",label:"Base Produits",icon:N.A},{divider:"Support"},{id:"repair",label:"R\xe9paration acc\xe8s",icon:y.A,color:"text-red-400"},{id:"feature_flags",label:"Feature Flags",icon:w.A,color:"text-teal-400"}],ba=["book","camera","table","trophy","pen","bot","message","shield","star","zap"],ga=["D\xe9butant","Interm\xe9diaire","Avanc\xe9","Pratique"],fa=["starter","elite"],ja=["live","webinar","workshop","replay"];function va(e){let t=e.headers;const s=window.location.origin,a=(0,r.useState)(null),i=(0,l.A)(a,2),d=i[0],o=i[1],c=(0,r.useState)(!0),x=(0,l.A)(c,2),m=x[0],u=x[1];if((0,r.useEffect)(()=>{n.A.get("".concat(s,"/api/admin/tracking-stats"),{headers:t()}).then(e=>o(e.data)).catch(()=>o(null)).finally(()=>u(!1))},[]),m)return(0,le.jsx)("div",{className:"text-center py-12 text-slate-500 text-sm",children:"Chargement..."});if(!d)return(0,le.jsx)("div",{className:"text-center py-12 text-red-400 text-sm",children:"Impossible de charger les stats."});const p=d.members,h=d.ai,b=d.top_users,g={"analyze-article":"Analyse article","generate-ad":"G\xe9n\xe9ration annonce","niche-analysis":"Analyse niche",chat:"Coach IA","estimate-price":"Prix estim\xe9"},f=Object.entries(h.tool_usage||{}).sort((e,t)=>
1t[1]-e[1]),j=Object.entries(h.tool_errors||{}),v=e=>{let t=e.label,s=e.value,a=e.sub,l=e.color,r=void 0===l?"text-white":l;return(0,le.jsxs)("div",{className:"bg-slate-900/60 border border-white/6 rounded-2xl p-4",children:[(0,le.jsx)("p",{className:"text-slate-500 text-xs mb-1",children:t}),(0,le.jsx)("p",{className:"text-2xl font-black ".concat(r),children:s}),a&&(0,le.jsx)("p",{className:"text-slate-600 text-[10px] mt-0.5",children:a})]})};return(0,le.jsxs)("div",{className:"space-y-6 p-2",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h2",{className:"text-xl font-black text-white",children:"Tracking IA & Usage"}),(0,le.jsx)("p",{className:"text-slate-500 text-xs mt-0.5",children:d.period})]}),(0,le.jsx)("button",{onClick:()=>window.location.reload(),className:"p-2 rounded-lg text-slate-400 hover:text-white",children:(0,le.jsx)(A.A,{size:15})})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-teal-400 text-xs font-bold uppercase tracking-wider mb-3",children:"Membres"}),(0,le.jsxs)("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-3",children:[(0,le.jsx)(v,{label:"Total membres",value:p.total,color:"text-white"}),(0,le.jsx)(v,{label:"Nouveaux (30j)",value:p.new_30d,color:"text-blue-400"}),(0,le.jsx)(v,{label:"Actifs (30j)",value:p.active_30d,color:"text-teal-400"}),(0,le.jsx)(v,{label:"Profils Vinted li\xe9s",value:p.profiles_linked,sub:"URL publique associ\xe9e"}),(0,le.jsx)(v,{label:"CSV import\xe9s",value:p.csv_imported,sub:"Au moins 1 import r\xe9ussi"}),(0,le.jsx)(v,{label:"Ventes enregistr\xe9es (30j)",value:p.ventes_30d,sub:"Depuis CSV"})]})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-teal-400 text-xs font-bold uppercase tracking-wider mb-3",children:"Intelligence Artificielle"}),(0,le.jsxs)("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-3 mb-4",children:[(0,le.jsx)(v,{label:"Cr\xe9dits consomm\xe9s (30j)",value:h.total_credits_consumed,color:"text-amber-400",sub:"Hors r\xe9initialisations"}),(0,le.jsx)(v,{label:"Appels IA r\xe9ussis (30j)",value:h.total_calls,color:"text-emerald-400"}),(0,le.jsx)(v,{label:"Erreurs IA (30j)",value:Object.values(h.tool_errors||{}).reduce((e,t)=>e+t,0),color:"text-red-400",sub:"Compteurs r\xe9initialis\xe9s"})]}),f.length>0&&(0,le.jsxs)("div",{className:"bg-slate-900/60 border border-white/6 rounded-2xl p-4",children:[(0,le.jsx)("p",{className:"text-slate-400 text-xs font-semibold mb-3",children:"Outils les plus utilis\xe9s"}),(0,le.jsx)("div",{className:"space-y-2",children:f.map(e=>{let t=(0,l.A)(e,2),s=t[0],a=t[1];const r=h.total_calls||1,i=Math.round(a/r*100);return(0,le.jsxs)("div",{children:[(0,le.jsxs)("div",{className:"flex justify-between text-xs mb-1",children:[(0,le.jsx)("span",{className:"text-slate-300",children:g[s]||s}),(0,le.jsxs)("span",{className:"text-teal-400 font-semibold",children:[a," appels"]})]}),(0,le.jsx)("div",{className:"h-1.5 bg-slate-800 rounded-full overflow-hidden",children:(0,le.jsx)("div",{className:"h-full bg-gradient-to-r from-teal-500 to-blue-400 rounded-full",style:{width:"".concat(i,"%")}})})]},s)})})]}),j.length>0&&(0,le.jsxs)("div",{className:"bg-red-500/5 border border-red-500/15 rounded-2xl p-4 mt-3",children:[(0,le.jsx)("p",{className:"text-red-400 text-xs font-semibold mb-2",children:"Erreurs IA par outil (compteurs r\xe9initialis\xe9s)"}),(0,le.jsx)("div",{className:"flex flex-wrap gap-2",children:j.map(e=>{let t=(0,l.A)(e,2),s=t[0],a=t[1];return(0,le.jsxs)("span",{className:"px-2.5 py-1 rounded-full bg-red-500/10 border border-red-500/20 text-red-400 text-[10px] font-semibold",children:[g[s]||s," \xb7 ",a]},s)})})]})]}),b&&b.length>0&&(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-teal-400 text-xs font-bold uppercase tracking-wider mb-3",children:"Top consommateurs de cr\xe9dits (30j)"}),(0,le.jsx)("div",{className:"bg-slate-900/60 border border-white/6 rounded-2xl overflow-hidden",children:(0,le.jsxs)("table",{className:"w-full",children:[(0,le.jsx)("thead",{children:(0,le.jsxs)("tr",{className:"border-b border-white/6",children:[(0,le.jsx)("th",{className:"text-left px-4 py-2.5 text-slate-500 text-[10px] font-semibold uppercase",children:"#"}),(0,le.jsx)("th",{className:"text-left px-4 py-2.5 text-slate-500 text-[10px] font-semibold uppercase",children:"Email"}),(0,le.jsx)("th",{className:"text-left px-4 py-2.5 text-slate-500 text-[10px] font-semibold uppercase",children:"Plan"}),(0,le.jsx)("th",{className:"text-right px-4 py-2.5 text-slate-500 text-[10px] font-semibold uppercase",children:"Cr\xe9dits"}),(0,le.jsx)("th",{className:"text-right px-4 py-2.5 text-slate-500 text-[10px] font-semibold uppercase",children:"Appels"})]})}),(0,le.jsx)("tbody",{children:b.slice(0,10).map((e,t)=>(0,le.jsxs)("tr",{className:"border-b border-white/4 hover:bg-white/2 transition-colors",children:[(0,le.jsx)("td",{className:"px-4 py-2.5 text-slate-600 text-xs",children:t+1}),(0,le.jsx)("td",{className:"px-4 py-2.5 text-slate-300 text-xs font-medium truncate max-w-[160px]",children:e.email}),(0,le.jsx)("td",{className:"px-4 py-2.5",children:(0,le.jsx)("span",{className:"text-[10px] px-2 py-0.5 rounded-full bg-teal-600/10 border border-teal-500/20 text-teal-400",children:e.plan||"\u2014"})}),(0,le.jsx)("td",{className:"px-4 py-2.5 text-amber-400 text-xs font-bold text-right",children:e.total_consumed}),(0,le.jsx)("td",{className:"px-4 py-2.5 text-slate-400 text-xs text-right",children:e.calls})]},e.user_id))})]})})]})]})}function Na(e){var t,s;let i=e.headers,d=e.msg;const o=r.useState({youtube_url:"",video_title:"",video_description:"",video_visible:!0,booking_url:"",booking_enabled:!1,booking_c
1alls_per_month:1,booking_cta_text:"",coaching_application_url:"",coaching_enabled:!0,coaching_cta_text:""}),c=(0,l.A)(o,2),x=c[0],m=c[1],u=r.useState(!0),p=(0,l.A)(u,2),h=p[0],b=p[1],g=r.useState(!1),f=(0,l.A)(g,2),j=f[0],v=f[1],N=r.useState(null),y=(0,l.A)(N,2),w=(y[0],y[1]),A=e=>{if(!e)return null;const t=e.match(/(?:youtu\.be\/|youtube\.com\/(?:watch\?v=|embed\/|shorts\/))([A-Za-z0-9_-]{11})/);return t?t[1]:null};r.useEffect(()=>{(async()=>{try{const e=await n.A.get("".concat("","/api/admin/landing/config"),{headers:i()});m({youtube_url:e.data.youtube_url||"",video_title:e.data.video_title||"",video_description:e.data.video_description||"",video_visible:!1!==e.data.video_visible,booking_url:e.data.booking_url||"",booking_enabled:e.data.booking_enabled||!1,booking_calls_per_month:e.data.booking_calls_per_month||1,booking_cta_text:e.data.booking_cta_text||"",coaching_application_url:e.data.coaching_application_url||"",coaching_enabled:!1!==e.data.coaching_enabled,coaching_cta_text:e.data.coaching_cta_text||""}),w(A(e.data.youtube_url))}catch(e){}b(!1)})()},[]);return h?(0,le.jsx)("div",{className:"flex items-center justify-center py-20",children:(0,le.jsx)("div",{className:"w-6 h-6 rounded-full border-2 border-teal-500 border-t-transparent animate-spin"})}):(0,le.jsxs)("div",{className:"max-w-2xl space-y-6","data-testid":"admin-landing-video-panel",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h2",{className:"text-white font-black text-lg",style:{fontFamily:"Outfit, sans-serif"},children:"Landing Page \u2014 Configuration"}),(0,le.jsx)("p",{className:"text-slate-400 text-sm mt-1",children:"Vid\xe9o, r\xe9servation appels (Formation) et candidature accompagnement."})]}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/8 rounded-2xl p-6 space-y-4",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between p-4 bg-slate-800/50 rounded-xl border border-white/6",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-white text-sm font-semibold",children:"Afficher la section vid\xe9o"}),(0,le.jsx)("p",{className:"text-slate-500 text-xs mt-0.5",children:"Si d\xe9sactiv\xe9, la section vid\xe9o est masqu\xe9e sur la landing."})]}),(0,le.jsx)("button",{onClick:()=>m(e=>(0,a.A)((0,a.A)({},e),{},{video_visible:!e.video_visible})),"data-testid":"video-visible-toggle",className:"relative w-12 h-6 rounded-full transition-colors duration-200 ".concat(x.video_visible?"bg-teal-600":"bg-slate-700"),children:(0,le.jsx)("span",{className:"absolute top-0.5 left-0.5 w-5 h-5 bg-white rounded-full shadow transition-transform duration-200 ".concat(x.video_visible?"translate-x-6":"")})})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold uppercase tracking-wider block mb-1.5",children:"Titre de la section vid\xe9o"}),(0,le.jsx)("input",{value:x.video_title,onChange:e=>m(t=>(0,a.A)((0,a.A)({},t),{},{video_title:e.target.value})),placeholder:"D\xe9couvre VINTYRESELL en action","data-testid":"video-title-input",className:"w-full bg-slate-800 border border-white/8 text-white text-sm rounded-xl px-3 py-2.5 placeholder-slate-600 focus:border-teal-500/40 focus:outline-none"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold uppercase tracking-wider block mb-1.5",children:"Texte sous le titre"}),(0,le.jsx)("textarea",{value:x.video_description,onChange:e=>m(t=>(0,a.A)((0,a.A)({},t),{},{video_description:e.target.value})),rows:2,placeholder:"Description courte de la vid\xe9o\u2026","data-testid":"video-description-input",className:"w-full bg-slate-800 border border-white/8 text-white text-sm rounded-xl px-3 py-2.5 placeholder-slate-600 focus:border-teal-500/40 focus:outline-none resize-none"})]}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/8 rounded-2xl p-6 space-y-4",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h3",{className:"text-white font-bold text-sm",children:"Ligne de confiance"}),(0,le.jsx)("p",{className:"text-slate-400 text-xs mt-0.5",children:"Nombre de membres affich\xe9 discr\xe8tement sous les offres. Bas\xe9 sur le vrai compteur DB."})]}),(0,le.jsxs)("div",{className:"bg-slate-800/50 border border-white/6 rounded-xl p-3 flex items-center justify-between",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-white text-sm font-semibold",children:"Membres r\xe9els en base"}),(0,le.jsxs)("p",{className:"text-teal-400 text-lg font-black",style:{fontFamily:"Outfit"},children:[null!==(t=x.trust_count_override)&&void 0!==t?t:"107"," membres"]})]}),(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsx)("span",{className:"text-slate-400 text-xs mr-3",children:"Afficher"}),(0,le.jsx)("button",{onClick:()=>m(e=>(0,a.A)((0,a.A)({},e),{},{trust_visible:!e.trust_visible})),"data-testid":"trust-visible-toggle",className:"relative w-10 h-5 rounded-full transition-colors ".concat(!1!==x.trust_visible?"bg-teal-600":"bg-slate-700"),
1children:(0,le.jsx)("span",{className:"absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full shadow transition-transform ".concat(!1!==x.trust_visible?"translate-x-5":"")})})]})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold uppercase tracking-wider block mb-1.5",children:"Surcharger le compteur (optionnel)"}),(0,le.jsx)("input",{type:"number",value:null!==(s=x.trust_count_override)&&void 0!==s?s:"",onChange:e=>m(t=>(0,a.A)((0,a.A)({},t),{},{trust_count_override:e.target.value?parseInt(e.target.value):null})),placeholder:"Laisser vide = compteur r\xe9el DB","data-testid":"trust-count-override-input",className:"w-full bg-slate-800 border border-white/8 text-white text-sm rounded-xl px-3 py-2.5 placeholder-slate-600 focus:border-teal-500/40 focus:outline-none"}),(0,le.jsx)("p",{className:"text-slate-600 text-[10px] mt-1",children:"Laisser vide pour utiliser automatiquement le nombre r\xe9el de membres actifs."})]})]}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/8 rounded-2xl p-6 space-y-4",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h3",{className:"text-white font-bold text-sm",children:"Appels de 30 min (Formation)"}),(0,le.jsx)("p",{className:"text-slate-400 text-xs mt-0.5",children:"Lien de r\xe9servation affich\xe9 sur la page Formation. Laisse vide pour masquer."})]}),(0,le.jsx)("button",{onClick:()=>m(e=>(0,a.A)((0,a.A)({},e),{},{booking_enabled:!e.booking_enabled})),"data-testid":"booking-enabled-toggle",className:"relative w-10 h-5 rounded-full transition-colors ".concat(x.booking_enabled?"bg-teal-600":"bg-slate-700"),children:(0,le.jsx)("span",{className:"absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full shadow transition-transform ".concat(x.booking_enabled?"translate-x-5":"")})})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold uppercase tracking-wider block mb-1.5",children:"URL de r\xe9servation"}),(0,le.jsx)("input",{value:x.booking_url,onChange:e=>m(t=>(0,a.A)((0,a.A)({},t),{},{booking_url:e.target.value})),placeholder:"https://calendly.com/...","data-testid":"booking-url-input",className:"w-full bg-slate-800 border border-white/8 text-white text-sm rounded-xl px-3 py-2.5 placeholder-slate-600 focus:border-teal-500/40 focus:outline-none"})]}),(0,le.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold uppercase tracking-wider block mb-1.5",children:"Appels / mois inclus"}),(0,le.jsx)("input",{type:"number",min:1,max:10,value:x.booking_calls_per_month,onChange:e=>m(t=>(0,a.A)((0,a.A)({},t),{},{booking_calls_per_month:parseInt(e.target.value)||1})),"data-testid":"booking-calls-input",className:"w-full bg-slate-800 border border-white/8 text-white text-sm rounded-xl px-3 py-2.5 focus:border-teal-500/40 focus:outline-none"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold uppercase tracking-wider block mb-1.5",children:"Texte CTA (optionnel)"}),(0,le.jsx)("input",{value:x.booking_cta_text,onChange:e=>m(t=>(0,a.A)((0,a.A)({},t),{},{booking_cta_text:e.target.value})),placeholder:"R\xe9server un appel de 30 min","data-testid":"booking-cta-input",className:"w-full bg-slate-800 border border-white/8 text-white text-sm rounded-xl px-3 py-2.5 placeholder-slate-600 focus:border-teal-500/40 focus:outline-none"})]})]})]}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/8 rounded-2xl p-6 space-y-4",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h3",{className:"text-white font-bold text-sm",children:"Accompagnement \u2014 Candidature"}),(0,le.jsx)("p",{className:"text-slate-400 text-xs mt-0.5",children:"Lien de l'appel d\xe9couverte gratuit. Laisse vide pour afficher le formulaire int\xe9gr\xe9."})]}),(0,le.jsx)("button",{onClick:()=>m(e=>(0,a.A)((0,a.A)({},e),{},{coaching_enabled:!e.coaching_enabled})),"data-testid":"coaching-enabled-toggle",className:"relative w-10 h-5 rounded-full transition-colors ".concat(!1!==x.coaching_enabled?"bg-teal-600":"bg-slate-700"),
1children:(0,le.jsx)("span",{className:"absolute top-0.5 left-0.5 w-4 h-4 bg-white rounded-full shadow transition-transform ".concat(!1!==x.coaching_enabled?"translate-x-5":"")})})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold uppercase tracking-wider block mb-1.5",children:"URL de l'appel d\xe9couverte (Calendly, etc.)"}),(0,le.jsx)("input",{value:x.coaching_application_url,onChange:e=>m(t=>(0,a.A)((0,a.A)({},t),{},{coaching_application_url:e.target.value})),placeholder:"https://calendly.com/mon-lien-decouverte","data-testid":"coaching-url-input",className:"w-full bg-slate-800 border border-white/8 text-white text-sm rounded-xl px-3 py-2.5 placeholder-slate-600 focus:border-teal-500/40 focus:outline-none"}),(0,le.jsx)("p",{className:"text-slate-600 text-[10px] mt-1",children:"Si vide, le formulaire de candidature interne s'affiche."})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold uppercase tracking-wider block mb-1.5",children:"Texte CTA (optionnel)"}),(0,le.jsx)("input",{value:x.coaching_cta_text,onChange:e=>m(t=>(0,a.A)((0,a.A)({},t),{},{coaching_cta_text:e.target.value})),placeholder:"R\xe9server un appel d\xe9couverte gratuit","data-testid":"coaching-cta-input",className:"w-full bg-slate-800 border border-white/8 text-white text-sm rounded-xl px-3 py-2.5 placeholder-slate-600 focus:border-teal-500/40 focus:outline-none"})]})]}),(0,le.jsx)("button",{onClick:async()=>{v(!0);try{await n.A.put("".concat("","/api/admin/landing/config"),x,{headers:i()}),w(A(x.youtube_url)),d("Configuration sauvegard\xe9e","success")}catch(e){d("Erreur lors de la sauvegarde","error")}v(!1)},disabled:j,"data-testid":"save-landing-video-btn",className:"w-full py-3 rounded-xl bg-gradient-to-r from-teal-600 to-teal-500 text-white font-bold text-sm flex items-center justify-center gap-2 hover:opacity-90 disabled:opacity-50 transition-all",children:j?(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)("span",{className:"w-4 h-4 rounded-full border-2 border-white/30 border-t-white animate-spin"})," Sauvegarde..."]}):"Enregistrer toute la configuration"})]})]})}function ya(e){let t=e.headers,s=e.msg;const i=window.location.origin,d={prenom:"",contexte:"",contenu:"",type_resultat:"",avatar_url:"",capture_url:"",video_url:"",thumbnail_url:"",media_type:"text",lien:"",date_temoignage:"",statut:"brouillon",ordre:0},o=(0,r.useState)([]),c=(0,l.A)(o,2),x=c[0],m=c[1],u=(0,r.useState)(!0),p=(0,l.A)(u,2),h=p[0],b=p[1],g=(0,r.useState)(d),f=(0,l.A)(g,2),v=f[0],N=f[1],y=(0,r.useState)(null),w=(0,l.A)(y,2),D=w[0],I=w[1],L=(0,r.useState)(!1),q=(0,l.A)(L,2),P=q[0],M=q[1],O=(0,r.useState)(!1),V=(0,l.A)(O,2),B=V[0],U=V[1],W=(0,r.useState)(!1),H=(0,l.A)(W,2),Y=H[0],G=H[1],K=(0,r.useState)(""),J=(0,l.A)(K,2),Q=J[0],Z=J[1],X=r.useRef(null),$=async()=>{b(!0);try{const e=await n.A.get("".concat(i,"/api/social-proof/"),{headers:t()});m(e.data.testimonials||[])}catch(e){s("Erreur chargement","error")}b(!1)};r.useEffect(()=>{$()},[]);const ee=()=>{N(d),I(null),M(!1),Z("")},te=x.filter(e=>"publie"===e.statut),se=x.filter(e=>"publie"!==e.statut),ae={text:"T\xe9moignage \xe9crit",image:"Photo / Capture",video:"Vid\xe9o"};return(0,le.jsxs)("div",{className:"space-y-5 p-2",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h2",{className:"text-xl font-black text-white",children:"R\xe9sultats Membres \u2014 Preuve Sociale"}),(0,le.jsxs)("p",{className:"text-slate-500 text-xs mt-1",children:[te.length," publi\xe9(s) \xb7 ",se.length," brouillon(s) \xb7 Uniquement des t\xe9moignages r\xe9els et autoris\xe9s \u2014 aucun faux avis"]})]}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsx)("button",{onClick:$,className:"p-2 rounded-lg text-slate-400 hover:text-white",children:(0,le.jsx)(A.A,{size:15})}),(0,le.jsxs)("button",{onClick:()=>{ee(),M(!0)},"data-testid":"add-testimonial-btn",className:"flex items-center gap-2 px-4 py-2 rounded-xl bg-teal-600/15 border border-teal-500/25 text-teal-400 hover:bg-teal-600/25 text-sm font-bold transition-all",children:[(0,le.jsx)(_.A,{size:14})," Ajouter"]})]})]}),(0,le.jsxs)("div",{className:"bg-amber-600/5 border border-amber-500/15 rounded-xl px-4 py-3 flex items-start gap-2",children:[(0,le.jsx)(k.A,{size:13,className:"text-amber-400 flex-shrink-0 mt-0.5"}),(0,le.jsx)("p",{className:"text-amber-300/80 text-xs leading-relaxed",children:"N'ajoutez que des t\xe9moignages r\xe9els de membres ayant donn\xe9 leur accord. Ne publiez jamais d'avatars g\xe9n\xe9r\xe9s par IA pr\xe9sent\xe9s comme de vrais membres. Ne gonflez pas les chiffres."})]}),P&&(0,le.jsxs)("div",{className:"bg-slate-900/80 border border-teal-500/20 rounded-2xl p-5",children:[(0,le.jsx)("h3",{className:"text-white font-bold mb-4 text-sm",children:D?"Modifier le r\xe9sultat":"Nouveau r\xe9sultat membre"}),(0,le.jsxs)("form",{onSubmit:async e=>{if(e.preventDefault(),v.prenom.trim())if(v.contenu.trim()){U(!0);try{D?(await n.A.patch("".concat(i,"/api/social-proof/").concat(D),v,{headers:t()}),s("T\xe9moignage modifi\xe9 \u2713","success")):(await n.A.post("".concat(i,"/api/social-proof/"),v,{headers:t()}),s("T\xe9moignage ajout\xe9 \u2713","success")),ee(),$()}catch(e){var a,l;s((null===(a=e.response)||void 0===a||null===(l=a.data)||void 0===l?void 0:l.detail)||"Erreur","error")}U(!1)}else s("Le t\xe9moignage ne peut pas \xeatre vide","error");else s("Le pr\xe9nom est requis","error")},className:"space-y-4",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-500 text-xs mb-2 block",children:"Type de contenu"}),(0,le.jsx)("div",{className:"flex gap-2 flex-wrap",children:Object.entries(ae).map(e=>{let t=(0,l.A)(e,2),s=t[0],r=t[1];return(0,le.jsx)("button",{type:"button",onClick:()=>N(e=>(0,a.A)((0,a.A)({},e),{},{media_type:s})),className:"px-3 py-1.5 rounded-xl text-xs font-semibold border transition-all ".concat(v.media_type===s?"bg-teal-600/20 border-teal-500/40 text-teal-400":"bg-white/5 border-white/10 text-slate-400 hover:border-white/20"),children:r},s)})})]}),(0,le.jsxs)("div",{className:"grid sm:grid-cols-2 gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-500 text-xs mb-1 block",children:"Pr\xe9nom / Pseudo autoris\xe9 *"}
1),(0,le.jsx)("input",{value:v.prenom,onChange:e=>N(t=>(0,a.A)((0,a.A)({},t),{},{prenom:e.target.value})),placeholder:"Hugo, @utilisateur...","data-testid":"testimonial-prenom",className:"w-full bg-white/5 border border-white/10 rounded-xl px-3 py-2 text-white text-sm focus:outline-none focus:border-teal-500/30 placeholder-slate-600"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-500 text-xs mb-1 block",children:"Contexte"}),(0,le.jsx)("input",{value:v.contexte,onChange:e=>N(t=>(0,a.A)((0,a.A)({},t),{},{contexte:e.target.value})),placeholder:"Membre depuis 2 mois \xb7 Formule Acc\xe9l\xe9rateur",className:"w-full bg-white/5 border border-white/10 rounded-xl px-3 py-2 text-white text-sm focus:outline-none placeholder-slate-600"})]})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-500 text-xs mb-1 block",children:"T\xe9moignage *"}),(0,le.jsx)("textarea",{value:v.contenu,onChange:e=>N(t=>(0,a.A)((0,a.A)({},t),{},{contenu:e.target.value})),rows:3,placeholder:"Retranscription exacte du t\xe9moignage autoris\xe9...","data-testid":"testimonial-contenu",className:"w-full bg-white/5 border border-white/10 rounded-xl px-3 py-2 text-white text-sm focus:outline-none resize-none placeholder-slate-600"})]}),"image"===v.media_type&&(0,le.jsx)("div",{className:"space-y-3",children:(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-500 text-xs mb-1 block",children:"Upload image / capture (max 10 Mo)"}),(0,le.jsxs)("div",{className:"flex gap-2 items-center flex-wrap",children:[(0,le.jsxs)("button",{type:"button",onClick:()=>{var e;return null===(e=X.current)||void 0===e?void 0:e.click()},disabled:Y,className:"flex items-center gap-2 px-3 py-2 rounded-xl bg-blue-600/15 border border-blue-500/25 text-blue-400 hover:bg-blue-600/25 text-xs font-semibold transition-all disabled:opacity-50",children:[(0,le.jsx)(S.A,{size:12})," ",Y?"Upload...":"Choisir une image"]}),(0,le.jsx)("input",{ref:X,type:"file",accept:"image/jpeg,image/png,image/webp,image/gif",onChange:async e=>{var l;const r=null===(l=e.target.files)||void 0===l?void 0:l[0];if(r)if(r.size>10485760)s("Image trop lourde (max 10 Mo)","error");else{G(!0);try{const e=new FormData;e.append("file",r);const l=(await n.A.post("".concat(i,"/api/social-proof/upload-image"),e,{headers:(0,a.A)((0,a.A)({},t()),{},{"Content-Type":"multipart/form-data"})})).data.url;N(e=>(0,a.A)((0,a.A)({},e),{},{capture_url:l,media_type:"image"})),Z(l),s("Image upload\xe9e \u2713","success")}catch(e){var d,o;s((null===(d=e.response)||void 0===d||null===(o=d.data)||void 0===o?void 0:o.detail)||"Erreur upload","error")}G(!1)}},className:"hidden"}),(0,le.jsx)("span",{className:"text-slate-600 text-xs",children:"ou"}),(0,le.jsx)("input",{value:v.capture_url,onChange:e=>{N(t=>(0,a.A)((0,a.A)({},t),{},{capture_url:e.target.value})),Z(e.target.value)},placeholder:"https://... (URL directe)",className:"flex-1 min-w-[180px] bg-white/5 border border-white/10 rounded-xl px-3 py-2 text-white text-xs focus:outline-none placeholder-slate-600"})]}),Q&&(0,le.jsxs)("div",{className:"mt-2",children:[(0,le.jsx)("p",{className:"text-slate-500 text-[10px] mb-1",children:"Aper\xe7u :"}),(0,le.jsx)("img",{src:Q.startsWith("/")?"".concat(i).concat(Q):Q,alt:"aper\xe7u",className:"max-h-40 rounded-xl object-cover border border-white/10",onError:e=>{e.target.style.display="none"}})]})]})}),"video"===v.media_type&&(0,le.jsxs)("div",{className:"grid sm:grid-cols-2 gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-500 text-xs mb-1 block",children:"URL vid\xe9o (YouTube embed ou lien direct)"}),(0,le.jsx)("input",{value:v.video_url,onChange:e=>N(t=>(0,a.A)((0,a.A)({},t),{},{video_url:e.target.value})),placeholder:"https://youtube.com/embed/... ou lien .mp4",className:"w-full bg-white/5 border border-white/10 rounded-xl px-3 py-2 text-white text-sm focus:outline-none placeholder-slate-600"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-500 text-xs mb-1 block",children:"Image de couverture (thumbnail)"}),(0,le.jsx)("input",{value:v.thumbnail_url,onChange:e=>N(t=>(0,a.A)((0,a.A)({},t),{},{thumbnail_url:e.target.value})),placeholder:"https://... (optionnel)",className:"w-full bg-white/5 border border-white/10 rounded-xl px-3 py-2 text-white text-sm focus:outline-none placeholder-slate-600"})]}),v.video_url&&(0,le.jsxs)("div",{className:"sm:col-span-2",children:[(0,le.jsx)("p",{className:"text-slate-500 text-[10px] mb-1",children:"Aper\xe7u vid\xe9o :"}),(0,le.jsx)("div",{className:"aspect-video rounded-xl overflow-hidden border border-white/10 max-w-xs",children:(0,le.jsx)("iframe",{src:v.video_url,t
1itle:"Aper\xe7u",className:"w-full h-full border-none",allowFullScreen:!0})})]})]}),(0,le.jsxs)("div",{className:"grid sm:grid-cols-3 gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-500 text-xs mb-1 block",children:"Type de r\xe9sultat"}),(0,le.jsx)("input",{value:v.type_resultat,onChange:e=>N(t=>(0,a.A)((0,a.A)({},t),{},{type_resultat:e.target.value})),placeholder:"Premi\xe8re vente, ROI, Niche...",className:"w-full bg-white/5 border border-white/10 rounded-xl px-3 py-2 text-white text-sm focus:outline-none placeholder-slate-600"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-500 text-xs mb-1 block",children:"Date du t\xe9moignage"}),(0,le.jsx)("input",{type:"date",value:v.date_temoignage,onChange:e=>N(t=>(0,a.A)((0,a.A)({},t),{},{date_temoignage:e.target.value})),className:"w-full bg-white/5 border border-white/10 rounded-xl px-3 py-2 text-white text-sm focus:outline-none"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-500 text-xs mb-1 block",children:"Ordre d'affichage"}),(0,le.jsx)("input",{type:"number",value:v.ordre,onChange:e=>N(t=>(0,a.A)((0,a.A)({},t),{},{ordre:parseInt(e.target.value)||0})),className:"w-full bg-white/5 border border-white/10 rounded-xl px-3 py-2 text-white text-sm focus:outline-none"})]})]}),(0,le.jsxs)("div",{className:"grid sm:grid-cols-2 gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-500 text-xs mb-1 block",children:"URL avatar (optionnel)"}),(0,le.jsx)("input",{value:v.avatar_url,onChange:e=>N(t=>(0,a.A)((0,a.A)({},t),{},{avatar_url:e.target.value})),placeholder:"https://... (photo r\xe9elle autoris\xe9e)",className:"w-full bg-white/5 border border-white/10 rounded-xl px-3 py-2 text-white text-sm focus:outline-none placeholder-slate-600"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-500 text-xs mb-1 block",children:"Lien preuve (optionnel)"}),(0,le.jsx)("input",{value:v.lien,onChange:e=>N(t=>(0,a.A)((0,a.A)({},t),{},{lien:e.target.value})),placeholder:"https://... (profil ou preuve externe)",className:"w-full bg-white/5 border border-white/10 rounded-xl px-3 py-2 text-white text-sm focus:outline-none placeholder-slate-600"})]})]}),(0,le.jsx)("div",{className:"flex items-center gap-4",children:(0,le.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer",children:[(0,le.jsx)("div",{onClick:()=>N(e=>(0,a.A)((0,a.A)({},e),{},{statut:"publie"===e.statut?"brouillon":"publie"})),className:"w-9 h-5 rounded-full transition-all cursor-pointer ".concat("publie"===v.statut?"bg-teal-500":"bg-slate-700"," flex items-center px-0.5"),children:(0,le.jsx)("div",{className:"w-4 h-4 rounded-full bg-white transition-transform ".concat("publie"===v.statut?"translate-x-4":"translate-x-0")})}),(0,le.jsx)("span",{className:"text-sm text-slate-400",children:"publie"===v.statut?(0,le.jsx)("span",{className:"text-teal-400 font-semibold",children:"Publi\xe9 sur la landing"}):"Brouillon (non visible)"})]})}),(0,le.jsxs)("div",{className:"flex gap-2 pt-2",children:[(0,le.jsxs)("button",{type:"submit",disabled:B||Y,"data-testid":"save-testimonial-btn",className:"flex items-center gap-2 px-5 py-2.5 rounded-xl bg-teal-600 hover:bg-teal-700 text-white text-sm font-bold transition-all disabled:opacity-50",children:[B?(0,le.jsx)("span",{className:"w-4 h-4 border-2 border-white/30 border-t-white rounded-full animate-spin"}):(0,le.jsx)(C.A,{size:14}),D?"Modifier":"Ajouter"]}),(0,le.jsx)("button",{type:"button",onClick:ee,className:"px-4 py-2 rounded-xl border border-white/10 text-slate-400 hover:text-white text-sm transition-all",children:"Annuler"})]})]})]}),h?(0,le.jsx)("div",{className:"text-center py-10 text-slate-500 text-sm",children:"Chargement..."}):0===x.length?(0,le.jsxs)("div",{className:"text-center py-14 bg-slate-900/40 rounded-2xl border border-white/5",children:[(0,le.jsx)(z.A,{size:28,className:"mx-auto mb-3 text-slate-700"}),(0,le.jsx)("p",{className:"text-slate-500 text-sm",children:"Aucun t\xe9moignage pour l'instant."}),(0,le.jsx)("p",{className:"text-slate-600 text-xs mt-1",children:"Ajoutez les premiers r\xe9sultats membres r\xe9els."})]}):(0,le.jsx)("div",{className:"space-y-3",children:x.map(e=>(0,le.jsxs)("div",{className:"rounded-2xl border p-4 flex gap-4 transition-all ".concat("publie"===e.statut?"bg-teal-600/5 border-teal-500/20":"bg-slate-900/60 border-white/8"),children:[e.avatar_url?(0,le.jsx)("img",{src:e.avatar_url,alt:"",className:"w-10 h-10 rounded-full object-cover flex-shrink-0 border border-white/10"}):(0,le.jsx)("div",{className:"w-10 h-10 rounded-full bg-teal-600/15 border border-teal-500/20 flex items-center justify-center flex-shrink-0 text-teal-400 font-black text-sm",children:(e.prenom||"M").charAt(0).toUpperCase()}),(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 flex-wrap mb-1",children:[(0,le.jsx)("span",{className:"text-white font-bold text-sm",children:e.prenom}),e.contexte&&(0,le.jsxs)("span",{className:"text-slate-500 text-xs",children:["\xb7 ",e.contexte]}),e.type_resultat&&(0,le.jsx)("span",{className:"text-[10px] px-2 py-0.5 rounded-full bg-blue-600/10 border border-blue-500/20 text-blue-400",children:e.type_resultat}),(0,le.jsx)("span",{className:"text-[10px] px-2 py-0.5 rounded-full border ".concat("video"===e.media_type?"bg-purple-600/10 border-purple-500/20 text-purple-400":"image"===e.media_type?"bg-sky-600/10 border-sky-500/20 text-sky-400":"bg-slate-800 border-white/8 text-slate-500"),children:ae[e.media_type]||"Texte"}),(0,le.jsx)("span",{className:"text-[10px] px-2 py-0.5 rounded-full border ".concat("publie"===e.statut?"bg-teal-500/10 border-teal-500/20 text-teal-400":"bg-slate-800 border-white/8 text-slate-500"),children:"publie"===e.statut?"Publi\xe9":"Brouillon"})]}),(0,le.jsx)("p",{className:"text-slate-400 text-xs leading-relaxed line-clamp-2",children:e.contenu}),e.capture_url&&(0,le.jsx)("div",{className:"mt-1.5",children:(0,le.jsx)("img",{src:e.capture_url.startsWith("/")?"".concat(i).c
1oncat(e.capture_url):e.capture_url,alt:"capture",className:"h-16 rounded-lg object-cover border border-white/8"})}),e.video_url&&(0,le.jsxs)("a",{href:e.video_url,target:"_blank",rel:"noopener noreferrer",className:"text-purple-400 text-[10px] flex items-center gap-1 mt-1 hover:underline",children:[(0,le.jsx)(j.A,{size:9})," Voir la vid\xe9o"]})]}),(0,le.jsxs)("div",{className:"flex flex-col gap-1.5 flex-shrink-0",children:[(0,le.jsx)("button",{onClick:()=>(async(e,a)=>{try{await n.A.patch("".concat(i,"/api/social-proof/").concat(e,"/toggle-publish"),{},{headers:t()}),s("publie"===a?"Repass\xe9 en brouillon":"Publi\xe9 \u2713","success"),$()}catch(l){s("Erreur","error")}})(e.id,e.statut),title:"publie"===e.statut?"Passer en brouillon":"Publier",className:"p-1.5 rounded-lg text-xs transition-all ".concat("publie"===e.statut?"text-teal-400 bg-teal-500/10 hover:bg-teal-500/20":"text-slate-500 hover:text-teal-400 bg-slate-800"),children:"publie"===e.statut?(0,le.jsx)(E.A,{size:12}):(0,le.jsx)(R.A,{size:12})}),(0,le.jsx)("button",{onClick:()=>(e=>{N({prenom:e.prenom||"",contexte:e.contexte||"",contenu:e.contenu||"",type_resultat:e.type_resultat||"",avatar_url:e.avatar_url||"",capture_url:e.capture_url||"",video_url:e.video_url||"",thumbnail_url:e.thumbnail_url||"",media_type:e.media_type||"text",lien:e.lien||"",date_temoignage:e.date_temoignage||"",statut:e.statut||"brouillon",ordre:e.ordre||0}),Z(e.capture_url||""),I(e.id),M(!0),window.scrollTo({top:0,behavior:"smooth"})})(e),className:"p-1.5 rounded-lg bg-slate-800 text-slate-400 hover:text-white transition-all",children:(0,le.jsx)(T.A,{size:12})}),(0,le.jsx)("button",{onClick:()=>(async e=>{if(window.confirm("Supprimer ce t\xe9moignage ? Cette action est irr\xe9versible."))try{await n.A.delete("".concat(i,"/api/social-proof/").concat(e),{headers:t()}),s("Supprim\xe9 \u2713","success"),$()}catch(a){s("Erreur","error")}})(e.id),className:"p-1.5 rounded-lg bg-red-500/5 hover:bg-red-500/15 text-red-500 transition-all",children:(0,le.jsx)(F.A,{size:12})})]})]},e.id))})]})}function wa(e){let t=e.headers,s=e.msg;const a=(0,r.useState)([]),i=(0,l.A)(a,2),d=i[0],o=i[1],c=(0,r.useState)(!0),x=(0,l.A)(c,2),m=x[0],u=x[1],p=(0,r.useState)("all"),h=(0,l.A)(p,2),b=h[0],g=h[1],f=(0,r.useState)(null),v=(0,l.A)(f,2),N=v[0],y=v[1],w=(0,r.useState)(""),_=(0,l.A)(w,2),k=_[0],S=_[1],z=(0,r.useState)(""),E=(0,l.A)(z,2),R=E[0],T=E[1],F=(0,r.useState)(!1),I=(0,l.A)(F,2),L=I[0],q=I[1],P=window.location.origin,M={pending_form:"En attente formulaire",form_completed:"Formulaire rempli",in_review:"En cours",completed:"Termin\xe9",cancelled:"Annul\xe9"},O={pending_form:"text-amber-400",form_completed:"text-sky-400",in_review:"text-purple-400",completed:"text-emerald-400",cancelled:"text-slate-500"},V=(0,r.useCallback)(async()=>{u(!0);try{const e=(await n.A.get("".concat(P,"/api/audit/admin/list"),{headers:t})).data;o(e.audits||[])}catch(e){s("Erreur chargement audits","error")}finally{u(!1)}},[]);(0,r.useEffect)(()=>{V()},[]);const B="all"===b?d:d.filter(e=>e.status===b);return(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h2",{className:"text-lg font-black text-white",children:"Audits Hugo"}),(0,le.jsxs)("p",{className:"text-slate-500 text-xs mt-0.5",children:[d.length," audit",d.length>1?"s":""," au total"]})]}),(0,le.jsx)("button",{onClick:V,className:"text-slate-400 hover:text-white p-2 rounded-lg",children:(0,le.jsx)(A.A,{size:16})})]}),(0,le.jsx)("div",{className:"flex gap-2 flex-wrap",children:["all","pending_form","form_completed","in_review","completed","cancelled"].map(e=>(0,le.jsx)("button",{onClick:()=>g(e),className:"px-3 py-1.5 rounded-lg text-xs font-semibold border transition-all ".concat(b===e?"bg-sky-500/15 border-sky-500/30 text-sky-300":"bg-white/3 border-white/8 text-slate-400 hover:border-white/15"),children:"all"===e?"Tous":M[e]||e},e))}),m?(0,le.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,le.jsx)("div",{className:"w-6 h-6 border-2 border-sky-500/30 border-t-sky-500 rounded-full animate-spin"})}):0===B.length?(0,le.jsx)("div",{className:"text-center py-16 text-slate-600",children:"Aucun audit trouv\xe9"}):(0,le.jsx)("div",{className:"space-y-3",children:B.map(e=>{var a;return(0,le.jsxs)("div",{className:"bg-white/3 border border-white/8 rounded-xl p-4 space-y-3",children:[(0,le.jsxs)("div",{className:"flex items-start justify-between gap-3 flex-wrap",children:[(0,le.jsxs)("div",{children:[(0,le.jsxs)("p",{className:"text-white font-semibold text-sm",children:[e.user_name," ",(0,le.jsxs)("span",{className:"text-slate-500 font-normal",children:["\u2014 ",e.user_email]})]}),(0,le.jsxs)("div",{className:"flex items-center gap-3 mt-1",children:[(0,le.jsx)("span",{className:"text-xs font-semibold ".concat(O[e.status]||"text-slate-400"),children:M[e.status]||e.status}),(0,le.jsx)("span",{className:"text-xs text-slate-600",children:null===(a=e.created_at)||void 0===a?void 0:a.slice(0,10)})]})]}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsx)("select",{value:e.status,onChange:a=>(async(e,l)=>{try{await n.A.put("".concat(P,"/api/audit/admin/").concat(e,"/status"),{status:l},{headers:t}),V()}catch(a){s("Erreur mise \xe0 jour","error")}})(e.id,a.target.value),className:"text-xs bg-white/5 border border-white/10 rounded-lg px-2 py-1.5 text-slate-300",children:["pending_form","form_completed","in_review","completed","cancelled"].map(e=>(0,le.jsx)("option",{value:e,children:M[e]||e},e))}),"form_completed"===e.status&&(0,le.jsx)("button",{onClick:()=>{y(e.id),S(e.admin_response_link||""),T(e.admin_message||"")},className:"text-xs bg-emerald-500/10 border border-emerald-500/20 text-emerald-400 px-3 py-1.5 rounded-lg hover:bg-emerald-500/15",children:"Livrer"})]})]}
1),e.answers&&Object.keys(e.answers).length>0&&(0,le.jsxs)("details",{className:"text-xs text-slate-500",children:[(0,le.jsx)("summary",{className:"cursor-pointer text-sky-400 hover:text-sky-300 font-semibold",children:"Voir les r\xe9ponses du questionnaire"}),(0,le.jsx)("div",{className:"mt-2 grid grid-cols-2 gap-x-4 gap-y-1.5 bg-black/20 rounded-lg p-3",children:Object.entries(e.answers).filter(e=>{let t=(0,l.A)(e,2)[1];return null!==t&&""!==t&&void 0!==t}).map(e=>{let t=(0,l.A)(e,2),s=t[0],a=t[1];return(0,le.jsxs)("div",{children:[(0,le.jsxs)("span",{className:"text-slate-600 capitalize",children:[s.replace(/_/g," ")," : "]}),(0,le.jsx)("span",{className:"text-slate-300",children:String(a)})]},s)})})]}),e.admin_response_link&&(0,le.jsxs)("div",{className:"flex items-center gap-2 text-xs text-emerald-400",children:[(0,le.jsx)(C.A,{size:12})," R\xe9sultat livr\xe9 \u2014"," ",(0,le.jsxs)("a",{href:e.admin_response_link,target:"_blank",rel:"noreferrer",className:"underline flex items-center gap-1",children:["Voir le lien ",(0,le.jsx)(j.A,{size:10})]})]})]},e.id)})}),N&&(0,le.jsx)("div",{className:"fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4",children:(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/10 rounded-2xl p-6 w-full max-w-md
1space-y-4",children:[(0,le.jsx)("h3",{className:"text-white font-black",children:"Livrer l'audit"}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-xs text-slate-400 mb-1.5 block",children:"Lien Google Drive / PDF"}),(0,le.jsx)("input",{type:"url",value:k,onChange:e=>S(e.target.value),placeholder:"https://drive.google.com/...",className:"w-full bg-white/5 border border-white/10 rounded-xl px-3 py-2.5 text-white text-sm focus:outline-none"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-xs text-slate-400 mb-1.5 block",children:"Message pour le membre (optionnel)"}),(0,le.jsx)("textarea",{value:R,onChange:e=>T(e.target.value),placeholder:"Message personnalis\xe9 qui accompagne l'audit...",rows:4,className:"w-full bg-white/5 border border-white/10 rounded-xl px-3 py-2.5 text-white text-sm focus:outline-none resize-none"})]}),(0,le.jsxs)("div",{className:"flex gap-3",children:[(0,le.jsx)("button",{onClick:()=>{y(null),S(""),T("")},className:"flex-1 py-2.5 rounded-xl border border-white/10 text-slate-400 hover:text-white text-sm font-semibold",children:"Annuler"}),(0,le.jsxs)("button",{onClick:()=>(async e=>{q(!0);try{await n.A.put("".concat(P,"/api/audit/admin/").concat(e,"/complete"),{response_link:k,admin_message:R},{headers:t}),s("Audit envoy\xe9 au membre !","success"),y(null),S(""),T(""),V()}catch(a){s("Erreur envoi","error")}finally{q(!1)}})(N),disabled:L,className:"flex-1 py-2.5 rounded-xl bg-emerald-600 hover:bg-emerald-500 text-white font-bold text-sm disabled:opacity-50 flex items-center justify-center gap-2",children:[L?(0,le.jsx)("div",{className:"w-4 h-4 border-2 border-white/30 border-t-white rounded-full animate-spin"}):(0,le.jsx)(D.A,{size:14}),"Envoyer au membre"]})]})]})})]})}function Aa(e){let t=e.headers,s=e.msg;const i=(0,r.useState)([]),d=(0,l.A)(i,2),o=d[0],c=d[1],x=(0,r.useState)(!0),m=(0,l.A)(x,2),u=m[0],p=m[1],h=(0,r.useState)("all"),b=(0,l.A)(h,2),g=b[0],f=b[1],j=(0,r.useState)(3),v=(0,l.A)(j,2),N=v[0],y=v[1],w=(0,r.useState)(!1),_=(0,l.A)(w,2),k=_[0],S=_[1],z=(0,r.useState)(3),E=(0,l.A)(z,2),R=E[0],T=E[1],F=window.location.origin,D={nouveau:"text-sky-400","\xe0_appeler":"text-amber-400","contact\xe9":"text-blue-400","int\xe9ress\xe9":"text-purple-400","accept\xe9":"text-emerald-400","refus\xe9":"text-red-400","pay\xe9":"text-green-400",perdu:"text-slate-500"},q=(0,r.useCallback)(async()=>{p(!0);try{var e,a;const s=await Promise.all([n.A.get("".concat(F,"/api/coaching/admin/applications"),{headers:t}),n.A.get("".concat(F,"/api/coaching/admin/slots"),{headers:t})]),r=(0,l.A)(s,2),i=r[0],d=r[1];c(i.data.applications||[]),y(null!==(e=d.data.slots)&&void 0!==e?e:3),T(null!==(a=d.data.slots)&&void 0!==a?a:3)}catch(r){s("Erreur chargement","error")}finally{p(!1)}},[]);(0,r.useEffect)(()=>{q()},[]);const P="all"===g?o:o.filter(e=>e.status===g);return(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h2",{className:"text-lg font-black text-white",children:"Candidatures Accompagnement"}),(0,le.jsxs)("p",{className:"text-slate-500 text-xs mt-0.5",children:[o.length," candidature",o.length>1?"s":""]})]}),(0,le.jsxs)("div",{className:"flex items-center gap-3",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 bg-purple-500/10 border border-purple-500/20 rounded-xl px-3 py-2",children:[(0,le.jsx)("span",{className:"text-purple-300 text-xs font-semibold",children:"Places disponibles :"}),k?(0,le.jsx)("input",{type:"number",value:R,onChange:e=>T(e.target.value),min:"0",max:"99",className:"w-12 bg-white/10 border border-white/15 rounded-lg px-2 py-0.5 text-white text-xs text-center focus:outline-none"}):(0,le.jsx)("span",{className:"text-purple-200 font-black text-sm",children:N}),k?(0,le.jsx)("button",{onClick:async()=>{try{await n.A.put("".concat(F,"/api/coaching/admin/slots"),{slots:parseInt(R)},{headers:t}),y(parseInt(R)),S(!1),s("Places mises \xe0 jour","success")}catch(e){s("Erreur","error")}},className:"text-emerald-400 text-xs hover:text-emerald-300",children:(0,le.jsx)(C.A,{size:13})}):(0,le.jsx)("button",{onClick:()=>S(!0),className:"text-slate-400 text-xs hover:text-white",children:(0,le.jsx)(I.A,{size:11})})]}),(0,le.jsx)("button",{onClick:q,className:"text-slate-400 hover:text-white p-2 rounded-lg",children:(0,le.jsx)(A.A,{size:16})})]})]}),(0,le.jsx)("div",{className:"flex gap-1.5 flex-wrap",children:["all","nouveau","\xe0_appeler","contact\xe9","int\xe9ress\xe9","accept\xe9","refus\xe9","pay\xe9","perdu"].map(e=>(0,le.jsx)("button",{onClick:()=>f(e),className:"px-2.5 py-1 rounded-lg text-xs font-semibold border transition-all capitalize ".concat(g===e?"bg-purple-500/15 border-purple-500/30 text-purple-300":"bg-white/3 border-white/8 text-slate-500 hover:border-white/15"),children:"all"===e?"Tous":e.replace("_"," ")},e))}),u?(0,le.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,le.jsx)("div",{className:"w-6 h-6 border-2 border-purple-500/30 border-t-purple-500 rounded-full animate-spin"})}):0===P.length?(0,le.jsx)("div",{className:"text-center py-16 text-slate-600",children:"Aucune candidature"}):(0,le.jsx)("div",{className:"space-y-3",children:P.map(e=>(0,le.jsxs)("div",{className:"bg-white/3 border border-white/8 rounded-xl p-4 space-y-3",children:[(0,le.jsxs)("div",{className:"flex items-start justify-between gap-3 flex-wrap",children:[(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,le.jsx)("p",{className:"text-white font-bold text-sm",children:e.first_name}),e.age&&(0,le.jsx)("span",{className:"text-slate-500 text-xs",children:e.age}),(0,le.jsxs)("span",{className:"text-xs font-semibold ".concat(D[e.status]||"text-slate-400"),children:["\u25cf ",e.status]})]}),(0,le.jsx)("p",{className:"text-slate-400 text-xs mt-0.5",children:e.email}),(0,le.jsxs)("a",{href:"tel:".concat(e.phone),className:"inline-flex items-center gap-1.5 mt-1.5 text-sky-300 font-black text-lg hover:text-sky-200 transition-colors",children:[(0,le.jsx)(L.A,{size:15}),e.phone]}
1)]}),(0,le.jsx)("select",{value:e.status,onChange:l=>(async(e,r)=>{try{await n.A.put("".concat(F,"/api/coaching/admin/applications/").concat(e,"/status"),{status:r},{headers:t}),c(t=>t.map(t=>t.id===e?(0,a.A)((0,a.A)({},t),{},{status:r}):t))}catch(l){s("Erreur mise \xe0 jour","error")}})(e.id,l.target.value),className:"text-xs bg-white/5 border border-white/10 rounded-lg px-2 py-1.5 text-slate-300 flex-shrink-0",children:["nouveau","\xe0_appeler","contact\xe9","int\xe9ress\xe9","accept\xe9","refus\xe9","pay\xe9","perdu"].map(e=>(0,le.jsx)("option",{value:e,children:e.replace("_"," ")},e))})]}),(0,le.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-2 text-xs",children:[e.vinted_level&&(0,le.jsx)(_a,{label:"Niveau",val:e.vinted_level}),e.budget&&(0,le.jsx)(_a,{label:"Budget",val:e.budget}),e.hours_per_week&&(0,le.jsx)(_a,{label:"Temps/semaine",val:e.hours_per_week}),e.objective&&(0,le.jsx)(_a,{label:"Objectif",val:e.objective,className:"col-span-2"}),e.main_blocker&&(0,le.jsx)(_a,{label:"Blocage",val:e.main_blocker,className:"col-span-2"}),e.availability&&(0,le.jsx)(_a,{label:"Disponibilit\xe9",val:e.availability}),e.serious&&(0,le.jsx)(_a,{label:"Engagement",val:e.serious})]}),e.why_hugo&&(0,le.jsxs)("div",{className:"text-xs bg-black/20 rounded-lg p-2.5",children:[(0,le.jsx)("span",{className:"text-slate-600",children:"Pourquoi Hugo : "}),(0,le.jsx)("span",{className:"text-slate-300",children:e.why_hugo})]})]},e.id))})]})}function _a(e){let t=e.label,s=e.val,a=e.className,l=void 0===a?"":a;return(0,le.jsxs)("div",{className:"bg-white/3 rounded-lg p-2 ".concat(l),children:[(0,le.jsx)("div",{className:"text-slate-600 mb-0.5",children:t}),(0,le.jsx)("div",{className:"text-slate-300 text-xs",children:s})]})}function ka(){var e;const t=(0,se.A)(),s=t.user,d=t.logout,o=t.authHeaders,c=o,x=(0,i.Zp)(),u=(0,ae.L5)(s),h=(0,r.useState)("overview"),j=(0,l.A)(h,2),w=j[0],k=j[1],S=(0,r.useState)(!1),z=(0,l.A)(S,2),E=z[0],R=z[1],T=(0,r.useState)(null),L=(0,l.A)(T,2),re=L[0],ie=L[1],de=(0,r.useState)([]),oe=(0,l.A)(de,2),ce=oe[0],me=oe[1],ue=(0,r.useState)("30d"),pe=(0,l.A)(ue,2),he=pe[0],be=pe[1],ge=(0,r.useState)([]),je=(0,l.A)(ge,2),ve=je[0],Ne=je[1],we=(0,r.useState)([]),Ae=(0,l.A)(we,2),_e=Ae[0],ke=Ae[1],Se=(0,r.useState)([]),Ce=(0,l.A)(Se,2),ze=Ce[0],Re=Ce[1],Te=(0,r.useState)(!1),Fe=(0,l.A)(Te,2),De=Fe[0],Le=Fe[1],qe=(0,r.useState)([]),Pe=(0,l.A)(qe,2),Me=Pe[0],Oe=Pe[1],Ve=(0,r.useState)([]),Be=(0,l.A)(Ve,2),Ue=Be[0],We=Be[1],He=(0,r.useState)(""),Ye=(0,l.A)(He,2),Ge=Ye[0],Ke=Ye[1],Je=(0,r.useState)("success"),Qe=(0,l.A)(Je,2),Xe=Qe[0],$e=Qe[1],et=(0,r.useState)({title:"",description:"",content:"",youtube_url:"",level:"D\xe9butant",read_time:"5 min",icon:"book",required_plan:"starter"}),tt=(0,l.A)(et,2),st=tt[0],at=tt[1],rt=(0,r.useState)(null),it=(0,l.A)(rt,2),nt=it[0],dt=it[1],ot=(0,r.useState)({title:"",description:"",date:"",time:"20:00",type:"live",discord_link:"",replay_link:""}),ct=(0,l.A)(ot,2),mt=ct[0],ut=ct[1],pt=(0,r.useState)(null),ht=(0,l.A)(pt,2),bt=ht[0],gt=ht[1],ft=(0,r.useState)({week_label:"",niches:[{name:"",buy_price:"",sell_price:"",margin:"",analysis:""}],bonus_tip:""}),jt=(0,l.A)(ft,2),vt=(jt[0],jt[1],(0,r.useState)({title:"",message:"",type:"info"})),Nt=(0,l.A)(vt,2),yt=Nt[0],wt=Nt[1],At=(0,r.useState)({name:"",category:"Jeans & Denim",buy_price_min:"",buy_price_max:"",sell_price_min:"",sell_price_max:"",demand:"Forte",season:"",source_tips:""}),kt=(0,l.A)(At,2),St=(kt[0],kt[1],(0,r.useState)(null)),Ct=(0,l.A)(St,2),Et=(Ct[0],Ct[1],(0,r.useState)(!1)),Rt=(0,l.A)(Et,2),Tt=(Rt[0],Rt[1],(0,r.useState)(!1)),Ft=(0,l.A)(Tt,2),Dt=Ft[0],It=Ft[1],Lt=(0,r.useState)(!1),qt=(0,l.A)(Lt,2),Pt=qt[0],Ot=qt[1],Vt=(0,r.useState)(null),Bt=(0,l.A)(Vt,2),Ht=(Bt[0],Bt[1],(0,r.useState)({plan:"",roles:[]})),Gt=(0,l.A)(Ht,2),Kt=(Gt[0],Gt[1],(0,r.useState)([])),Jt=(0,l.A)(Kt,2),Qt=(Jt[0],Jt[1],(0,r.useState)([])),Zt=(0,l.A)(Qt,2),$t=(Zt[0],Zt[1],(0,r.useState)("history")),es=(0,l.A)($t,2),ss=(es[0],es[1],(0,r.useState)(!1)),as=(0,l.A)(ss,2),rs=(as[0],as[1],(0,r.useState)(null)),is=(0,l.A)(rs,2),ns=(is[0],is[1],(0,r.useState)({title:"",category:"Sneakers",description:"",is_published:!0,niches:[{brand:"",product_type:"",avg_sell_price:"",buy_price:"",profit:"",potential:"\xc9lev\xe9",tip:""}]})),os=(0,l.A)(ns,2),cs=(os[0],os[1],(0,r.useState)("")),xs=(0,l.A)(cs,2),ms=xs[0],ps=xs[1],hs=(0,r.useState)(null),bs=(0,l.A)(hs,2),gs=bs[0],fs=bs[1],js=(0,r.useState)(null),vs=(0,l.A)(js,2),ys=vs[0],ws=vs[1],_s=(0,r.useState)(!1),Ss=(0,l.A)(_s,2),Cs=Ss[0],Es=Ss[1],Rs=(0,r.useState)({amount:"",permanent:!0,reason:""}),Ts=(0,l.A)(Rs,2),Fs=Ts[0],Ds=Ts[1],Is=(0,r.useState)(!1),Ls=(0,l.A)(Is,2),Ps=Ls[0],Ms=Ls[1],Os=(0,r.useState)({quota_key:"tools.photo_ai_per_month",delta:""}),Vs=(0,l.A)(Os,2),Bs=Vs[0],Ws=Vs[1],Hs=(0,r.useState)(!1),Ys=(0,l.A)(Hs,2),Ks=Ys[0],Js=Ys[1],Zs=(0,r.useState)([]),Xs=(0,l.A)(Zs,2),$s=Xs[0],ta=Xs[1],sa=(0,r.useState)(0),aa=(0,l.A)(sa,2),la=aa[0],ra=aa[1],ia=(0,r.useState)(!1),oa=(0,l.A)(ia,2),ca=oa[0],_a=oa[1],ka=(0,r.useState)("all"),Sa=(0,l.A)(ka,2),Ca=Sa[0],za=Sa[1],Ea=(0,r.useState)(""),Ra=(0,l.A)(Ea,2),Ta=Ra[0],Fa=Ra[1],Da=(0,r.useState)([]),Ia=(0,l.A)(Da,2),La=Ia[0],qa=Ia[1],Pa=(0,r.useState)(0),Ma=(0,l.A)(Pa,2),Oa=Ma[0],Va=Ma[1],Ba=(0,r.useState)(0),Ua=(0,l.A)(Ba,2),Wa=Ua[0],Ha=Ua[1],Ya=(0,r.useState)(!1),Ga=(0,l.A)(Ya,2),Ka=Ga[0],Ja=Ga[1],Qa=(0,r.useState)(!1),Za=(0,l.A)(Qa,2),Xa=Za[0],$a=Za[1],el=(0,r.useState)({}),tl=(0,l.A)(el,2),sl=tl[0],al=tl[1],ll=(0,r.useState)({}),rl=(0,l.A)(ll,2),il=rl[0],nl=rl[1],dl=(0,r.useState)(null),ol=(0,l.A)(dl,2),cl=ol[0],xl=ol[1],ml=(0,r.useState)(null),ul=(0,l.A)(ml,2),pl=ul[0],hl=ul[1],bl=(0,r.useState)(null),gl=(0,l.A)(bl,2),fl=(gl[0],gl[1],(0,r.useState)(!1)),jl=(0,l.A)(fl,2),vl=(jl[0],jl[1],(0,r.useState)(null)),Nl=(0,l.A)(vl,2),yl=(Nl[0],Nl[1],(0,r.useState)(!1)),wl=(0,l.A)(yl,2),Al=(wl[0],wl[1],function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"success";Ke(e),$e(t),setTimeout(()=>Ke(""),3e3)}),_l=(0,r.useState)([]),kl=(0,l.A)(_l,2),Sl=(kl[0],kl[1]),Cl=(0,r.useState)([]),zl=(0,l.A)(Cl,2),El=(zl[0],zl[1]),Rl=(0,r.useState)([]),Tl=(0,l.A)(Rl,2),Fl=Tl[0],Dl=Tl[1],Il=(0,r.useState)("all"),Ll=(0,l.A)(Il,2),ql=Ll[0],Pl=Ll[1],Ml=(0,r.useState)([]),Ol=(0,l.A)(Ml,2),Vl=Ol[0],Bl=Ol[1],Ul=(0,r.useState)(0),Wl=(0,l.A)(Ul,2),Hl=Wl[0],Yl=Wl[1],Gl=(0,r.useState)([]),Kl=(0,l.A)(Gl,2),Jl=Kl[0],Ql=Kl[1],Zl=(0,r.useState)(null),Xl=(0,l.A)(Zl,2),$l=Xl[0],er=Xl[1],tr=(0,r.useState)(""),sr=(0,l.A)(tr,2),ar=sr[0],lr=sr[1],rr=(0,r.useState)(!1),ir=(0,l.A)(rr,2),nr=ir[0],dr=ir[1],or=(0,r.useState)([]),cr=(0,l.A)(or,2),xr=cr[0],mr=cr[1],ur=(0,r.useState)(null),pr=(0,l.A)(ur,2),hr=(pr[0],pr[1],(0,r.useState)(null)),br=(0,l.A)(hr,2),gr=br[0],fr=br[1],jr=(0,r.useState)(""),vr=(0,l.A)(jr,2),Nr=vr[0],yr=vr[1],wr=(0,r.useState)("Virement"),Ar=(0,l.A)(wr,2),_r=Ar[0],kr=Ar[1],Sr=(0,r.useState)(""),Cr=(0,l.A)(Sr,2),zr=Cr[0],Er=Cr[1],Rr=(0,r.useState)(!1),Tr=(0,l.A)(Rr,2),Fr=Tr[0],Dr=Tr[1],Ir=(0,r.useState)(null),Lr=(0,l.A)(Ir,2),qr=Lr[0],Pr=Lr[1],Mr=(0,r.useState)(15),Or=(0,l.A)(Mr,2),Vr=Or[0],Br=Or[1],Ur=(0,r.useState)(!1),Wr=(0,l.A)(Ur,2),Hr=Wr[0],Yr=Wr[1],Gr=(0,r.useState)(null),Kr=(0,l.A)(Gr,2),Jr=Kr[0],Qr=Kr[1],Zr=(0,r.useState)({amount:"",description:"",plan:"manual"}),Xr=(0,l.A)(Zr,2),$r=Xr[0],ei=Xr[1],ti=(0,r.useState)(!1),si=(0,l.A)(ti,2),ai=si[0],li=si[1],ri=(0,r.useState)(!1),ii=(0,l.A)(ri,2),ni=(ii[0],ii[1]),di=(0,r.useState)({code:"",name:"",commission_rate:0}),oi=(0,l.A)(di,2),ci=(oi[0],oi[1],(0,r.useState)(!1)),xi=(0,l.A)(ci,2),mi=(xi[0],xi[1],(0,r.useCallback)(async()=>{const e=c();try{const t=await Promise.all([n.A.get("".concat(ma,"/api/admin/stats"),{headers:e}),n.A.get("".concat(ma,"/api/admin/members"),{headers:e}),n.A.get("".concat(ma,"/api/admin/bookings"),{headers:e}),n.A.get("".concat(ma,"/api/admin/sales"),{headers:e}),n.A.get("".concat(ma,"/api/admin/modules"),{headers:e}),n.A.get("".concat(ma,"/api/admin/events"),{headers:e}),n.A.get("".concat(ma,"/api/contact/book-call/list"),{headers:e}),n.A.get("".concat(ma,"/api/wholesalers/admin/requests"),{headers:e}),n.A.get("".concat(ma,"/api/admin/commissions"),{headers:e}).catch(()=>({data:{commissions:[]}})),n.A.get("".concat(ma,"/api/admin/leads"),{headers:e}).catch(()=>({data:{leads:[],total:0}})),n.A.get("".concat(ma,"/api/messages/admin/conversations"),{headers:e}).catch(()=>({data:[]})),n.A.get("".concat(ma,"/api/admin/affiliates"),{headers:e}).catch(()=>({data:[]}))]),s=(0,l.A)(t,12),a=s[0],r=s[1],i=s[2],d=s[3],o=s[4],c=s[5],x=s[6],m=s[7],u=s[8],p=s[9],h=s[10],b=s[11];ie(a.data),Ne(r.data),ke(i.data),Re(d.data),Oe(o.data),We(c.data),Sl(x.data||[]),El(m.data||[]),Dl(u.data.commissions||[]),Bl(p.data.leads||[]),Yl(p.data.total||0),Ql(h.data||[]),mr(b.data||[])}catch(t){console.error("Admin load error",t)}},[c])),ui=(0,r.useCallback)(async e=>{try{const t=await n.A.get("".concat(ma,"/api/admin/sales-chart?period=").concat(e),{headers:c()});me(t.data)}catch(t){console.error("Chart load error",t)}},[c]);(0,r.useEffect)(()=>{mi()},[mi]),(0,r.useEffect)(()=>{ui(he)},[he,ui]);const pi=async()=>{Le(!0);try{const e=(await n.A.post("".concat(ma,"/api/admin/analytics/stripe/resync"),{},{headers:c()})).data;Al("Stripe resynchronis\xe9 : ".concat(e.subscriptions_synced," abonnement(s), ").concat(e.invoices_synced," facture(s)"));const t=await n.A.get("".concat(ma,"/api/admin/sales"),{headers:c()});Re(t.data),ui(he)}catch(s){var e,t;Al((null===(e=s.response)||void 0===e||null===(t=e.data)||void 0===t?void 0:t.detail)||"Erreur resync Stripe","error")}finally{Le(!1)}},hi=()=>{d(),x("/")},bi=(0,r.useState)(null),gi=(0,l.A)(bi,2),fi=(gi[0],gi[1],(0,r.useState)(null)),ji=(0,l.A)(fi,2),vi=(ji[0],ji[1],(0,r.useState)(!1)),Ni=(0,l.A)(vi,2),yi=(Ni[0],Ni[1],(0,r.useState)([])),wi=(0,l.A)(yi,2),Ai=(wi[0],wi[1],(0,r.useState)([])),_i=(0,l.A)(Ai,2),ki=(_i[0],_i[1],async()=>
1{try{nt?(await n.A.put("".concat(ma,"/api/admin/modules/").concat(nt),st,{headers:c()}),Al("Module mis \xe0 jour")):(await n.A.post("".concat(ma,"/api/admin/modules"),st,{headers:c()}),Al("Module cr\xe9\xe9 + membres notifi\xe9s")),at({title:"",description:"",content:"",video_url:"",level:"D\xe9butant",read_time:"5 min",icon:"book",required_plan:"starter"}),dt(null),It(!1),mi()}catch(s){var e,t;Al((null===(e=s.response)||void 0===e||null===(t=e.data)||void 0===t?void 0:t.detail)||"Erreur","error")}}),Si=async()=>{try{bt?(await n.A.put("".concat(ma,"/api/admin/events/").concat(bt),mt,{headers:c()}),Al("\xc9v\xe9nement mis \xe0 jour")):(await n.A.post("".concat(ma,"/api/admin/events"),mt,{headers:c()}),Al("\xc9v\xe9nement cr\xe9\xe9")),ut({title:"",description:"",date:"",time:"20:00",type:"live",discord_link:"",replay_link:""}),gt(null),Ot(!1),mi()}catch(s){var e,t;Al((null===(e=s.response)||void 0===e||null===(t=e.data)||void 0===t?void 0:t.detail)||"Erreur","error")}},Ci=async()=>{try{const e=ve.filter(e=>e.plan);let t=0;for(const s of e)await n.A.post("".concat(ma,"/api/admin/notify-member"),(0,a.A)({user_id:s.id},yt),{headers:c()}),t++;Al("Notification envoy\xe9e \xe0 ".concat(t," membres")),wt({title:"",message:"",type:"info"})}catch(e){Al("Erreur lors de l'envoi","error")}},zi=(0,r.useState)(null),Ei=(0,l.A)(zi,2),Ri=Ei[0],Ti=Ei[1],Fi=(0,r.useState)({status:"accepted",meeting_link:"",meeting_time:"",admin_note:""}),Di=(0,l.A)(Fi,2),Ii=Di[0],Li=Di[1],qi=async()=>{if(!Ri)return;const e=new URLSearchParams({status:Ii.status});Ii.meeting_link&&e.append("meeting_link",Ii.meeting_link),Ii.meeting_time&&e.append("meeting_time",Ii.meeting_time),Ii.admin_note&&e.append("admin_note",Ii.admin_note),await n.A.put("".concat(ma,"/api/admin/bookings/").concat(Ri,"?").concat(e),{},{headers:c()}),Al("Demande ".concat("accepted"===Ii.status?"accept\xe9e":"refus\xe9e"," \u2713")),Ti(null),mi()},Pi=()=>{var e,t;return(0,le.jsxs)("aside",{className:"fixed top-0 left-0 h-full w-64 bg-slate-950 border-r border-white/5 flex flex-col z-40 transition-transform duration-300 ".concat(E?"translate-x-0":"-translate-x-full md:translate-x-0"),children:[(0,le.jsxs)("div",{className:"flex items-center gap-3 px-6 py-5 border-b border-white/5",children:[(0,le.jsx)("div",{className:"w-8 h-8 rounded-lg bg-gradient-to-br from-teal-400 to-blue-500 flex items-center justify-center shadow-lg shadow-teal-500/20 flex-shrink-0",children:(0,le.jsx)("span",{className:"text-white font-bold text-lg leading-none",style:{fontFamily:"Space Grotesk, sans-serif"},children:"V"})}),(0,le.jsxs)("div",{children:[(0,le.jsx)("span",{className:"text-white font-bold text-sm block",style:{fontFamily:"Outfit, sans-serif"},children:"VINTYRESELL"}),(0,le.jsx)("span",{className:"text-xs font-semibold ".concat(u?"text-red-400":"text-blue-400"),children:u?"Super Admin":"Admin"})]}),(0,le.jsx)("button",{className:"md:hidden ml-auto text-slate-400",onClick:()=>R(!1),children:(0,le.jsx)(q.A,{size:16})})]}),(0,le.jsx)("nav",{className:"flex-1 py-3 px-3 space-y-0.5 overflow-y-auto",children:ha.map((e,t)=>e.divider?(0,le.jsx)("p",{className:"text-slate-600 text-[10px] font-bold uppercase tracking-widest px-3 pt-3 pb-1",children:e.divider},"div-".concat(t)):(0,le.jsxs)("button",{onClick:()=>{k(e.id),R(!1)},"data-testid":"admin-nav-".concat(e.id),className:"flex items-center gap-3 w-full px-3 py-2.5 rounded-xl text-sm font-medium transition-all ".concat(w===e.id?"bg-blue-600/15 text-blue-400 border border-blue-500/20":"text-slate-400 hover:text-white hover:bg-white/5"),children:[(0,le.jsx)(e.icon,{size:15,className:e.color||""}),e.label]},e.id))}),(0,le.jsxs)("div",{className:"px-3 py-4 border-t border-white/5",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2.5 px-3 py-2 mb-2",children:[(0,le.jsx)("div",{className:"w-7 h-7 rounded-full border flex items-center justify-center font-bold text-xs ".concat(u?"bg-red-600/20 border-red-500/30 text-red-400":"bg-blue-600/20 border-blue-500/30 text-blue-400"),children:null===s||void 0===s||null===(e=s.email)||void 0===e||null===(t=e[0])||void 0===t?void 0:t.toUpperCase()}),(0,le.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,le.jsx)("p",{className:"text-white text-xs font-semibold truncate",children:null===s||void 0===s?void 0:s.email}),(0,le.jsx)("p",{className:"text-xs ".concat(u?"text-red-400":"text-blue-400"),children:u?"Super Admin":"Admin"})]})]}),(0,le.jsxs)("button",{onClick:()=>x("/dashboard"),"data-testid":"admin-go-member-dashboard",className:"flex items-center gap-2 w-full px-3 py-2.5 rounded-xl text-sm font-semibold text-teal-400 hover:text-teal-300 hover:bg-teal-500/10 border border-teal-500/20 transition-all mb-2",children:[(0,le.jsx)(P.A,{size:14})," Dashboard Membre (IA)"]}),(0,le.jsxs)("button",{onClick:hi,"data-testid":"admin-logout",className:"flex items-center gap-2 w-full px-3 py-2.5 rounded-xl text-sm text-slate-400 hover:text-red-400 hover:bg-red-500/5 transition-all",children:[(0,le.jsx)(M.A,{size:14}),"D\xe9connexion"]})]})]})},Mi=async()=>
1{if(ms.trim()){Es(!0),fs(null),ws(null);try{const e=ve.find(e=>{var t,s;return(null===(t=e.email)||void 0===t?void 0:t.toLowerCase().includes(ms.toLowerCase()))||(null===(s=e.name)||void 0===s?void 0:s.toLowerCase().includes(ms.toLowerCase()))});if(!e)return Al("Membre introuvable \u2014 v\xe9rifie l'email ou le nom","error"),void Es(!1);const t=await n.A.get("".concat(ma,"/api/credits/admin/user/").concat(e.id),{headers:c()}),s=await n.A.get("".concat(ma,"/api/admin/members/").concat(e.id,"/quotas"),{headers:c()}).catch(()=>({data:{quotas:{}}}));fs(e),ws((0,a.A)((0,a.A)({},t.data),{},{v2_quotas:s.data.quotas}))}catch(s){var e,t;Al("Erreur: ".concat((null===(e=s.response)||void 0===e||null===(t=e.data)||void 0===t?void 0:t.detail)||s.message),"error")}Es(!1)}},Oi=async()=>{if(gs&&Fs.amount){Ms(!0);try{await n.A.post("".concat(ma,"/api/credits/admin/adjust"),{user_id:gs.id,amount:parseInt(Fs.amount,10),permanent:Fs.permanent,reason:Fs.reason||"Ajustement admin"},{headers:c()});const e=await n.A.get("".concat(ma,"/api/credits/admin/user/").concat(gs.id),{headers:c()}),t=await n.A.get("".concat(ma,"/api/admin/members/").concat(gs.id,"/quotas"),{headers:c()}).catch(()=>({data:{quotas:{}}}));ws((0,a.A)((0,a.A)({},e.data),{},{v2_quotas:t.data.quotas})),Ds({amount:"",permanent:!0,reason:""}),Al("Cr\xe9dits mis \xe0 jour \u2713")}catch(s){var e,t;Al("Erreur: ".concat((null===(e=s.response)||void 0===e||null===(t=e.data)||void 0===t?void 0:t.detail)||s.message),"error")}Ms(!1)}},Vi=async()=>{var e;if(!gs)return;const t=(null===(e=gs.plan)||void 0===e?void 0:e.toLowerCase())||"",s={bot_starter:50,formation:100,elite:200}[t]||50;Ms(!0);try{await n.A.post("".concat(ma,"/api/credits/admin/adjust"),{user_id:gs.id,amount:s,permanent:!1,reason:"Remise \xe0 niveau cr\xe9dits mensuels (".concat(t,") \u2014 admin")},{headers:c()});const e=await n.A.get("".concat(ma,"/api/credits/admin/user/").concat(gs.id),{headers:c()}),l=await n.A.get("".concat(ma,"/api/admin/members/").concat(gs.id,"/quotas"),{headers:c()}).catch(()=>({data:{quotas:{}}}));ws((0,a.A)((0,a.A)({},e.data),{},{v2_quotas:l.data.quotas})),Al("Cr\xe9dits mensuels remis \xe0 ".concat(s," \u2713"))}catch(i){var l,r;Al("Erreur: ".concat((null===(l=i.response)||void 0===l||null===(r=l.data)||void 0===r?void 0:r.detail)||i.message),"error")}Ms(!1)},Bi=async()=>{if(gs&&Bs.delta&&Bs.quota_key){Js(!0);try{await n.A.post("".concat(ma,"/api/admin/members/").concat(gs.id,"/quotas/adjust"),{quota_key:Bs.quota_key,delta:parseInt(Bs.delta,10)},{headers:c()}),Al("Quota V2 ajust\xe9 \u2713");const e=await n.A.get("".concat(ma,"/api/admin/members/").concat(gs.id,"/quotas"),{headers:c()});ws(t=>(0,a.A)((0,a.A)({},t),{},{v2_quotas:e.data.quotas})),Ws(e=>(0,a.A)((0,a.A)({},e),{},{delta:""}))}catch(s){var e,t;Al("Erreur: ".concat((null===(e=s.response)||void 0===e||null===(t=e.data)||void 0===t?void 0:t.detail)||s.message),"error")}Js(!1)}},Ui=async()=>{if(ar.trim()&&$l){dr(!0);try{await n.A.post("".concat(ma,"/api/messages/send"),{content:ar,recipient_id:$l.user_id},{headers:c()}),lr("");const e=await n.A.get("".concat(ma,"/api/messages/admin/conversations"),{headers:c()});Ql(e.data||[]);const t=(e.data||[]).find(e=>e.user_id===$l.user_id);t&&er(t),Al("R\xe9ponse envoy\xe9e \u2713")}catch(e){Al("Erreur envoi","error")}dr(!1)}},Wi=async(e,t)=>{try{await n.A.put("".concat(ma,"/api/admin/commissions/").concat(e,"?status=").concat(t),{},{headers:c()}),Dl(s=>s.map(s=>s.id===e?(0,a.A)((0,a.A)({},s),{},{status:t}):s)),Al("Commission ".concat("approved"===t?"approuv\xe9e":"rejected"===t?"rejet\xe9e":"marqu\xe9e pay\xe9e"," \u2713"))}catch(s){Al("Erreur lors de la mise \xe0 jour","error")}},Hi=()=>{localStorage.getItem("vr_token");const e="".concat(ma,"/api/admin/leads/export"),t=document.createElement("a");t.href=e,t.download="leads_vintyresell.csv",fetch(e,{headers:c()}).then(e=>e.blob()).then(e=>{const s=URL.createObjectURL(e);t.href=s,document.body.appendChild(t),t.click(),document.body.removeChild(t),URL.revokeObjectURL(s)}).catch(()=>Al("Erreur lors du t\xe9l\xe9chargement","error"))},Yi=async()=>{try{const e=await n.A.get("".concat(ma,"/api/admin/free-leads"),{headers:c()});ta(e.data.leads||[]),ra(e.data.total||0)}catch(t){}_a(!0);try{var e;const t=await n.A.get("".concat(ma,"/api/admin/email-queue/stats"),{headers:c()});al((null===(e=t.data)||void 0===e?void 0:e.by_lead)||{})}catch(t){}},Gi=async(e,t)=>{hl(e);try{await n.A.patch("".concat(ma,"/api/admin/free-leads/").concat(e,"/status"),{status:t},{headers:c()}),ta(s=>s.map(s=>s.id===e?(0,a.A)((0,a.A)({},s),{},{crm_status:t}):s)),Al('Lead marqu\xe9 comme "'.concat(t,'"'),"success")}catch(s){Al("Erreur mise \xe0 jour","error")}hl(null)},Ki=()=>{const e="".concat(ma,"/api/admin/free-leads/export");fetch(e,{headers:c()}).then(e=>e.blob()).then(e=>{const t=document.createElement("a");t.href=URL.createObjectURL(e),t.download="free_leads_vintyresell.csv",document.body.appendChild(t),t.click(),document.body.removeChild(t)}).catch(()=>Al("Erreur t\xe9l\xe9chargement CSV","error"))},Ji={chaud:{label:"Chaud",color:"text-red-400 bg-red-500/10 border-red-500/20"},tiede:{label:"Ti\xe8de",color:"text-amber-400 bg-amber-500/10 border-amber-500/20"},froid:{label:"Froid",color:"text-blue-400 bg-blue-500/10 border-blue-500/20"}},Qi=r.useState([]),Zi=(0,l.A)(Qi,2),Xi=Zi[0],$i=Zi[1],en=r.useState(!1),tn=(0,l.A)(en,2),sn=(tn[0],tn[1]),an=async()=>{try{const e=await n.A.get("".concat(ma,"/api/testimonials/admin/list"),{headers:c()});$i(e.data||[])}catch(e){}sn(!0)},ln=async()=>{try{const e=(await n.A.get("".concat(ma,"/api/waitlist/bot"),{headers:c()})).data;qa(e.entries||[]),Va(e.total||0),Ha(e.pending||0),Ja(!0)}catch(e){Ja(!0)}},rn=async()=>{$a(!0);try{const e=(await n.A.post("".concat(ma,"/api/waitlist/bot/notify"),{},{headers:c()})).data;Al("".concat(e.sent," email(s) envoy\xe9s !"),"success"),ln()}catch(e){Al("Erreur envoi","error")}$a(!1)},nn=async()=>
1{if(gr){Dr(!0);try{await n.A.post("".concat(ma,"/api/admin/affiliates/").concat(gr.affiliateId,"/mark-paid-v2"),{payment_date:Nr||(new Date).toISOString().split("T")[0],payment_method:_r,note:zr},{headers:c()}),Al("Affili\xe9 marqu\xe9 comme pay\xe9 \u2713","success"),fr(null),yr(""),Er(""),await mi()}catch(e){Al("Erreur lors du paiement","error")}finally{Dr(!1)}}},dn=async()=>{if(qr){Yr(!0);try{await n.A.patch("".concat(ma,"/api/admin/affiliates/").concat(qr.affiliateId,"/commission-rate"),{rate:Vr/100},{headers:c()}),Al("Taux mis \xe0 jour : ".concat(Vr,"% \u2713"),"success"),Pr(null),await mi()}catch(e){Al("Erreur mise \xe0 jour taux","error")}finally{Yr(!1)}}},on=async()=>{if(Jr){li(!0);try{await n.A.post("".concat(ma,"/api/admin/affiliates/").concat(Jr.affiliateId,"/manual-commission"),(0,a.A)((0,a.A)({},$r),{},{amount:parseFloat($r.amount)}),{headers:c()}),Al("Commission manuelle cr\xe9\xe9e \u2713","success"),Qr(null),ei({amount:"",description:"",plan:"manual"}),await mi()}catch(e){Al("Erreur commission manuelle","error")}finally{li(!1)}}};function cn(e){var t;let s=e.headers;const a=r.useState(null),i=(0,l.A)(a,2),d=i[0],o=i[1],c=r.useState(!0),x=(0,l.A)(c,2),m=x[0],u=x[1];if(r.useEffect(()=>{n.A.get("".concat(ma,"/api/admin/tour-analytics"),{headers:s()}).then(e=>o(e.data)).catch(()=>{}).finally(()=>u(!1))},[]),m)return(0,le.jsx)("div",{className:"flex items-center justify-center py-20",children:(0,le.jsx)("div",{className:"w-6 h-6 rounded-full border-2 border-teal-500 border-t-transparent animate-spin"})});if(!d)return(0,le.jsx)("p",{className:"text-slate-500 text-sm text-center py-12",children:"Erreur de chargement"});const p=[{label:"D\xe9marrages",value:d.total_started,color:"text-blue-400"},{label:"Completions",value:d.total_completed,color:"text-green-400"},{label:"Abandons",value:d.total_skipped,color:"text-amber-400"},{label:"Guide cliqu\xe9",value:d.guide_clicked,color:"text-purple-400"},{label:"Taux fin",value:"".concat(d.completion_rate,"%"),color:"text-teal-400"}];return(0,le.jsxs)("div",{className:"space-y-6",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h2",{className:"text-white font-black text-xl mb-1",style:{fontFamily:"Outfit, sans-serif"},children:"Tour Analytics"}),(0,le.jsx)("p",{className:"text-slate-500 text-sm",children:"Comportements des membres sur le Product Tour anim\xe9"})]}),(0,le.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-5 gap-3",children:p.map(e=>(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/8 rounded-2xl p-4 text-center",children:[(0,le.jsx)("p",{className:"font-black text-2xl ".concat(e.color),children:e.value}),(0,le.jsx)("p",{className:"text-slate-500 text-xs mt-1",children:e.label})]},e.label))}),Object.keys(d.scene_drop_off||{}).length>0&&(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/8 rounded-2xl p-5",children:[(0,le.jsx)("p",{className:"text-white font-bold text-sm mb-4",children:"Sc\xe8nes d'abandon"}),(0,le.jsx)("div",{className:"space-y-2",children:Object.entries(d.scene_drop_off).sort((e,t)=>{let s=(0,l.A)(e,2)[1];return(0,l.A)(t,2)[1]-s}).map(e=>{let t=(0,l.A)(e,2),s=t[0],a=t[1];return(0,le.jsxs)("div",{className:"flex items-center gap-3",children:[(0,le.jsxs)("span",{className:"text-slate-500 text-xs w-20",children:["Sc\xe8ne ",Number(s)+1]}),(0,le.jsx)("div",{className:"flex-1 h-2 bg-slate-800 rounded-full overflow-hidden",children:(0,le.jsx)("div",{className:"h-full bg-amber-500 rounded-full transition-all",style:{width:"".concat(Math.min(a/(d.total_skipped||1)*100,100),"%")}})}),(0,le.jsx)("span",{className:"text-slate-400 text-xs w-6 text-right",children:a})]},s)})})]}),(null===(t=d.recent)||void 0===t?void 0:t.length)>0&&(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/8 rounded-2xl overflow-hidden",children:[(0,le.jsx)("div",{className:"px-5 py-3 border-b border-white/5",children:(0,le.jsx)("p",{className:"text-white font-bold text-sm",children:"\xc9v\xe9nements r\xe9cents"})}),(0,le.jsx)("div",{className:"overflow-x-auto",children:(0,le.jsxs)("table",{className:"w-full text-xs",children:[(0,le.jsx)("thead",{children:(0,le.jsx)("tr",{className:"border-b border-white/5",children:["Email","\xc9v\xe9nement","Sc\xe8ne","Date"].map(e=>(0,le.jsx)("th",{className:"text-left px-4 py-2 text-slate-500 font-medium",children:e},e))})}),(0,le.jsx)("tbody",{children:d.recent.slice(0,20).map((e,t)=>(0,le.jsxs)("tr",{className:"border-b border-white/3 hover:bg-white/3",children:[(0,le.jsx)("td",{className:"px-4 py-2 text-slate-300",children:e.email}),(0,le.jsx)("td",{className:"px-4 py-2",children:(0,le.jsx)("span",{className:"px-1.5 py-0.5 rounded text-[9px] font-bold ".concat("completed"===e.event?"bg-green-600/15 text-green-400":"started"===e.event?"bg-blue-600/15 text-blue-400":"skipped"===e.event?"bg-amber-600/15 text-amber-400":"bg-purple-600/15 text-purple-400"),children:e.event})}),(0,le.jsx)("td",{className:"px-4 py-2 text-slate-500",children:"skipped"===e.event?"Sc\xe8ne ".concat((e.scene||0)+1):"\u2014"}),(0,le.jsx)("td",{className:"px-4 py-2 text-slate-600",children:new Date(e.created_at).toLocaleStr
1ing("fr-FR",{dateStyle:"short",timeStyle:"short"})})]},t))})]})})]})]})}const xn={coach_dash:()=>{var e,t;return(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h1",{className:"text-2xl font-bold text-white",style:{fontFamily:"Outfit, sans-serif"},children:"Dashboard Coach"}),(0,le.jsxs)("p",{className:"text-slate-400 text-sm mt-1",children:[Jl.length," conversation",1!==Jl.length?"s":""," \xb7 ",Jl.filter(e=>e.unread>0).length," non lue",1!==Jl.filter(e=>e.unread>0).length?"s":""]})]}),(0,le.jsxs)("button",{onClick:mi,className:"flex items-center gap-2 px-4 py-2 rounded-xl bg-slate-800 border border-white/8 text-slate-400 hover:text-white text-sm transition-all",children:[(0,le.jsx)(A.A,{size:14})," Rafra\xeechir"]})]}),(0,le.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4 h-[calc(100vh-220px)] min-h-[500px]",children:[(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl overflow-hidden flex flex-col",children:[(0,le.jsx)("div",{className:"px-4 py-3 border-b border-white/5",children:(0,le.jsx)("p",{className:"text-slate-400 text-xs font-semibold uppercase tracking-wide",children:"Membres"})}),(0,le.jsx)("div",{className:"flex-1 overflow-y-auto",children:0===Jl.length?(0,le.jsxs)("div",{className:"text-center py-10",children:[(0,le.jsx)(W.A,{size:24,className:"mx-auto mb-2 text-slate-700"}),(0,le.jsx)("p",{className:"text-slate-600 text-sm",children:"Aucun message re\xe7u"})]}):Jl.map(e=>(0,le.jsxs)("button",{onClick:()=>er(e),"data-testid":"coach-convo-".concat(e.user_id),className:"w-full text-left px-4 py-3 border-b border-white/5 hover:bg-white/3 transition-colors ".concat((null===$l||void 0===$l?void 0:$l.user_id)===e.user_id?"bg-blue-600/8 border-l-2 border-l-blue-500":""),children:[(0,le.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,le.jsxs)("div",{className:"min-w-0",children:[(0,le.jsx)("p",{className:"text-white text-sm font-semibold truncate",children:e.user_name||e.user_email}),(0,le.jsx)("p",{className:"text-slate-500 text-xs truncate mt-0.5",children:e.last_message||"\u2014"})]}),e.unread>0&&(0,le.jsx)("span",{className:"bg-blue-600 text-white text-xs font-black rounded-full w-5 h-5 flex items-center justify-center flex-shrink-0",children:e.unread})]}),(0,le.jsx)("p",{className:"text-slate-600 text-xs mt-1",children:e.last_at?new Date(e.last_at).toLocaleDateString("fr-FR",{day:"2-digit",month:"short",hour:"2-digit",minute:"2-digit"}):"\u2014"})]},e.user_id))})]}),(0,le.jsx)("div",{className:"lg:col-span-2 bg-slate-900 border border-white/5 rounded-2xl flex flex-col overflow-hidden",children:$l?(0,le.jsxs)(le.Fragment,{children:[(0,le.jsxs)("div",{className:"px-5 py-4 border-b border-white/5 flex items-center justify-between",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-white font-bold text-sm",children:$l.user_name||$l.user_email}),(0,le.jsxs)("p",{className:"text-slate-500 text-xs",children:[(null===(e=$l.messages)||void 0===e?void 0:e.length)||0," message",1!==((null===(t=$l.messages)||void 0===t?void 0:t.length)||0)?"s":""]})]}),(0,le.jsx)("span",{className:"text-xs px-2 py-1 rounded-full border font-semibold ".concat("elite"===$l.plan?"bg-purple-600/10 border-purple-500/15 text-purple-400":"bg-slate-700/40 border-white/8 text-slate-400"),children:$l.plan||"starter"})]}),(0,le.jsx)("div",{className:"flex-1 overflow-y-auto p-4 space-y-3",children:($l.messages||[]).map((e,t)=>(0,le.jsx)("div",{className:"flex ".concat(e.is_coach_message?"justify-end":"justify-start"),children:(0,le.jsxs)("div",{className:"max-w-xs lg:max-w-sm rounded-2xl px-4 py-2.5 text-sm ".concat(e.is_coach_message?"bg-blue-600/20 text-blue-100 border border-blue-500/20":"bg-slate-800 text-slate-200 border border-white/5"),children:[(0,le.jsx)("p",{className:"leading-relaxed",children:e.content}),(0,le.jsxs)("p",{className:"text-xs opacity-50 mt-1",children:[e.is_coach_message?"Hugo":$l.user_name||"Membre"," \xb7 ",e.created_at?new Date(e.created_at).toLocaleTimeString("fr-FR",{hour:"2-digit",minute:"2-digit"}):""]})]})},t))}),(0,le.jsxs)("div",{className:"px-4 py-3 border-t border-white/5 flex gap-2",children:[(0,le.jsx)("input",{value:ar,onChange:e=>lr(e.target.value),onKeyDown:e=>"Enter"===e.key&&!e.shiftKey&&Ui(),placeholder:"R\xe9pondre \xe0 ce membre\u2026","data-testid":"coach-reply-input",className:"flex-1 bg-slate-800 border border-white/8 rounded-xl px-4 py-2.5 text-white text-sm focus:outline-none focus:border-blue-500/30 transition-colors placeholder-slate-600"}),(0,le.jsxs)("button",{onClick:Ui,disabled:nr||!ar.trim(),"data-testid":"coach-reply-send",className:"px-4 py-2.5 bg-blue-600/15 border border-blue-500/20 text-blue-400 hover:bg-blue-600/25 rounded-xl text-sm font-bold disabled:opacity-40 transition-all flex items-center gap-1.5",children:[nr?(0,le.jsx)("span",{className:"w-3 h-3 border-2 border-blue-400/30 border-t-blue-400 rounded-full animate-spin"}):(0,le.jsx)(D.A,{size:13}),"Envoyer"]})]})]}):(0,le.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,le.jsxs)("div",{className:"text-center",children:[(0,le.jsx)(W.A,{size:32,className:"mx-auto mb-3 text-slate-700"}),(0,le.jsx)("p",{className:"text-slate-500 text-sm",children:"S\xe9lectionne une conversation"})]})})})]})]})},affiliates_list:()=>{const e=xr.reduce((e,t)=>
1e+(t.pending_commission||0),0),t=xr.reduce((e,t)=>e+(t.total_commission||0),0);return(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h1",{className:"text-2xl font-bold text-white",style:{fontFamily:"Outfit, sans-serif"},children:"Affili\xe9s"}),(0,le.jsxs)("p",{className:"text-slate-400 text-sm mt-1",children:[xr.length," affili\xe9(s) \xb7 ",(0,le.jsxs)("span",{className:"text-amber-400 font-semibold",children:[e.toFixed(2),"\u20ac en attente"]}),(0,le.jsx)("span",{className:"mx-1 text-slate-600",children:"\xb7"}),(0,le.jsxs)("span",{className:"text-emerald-400",children:[t.toFixed(2),"\u20ac total g\xe9n\xe9r\xe9"]})]})]}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsxs)("button",{onClick:()=>ni(!0),className:"flex items-center gap-2 px-4 py-2 rounded-xl bg-purple-600 hover:bg-purple-500 text-white text-sm font-bold transition-all",children:[(0,le.jsx)(_.A,{size:14})," Lien de campagne"]}),(0,le.jsxs)("button",{onClick:mi,className:"flex items-center gap-2 px-4 py-2 rounded-xl bg-slate-800 border border-white/8 text-slate-400 hover:text-white text-sm transition-all",children:[(0,le.jsx)(A.A,{size:14})," Rafra\xeechir"]})]})]}),(0,le.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-3",children:[{label:"Affili\xe9s actifs",value:xr.filter(e=>!e.disabled).length,color:"text-blue-400"},{label:"Ventes totales",value:xr.reduce((e,t)=>e+(t.total_sales||0),0),color:"text-emerald-400"},{label:"En attente (\u20ac)",value:"".concat(e.toFixed(2),"\u20ac"),color:"text-amber-400"},{label:"Commissions pay\xe9es",value:"".concat(xr.reduce((e,t)=>e+(t.paid_commission||0),0).toFixed(2),"\u20ac"),color:"text-slate-300"}].map((e,t)=>(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-xl p-4",children:[(0,le.jsx)("p",{className:"text-slate-500 text-xs mb-1",children:e.label}),(0,le.jsx)("p",{className:"text-xl font-black ".concat(e.color),style:{fontFamily:"Outfit, sans-serif"},children:e.value})]},t))}),0===xr.length?(0,le.jsxs)("div",{className:"text-center py-16 bg-slate-900 rounded-2xl border border-white/5",children:[(0,le.jsx)(g.A,{size:28,className:"mx-auto mb-3 text-slate-700"}),(0,le.jsx)("p",{className:"text-slate-500",children:"Aucun affili\xe9 enregistr\xe9."})]}):(0,le.jsx)("div",{className:"space-y-3",children:xr.map(e=>(0,le.jsx)("div",{"data-testid":"affiliate-row-".concat(e.id),className:"bg-slate-900 border rounded-2xl p-4 ".concat(e.disabled?"border-red-500/15 opacity-70":"border-white/5"),children:(0,le.jsxs)("div",{className:"flex items-start justify-between gap-3 flex-wrap",children:[(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,le.jsx)("p",{className:"text-white font-bold text-sm",children:e.name||"\u2014"}),(0,le.jsx)("span",{className:"font-mono text-xs px-2 py-0.5 rounded bg-slate-800 text-blue-400 border border-blue-500/20",children:e.code}),(0,le.jsxs)("span",{className:"text-xs px-2 py-0.5 rounded bg-teal-600/10 text-teal-400 border border-teal-500/20 font-bold",children:[(100*(e.commission_rate||.15)).toFixed(0),"%"]}),e.disabled&&(0,le.jsx)("span",{className:"text-xs px-2 py-0.5 rounded bg-red-600/10 text-red-400 border border-red-500/20 font-bold",children:"D\xc9SACTIV\xc9"})]}),(0,le.jsx)("p",{className:"text-slate-500 text-xs mt-0.5",children:e.email}),(0,le.jsxs)("div",{className:"flex items-center gap-3 mt-1.5 flex-wrap text-xs",children:[(0,le.jsxs)("span",{className:"text-white",children:[e.total_sales||0," ventes"]}),(0,le.jsx)("span",{className:"text-slate-600",children:"\xb7"}),(0,le.jsxs)("span",{className:"text-emerald-400 font-semibold",children:[(e.total_commission||0).toFixed(2),"\u20ac total"]}),(0,le.jsx)("span",{className:"text-slate-600",children:"\xb7"}),(0,le.jsxs)("span",{className:"text-amber-400",children:[(e.pending_commission||0).toFixed(2),"\u20ac en attente"]}),(0,le.jsx)("span",{className:"text-slate-600",children:"\xb7"}),(0,le.jsxs)("span",{className:"text-slate-400",children:[(e.paid_commission||0).toFixed(2),"\u20ac pay\xe9"]}),(0,le.jsx)("span",{className:"text-slate-600",children:"\xb7"}),(0,le.jsxs)("span",{className:"text-slate-500",children:[e.total_clicks||0," clics"]})]})]}),(0,le.jsxs)("div",{className:"flex items-center gap-2 flex-wrap flex-shrink-0",children:[(e.pending_commission||0)>0&&(0,le.jsxs)("button",{onClick:()=>{fr({affiliateId:e.id,code:e.code,amount:e.pending_commission}),yr((new Date).toISOString().split("T")[0]),kr("Virement"),Er("")},"data-testid":"pay-affiliate-".concat(e.id),className:"flex items-center gap-1.5 px-3 py-1.5 rounded-lg bg-emerald-600/10 border border-emerald-500/20 text-emerald-400 hover:bg-emerald-600/20 text-xs font-bold transition-all",children:[(0,le.jsx)(b.A,{size:11})," Marquer pay\xe9"]}),(0,le.jsxs)("button",{onClick:()=>{Pr({affiliateId:e.id,name:e.name}),Br(Math.round(100*(e.commission_rate||.15)))},"data-testid":"edit-rate-".concat(e.id),className:"flex items-center gap-1.5 px-3 py-1.5 rounded-lg bg-teal-600/10 border border-teal-500/20 text-teal-400 hover:bg-teal-600/20 text-xs font-bold transition-all",children:[(0,le.jsx)(f.A,{size:11})," Taux"]}),(0,le.jsxs)("button",{onClick:()=>{Qr({affiliateId:e.id,name:e.name}),ei({amount:"",description:"",plan:"manual"})},"data-testid":"manual-com-".concat(e.id),className:"flex items-center gap-1.5 px-3 py-1.5 rounded-lg bg-blue-600/10 border border-blue-500/20 text-blue-400 hover:bg-blue-600/20 text-xs font-bold transition-all",children:[(0,le.jsx)(_.A,{size:11})," Comm. manuelle"]}),(0,le.jsx)("button",{onClick:()=>(async(e,t)=>{try{await n.A.patch("".concat(ma,"/api/admin/affiliates/").concat(e,"/toggle-active"),{},{headers:c()}),Al(t?"Affili\xe9 d\xe9sactiv\xe9":"Affili\xe9 activ\xe9 \u2713",t?"error":"success"),await mi()}catch(s){Al("Erreur","error")}})(e.id,!e.disabled),"data-testid":"toggle-affiliate-".concat(e.id),className:"flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-bold transition-all border ".concat(e.disabled?"bg-green-600/10 border-green-500/20 text-green-400 hover:bg-green-600/20":"bg-red-600/10 border-red-500/20 text-red-400 hover:bg-red-600/20"),children:e.disabled?(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)(C.A,{size:11})," Activer"]}):(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)(q.A,{size:11})," D\xe9sactiver"]})})]})]})},e.id))}),gr&&(0,le.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/70 p-4","data-testid":"pay-modal",children:(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/8 rounded-2xl p-6 w-full max-w-md
1space-y-4",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsx)("h3",{className:"text-white font-black text-base",children:"Marquer comme pay\xe9"}),(0,le.jsx)("button",{onClick:()=>fr(null),className:"text-slate-500 hover:text-white",children:(0,le.jsx)(q.A,{size:16})})]}),(0,le.jsxs)("p",{className:"text-slate-400 text-sm",children:["Montant en attente : ",(0,le.jsxs)("span",{className:"text-amber-400 font-bold",children:[(gr.amount||0).toFixed(2),"\u20ac"]})]}),(0,le.jsxs)("div",{className:"space-y-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold block mb-1",children:"Date du virement"}),(0,le.jsx)("input",{type:"date",value:Nr,onChange:e=>yr(e.target.value),className:"w-full bg-slate-800 border border-white/8 text-white text-sm rounded-xl px-3 py-2 focus:border-teal-500/40 focus:outline-none"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold block mb-1",children:"M\xe9thode de paiement"}
1),(0,le.jsx)("select",{value:_r,onChange:e=>kr(e.target.value),className:"w-full bg-slate-800 border border-white/8 text-white text-sm rounded-xl px-3 py-2 focus:border-teal-500/40 focus:outline-none",children:["Virement","PayPal","Lydia","Sumeria","Revolut","Esp\xe8ces","Autre"].map(e=>(0,le.jsx)("option",{value:e,children:e},e))})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold block mb-1",children:"Note (optionnel)"}),(0,le.jsx)("input",{value:zr,onChange:e=>Er(e.target.value),placeholder:"Remarque sur le paiement\u2026",className:"w-full bg-slate-800 border border-white/8 text-white text-sm rounded-xl px-3 py-2 placeholder-slate-600 focus:border-teal-500/40 focus:outline-none"})]})]}),(0,le.jsxs)("div",{className:"flex gap-2 pt-1",children:[(0,le.jsx)("button",{onClick:nn,disabled:Fr,"data-testid":"confirm-pay-btn",className:"flex-1 py-2.5 rounded-xl bg-emerald-600 hover:bg-emerald-500 text-white text-sm font-bold flex items-center justify-center gap-2 transition-all disabled:opacity-60",children:Fr?(0,le.jsx)("span",{className:"w-4 h-4 border-2 border-white/30 border-t-white rounded-full animate-spin"}):(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)(b.A,{size:14})," Confirmer le paiement"]})}),(0,le.jsx)("button",{onClick:()=>fr(null),className:"px-4 py-2.5 rounded-xl bg-slate-800 text-slate-400 hover:text-white text-sm transition-all",children:"Annuler"})]})]})}),qr&&(0,le.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/70 p-4","data-testid":"rate-modal",children:(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/8 rounded-2xl p-6 w-full max-w-sm space-y-4",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsx)("h3",{className:"text-white font-black text-base",children:"Modifier le taux"}),(0,le.jsx)("button",{onClick:()=>Pr(null),className:"text-slate-500 hover:text-white",children:(0,le.jsx)(q.A,{size:16})})]}),(0,le.jsx)("p",{className:"text-slate-400 text-sm",children:qr.name}),(0,le.jsxs)("div",{children:[(0,le.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold",children:"Taux de commission"}),(0,le.jsxs)("span",{className:"text-teal-400 text-sm font-black",children:[Vr,"%"]})]}),(0,le.jsx)("input",{type:"range",min:5,max:30,step:1,value:Vr,onChange:e=>Br(+e.target.value),className:"w-full accent-teal-500"}),(0,le.jsxs)("div",{className:"flex justify-between text-slate-600 text-xs mt-1",children:[(0,le.jsx)("span",{children:"5%"}),(0,le.jsx)("span",{children:"30%"})]})]}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsx)("button",{onClick:dn,disabled:Hr,"data-testid":"confirm-rate-btn",className:"flex-1 py-2.5 rounded-xl bg-teal-600 hover:bg-teal-500 text-white text-sm font-bold flex items-center justify-center gap-2 transition-all disabled:opacity-60",children:Hr?(0,le.jsx)("span",{className:"w-4 h-4 border-2 border-white/30 border-t-white rounded-full animate-spin"}):"Enregistrer"}),(0,le.jsx)("button",{onClick:()=>Pr(null),className:"px-4 py-2.5 rounded-xl bg-slate-800 text-slate-400 hover:text-white text-sm transition-all",children:"Annuler"})]})]})}),Jr&&(0,le.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/70 p-4","data-testid":"manual-com-modal",children:(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/8 rounded-2xl p-6 w-full max-w-sm space-y-4",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsx)("h3",{className:"text-white font-black text-base",children:"Commission manuelle"}),(0,le.jsx)("button",{onClick:()=>Qr(null),className:"text-slate-500 hover:text-white",children:(0,le.jsx)(q.A,{size:16})})]}),(0,le.jsx)("p",{className:"text-slate-400 text-sm",children:Jr.name}),(0,le.jsxs)("div",{className:"space-y-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold block mb-1",children:"Montant (\u20ac)"}),(0,le.jsx)("input",{type:"number",value:$r.amount,onChange:e=>ei(t=>(0,a.A)((0,a.A)({},t),{},{amount:e.target.value})),placeholder:"0.00",min:"0",step:"0.01",className:"w-full bg-slate-800 border border-white/8 text-white text-sm rounded-xl px-3 py-2 placeholder-slate-600 focus:border-teal-500/40 focu
1s:outline-none"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs font-semibold block mb-1",children:"Description"}),(0,le.jsx)("input",{value:$r.description,onChange:e=>ei(t=>(0,a.A)((0,a.A)({},t),{},{description:e.target.value})),placeholder:"Raison de la commission manuelle",className:"w-full bg-slate-800 border border-white/8 text-white text-sm rounded-xl px-3 py-2 placeholder-slate-600 focus:border-teal-500/40 focus:outline-none"})]})]}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsx)("button",{onClick:on,disabled:ai||!$r.amount,"data-testid":"confirm-manual-com-btn",className:"flex-1 py-2.5 rounded-xl bg-blue-600 hover:bg-blue-500 text-white text-sm font-bold flex items-center justify-center gap-2 transition-all disabled:opacity-60",children:ai?(0,le.jsx)("span",{className:"w-4 h-4 border-2 border-white/30 border-t-white rounded-full animate-spin"}):(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)(_.A,{size:14})," Cr\xe9er"]})}),(0,le.jsx)("button",{onClick:()=>Qr(null),className:"px-4 py-2.5 rounded-xl bg-slate-800 text-slate-400 hover:text-white text-sm transition-all",children:"Annuler"})]})]})})]})},commissions:()=>{const e={pending:{label:"En attente",color:"bg-amber-600/10 text-amber-400 border-amber-500/15"},approved:{label:"Approuv\xe9e",color:"bg-blue-600/10 text-blue-400 border-blue-500/15"},rejected:{label:"Rejet\xe9e",color:"bg-red-600/10 text-red-400 border-red-500/15"},paid:{label:"Pay\xe9e",color:"bg-emerald-600/10 text-emerald-400 border-emerald-500/15"}},t="all"===ql?Fl:Fl.filter(e=>e.status===ql),s=Fl.filter(e=>"pending"===e.status).reduce((e,t)=>e+(t.amount||0),0);return(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h1",{className:"text-2xl font-bold text-white",style:{fontFamily:"Outfit, sans-serif"},children:"Commissions Affili\xe9s"}),(0,le.jsxs)("p",{className:"text-slate-400 text-sm mt-1",children:[Fl.filter(e=>"pending"===e.status).length," en attente \xb7",(0,le.jsxs)("span",{className:"text-amber-400 font-semibold ml-1",children:[s.toFixed(2),"\u20ac \xe0 verser"]})]})]}),(0,le.jsxs)("button",{onClick:mi,className:"flex items-center gap-2 px-4 py-2 rounded-xl bg-slate-800 border border-white/8 text-slate-400 hover:text-white text-sm transition-all",children:[(0,le.jsx)(A.A,{size:14})," Rafra\xeechir"]})]}),(0,le.jsx)("div",{className:"flex gap-1 bg-slate-900 border border-white/5 rounded-xl p-1 max-w-lg",children:[{key:"all",label:"Toutes"},{key:"pending",label:"En attente"},{key:"approved",label:"Approuv\xe9es"},{key:"paid",label:"Pay\xe9es"},{key:"rejected",label:"Rejet\xe9es"}].map(e=>(0,le.jsx)("button",{onClick:()=>Pl(e.key),"data-testid":"commission-filter-".concat(e.key),className:"flex-1 py-1.5 rounded-lg text-xs font-bold transition-all ".concat(ql===e.key?"bg-slate-700 text-white":"text-slate-500 hover:text-white"),children:e.label},e.key))}),0===t.length?(0,le.jsxs)("div",{className:"text-center py-16 bg-slate-900 rounded-2xl border border-white/5",children:[(0,le.jsx)(f.A,{size:28,className:"mx-auto mb-3 text-slate-700"}),(0,le.jsxs)("p",{className:"text-slate-500",children:["Aucune commission ","all"!==ql?'avec le statut "'.concat(ql,'"'):"enregistr\xe9e","."]})]}):(0,le.jsx)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl overflow-hidden",children:(0,le.jsxs)("table",{className:"w-full",children:[(0,le.jsx)("thead",{children:(0,le.jsxs)("tr",{className:"border-b border-white/5",children:[(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3",children:"Affili\xe9"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3 hidden md:table-cell",children:"Plan"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3",children:"Montant"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3 hidden sm:table-cell",children:"Niveau"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3",children:"Statut"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3 hidden lg:table-cell",children:"Date"}),(0,le.jsx)("th",{className:"px-4 py-3"})]})}),(0,le.jsx)("tbody",{children:t.map(t=>{var s;const a=e[t.status]||e.pending;return(0,le.jsxs)("tr",{className:"border-b border-white/5 last:border-0 hover:bg-white/2","data-testid":"commission-row-".concat(t.id),children:[(0,le.jsxs)("td",{className:"px-4 py-3",children:[(0,le.jsx)("p",{className:"text-white text-sm font-semibold",children:t.affiliate_name||t.affiliate_code}),(0,le.jsx)("p",{className:"text-slate-500 text-xs",children:t.affiliate_email})]}),(0,le.jsx)("td",{className:"px-4 py-3 hidden md:table-cell",children:(0,le.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-full border bg-slate-800 text-slate-300 border-white/8",children:t.plan})}),(0,le.jsx)("td",{className:"px-4 py-3",children:(0,le.jsxs)("span",{className:"text-emerald-400 font-bold text-sm",children:["+",null===(s=t.amount)||void 0===s?void 0:s.toFixed(2),"\u20ac"]})}),(0,le.jsx)("td",{className:"px-4 py-3 hidden sm:table-cell",children:(0,le.jsxs)("span",{className:"text-slate-400 text-xs",children:["Niveau ",t.level]})}),(0,le.jsx)("td",{className:"px-4 py-3",children:(0,le.jsx)("span",{className:"text-xs px-2 py-1 rounded-full border font-semibold ".concat(a.color),children:a.label})}),(0,le.jsx)("td",{className:"px-4 py-3 text-slate-500 text-xs hidden lg:table-cell",children:t.created_at?new Date(t.created_at).toLocaleDateString("fr-FR"):"\u2014"}),(0,le.jsx)("td",{className:"px-4 py-3",children:(0,le.jsxs)("div",{className:"flex items-center gap-1.5",children:["pending"===t.status&&(0,le.jsxs)(le.Fragment,{children:[(0,le.jsxs)("button",{onClick:()=>Wi(t.id,"approved"),"data-testid":"approve-commission-".concat(t.id),className:"flex items-center gap-1 px-2 py-1 rounded-lg bg-blue-600/10 border border-blue-500/15 text-blue-400 text-xs font-bold hover:bg-blue-600/20 transition-all",children:[(0,le.jsx)(O.A,{size:10})," Approuver"]}),(0,le.jsxs)("button",{onClick:()=>Wi(t.id,"rejected"),"data-testid":"reject-commission-".concat(t.id),className:"flex items-center gap-1 px-2 py-1 rounded-lg bg-red-600/10 border border-red-500/15 text-red-400 text-xs font-bold hover:bg-red-600/20 transition-all",children:[(0,le.jsx)(H.A,{size:10})," Rejeter"]})]}),"approved"===t.status&&(0,le.jsxs)("button",{onClick:()=>Wi(t.id,"paid"),"data-testid":"pay-commission-".concat(t.id),className:"flex items-center gap-1 px-2 py-1 rounded-lg bg-emerald-600/10 border border-emerald-500/15 text-emerald-400 text-xs font-bold hover:bg-emerald-600/20 transition-all",children:[(0,le.jsx)(b.A,{size:10})," Marquer pay\xe9e"]})]})})]},t.id)})})]})})]})},leads:()=>(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h1",{className:"text-2xl font-bold text-white",style:{fontFamily:"Outfit, sans-serif"},children:"Leads & Emails Captur\xe9s"}),(0,le.jsxs)("p",{className:"text-slate-400 text-sm mt-1",children:[Hl," leads collect\xe9s depuis la landing page"]})]}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsxs)("button",{onClick:mi,className:"flex items-center gap-2 px-4 py-2 rounded-xl bg-slate-800 border border-white/8 text-slate-400 hover:text-white text-sm transition-all",children:[(0,le.jsx)(A.A,{size:14})," Rafra\xeechir"]}),(0,le.jsxs)("button",{onClick:Hi,"data-testid":"export-leads-csv-btn",className:"flex items-center gap-2 bg-emerald-600/15 border border-emerald-500/20 text-emerald-400 hover:bg-emerald-600/25 px-4 py-2 rounded-xl text-sm font-semibold transition-all",children:[(0,le.jsx)(Y.A,{size:14})," Exporter CSV"]})]})]}),0===Vl.length?(0,le.jsxs)("div",{className:"text-center py-16 bg-slate-900 rounded-2xl border border-white/5",children:[(0,le.jsx)(p.A,{size:28,className:"mx-auto mb-3 text-slate-700"}),(0,le.jsx)("p",{className:"text-slate-500",children:"Aucun lead captur\xe9 pour le moment."})]}):(0,le.jsx)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl overflow-hidden",children:(0,le.jsxs)("table",{className:"w-full",children:[(0,le.jsx)("thead",{children:(0,le.jsxs)("tr",{className:"border-b border-white/5",children:[(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3",children:"Email"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3 hidden sm:table-cell",children:"Nom"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3 hidden md:table-cell",children:"Source"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3 hidden lg:table-cell",children:"Date"})]})}),(0,le.jsx)("tbody",{children:Vl.map((e,t)=>(0,le.jsxs)("tr",{className:"border-b border-white/5 last:border-0 hover:bg-white/2","data-testid":"lead-row-".concat(t),children:[(0,le.jsx)("td",{className:"px-4 py-3 text-white text-sm",children:e.email}),(0,le.jsx)("td",{className:"px-4 py-3 text-slate-400 text-sm hidden sm:table-cell",children:e.name||"\u2014"}),(0,le.jsx)("td",{className:"px-4 py-3 hidden md:table-cell",children:(0,le.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-full bg-slate-800 text-slate-400 border border-white/8",children:e.source||"popup"})}),(0,le.jsx)("td",{className:"px-4 py-3 text-slate-500 text-xs hidden lg:table-cell",children:e.created_at?new Date(e.created_at).toLocaleDateString("fr-FR",{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit"}):"\u2014"})]},e.id||t))})]})})]}),free_leads:()=>{ca||Yi();const e=$s.filter(e=>{var t,s;
1const a="all"===Ca||("__converti__"===Ca?"converti"===e.crm_status:"__contacte__"===Ca?"contacte"===e.crm_status:"__nouveau__"===Ca?!e.crm_status||"nouveau"===e.crm_status:e.segment===Ca),l=!Ta||(null===(t=e.email)||void 0===t?void 0:t.includes(Ta))||(null===(s=e.name)||void 0===s?void 0:s.toLowerCase().includes(Ta.toLowerCase()));return a&&l}),t=$s.filter(e=>"chaud"===e.segment).length,s=$s.filter(e=>"tiede"===e.segment).length,l=$s.filter(e=>"froid"===e.segment).length;return(0,le.jsxs)("div",{className:"space-y-6",children:[(0,le.jsxs)("div",{className:"flex items-start justify-between flex-wrap gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h1",{className:"text-2xl font-bold text-white",style:{fontFamily:"Outfit, sans-serif"},children:"Leads \u2014 Page /free"}),(0,le.jsxs)("p",{className:"text-slate-400 text-sm mt-1",children:[la," prospects collect\xe9s via le quiz de qualification"]})]}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsxs)("button",{onClick:Yi,className:"flex items-center gap-2 px-4 py-2 rounded-xl bg-slate-800 border border-white/8 text-slate-400 hover:text-white text-sm transition-all",children:[(0,le.jsx)(A.A,{size:14})," Rafra\xeechir"]}),(0,le.jsxs)("button",{onClick:Ki,"data-testid":"export-free-leads-btn",className:"flex items-center gap-2 bg-teal-600/15 border border-teal-500/20 text-teal-400 hover:bg-teal-600/25 px-4 py-2 rounded-xl text-sm font-semibold transition-all",children:[(0,le.jsx)(Y.A,{size:14})," Exporter CSV"]})]})]}),(0,le.jsx)("div",{className:"grid grid-cols-3 gap-3",children:[{seg:"chaud",count:t,icon:"\ud83d\udd25",label:"Chaud",sub:"Score \u2265 55 \u2014 Closer en priorit\xe9",color:"border-red-500/20 bg-red-500/5"},{seg:"tiede",count:s,icon:"\ud83d\udcc8",label:"Ti\xe8de",sub:"Score 20\u201354 \u2014 Nurturing",color:"border-amber-500/20 bg-amber-500/5"},{seg:"froid",count:l,icon:"\ud83c\udf31",label:"Froid",sub:"Score < 20 \u2014 S\xe9quence email",color:"border-blue-500/20 bg-blue-500/5"}].map(e=>(0,le.jsxs)("button",{onClick:()=>za(Ca===e.seg?"all":e.seg),className:"border rounded-2xl p-4 text-left transition-all ".concat(e.color," ").concat(Ca===e.seg?"ring-2 ring-white/20":"hover:ring-1 hover:ring-white/10"),children:[(0,le.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,le.jsx)("span",{className:"text-2xl",children:e.icon}),(0,le.jsx)("span",{className:"text-2xl font-black text-white",style:{fontFamily:"Outfit, sans-serif"},children:e.count})]}),(0,le.jsx)("p",{className:"text-white text-sm font-bold",children:e.label}),(0,le.jsx)("p",{className:"text-slate-500 text-xs mt-0.5",children:e.sub})]},e.seg))}),(()=>{const e=$s.filter(e=>"converti"===e.crm_status).length,a=$s.filter(e=>"contacte"===e.crm_status).length,l=Object.values(sl).reduce((e,t)=>e+(t.total||0),0),r=Object.values(sl).reduce((e,t)=>e+(t.sent||0),0);return(0,le.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-3",children:[{icon:"\u2705",label:"Convertis",n:e,color:"#22c55e",sub:"".concat(Math.round(e/Math.max(la,1)*100),"% taux de conversion")},{icon:"\ud83d\udcde",label:"Contact\xe9s",n:a,color:"#60a5fa",sub:"".concat(la-e-a," nouveaux \xe0 traiter")},{icon:"\ud83d\udce7",label:"Emails envoy\xe9s",n:r,color:"#a78bfa",sub:"".concat(l-r," en attente")},{icon:"\ud83d\udcb0",label:"Valeur pipeline",n:"".concat((167*t+19.99*s).toFixed(0),"\u20ac"),color:"#f59e0b",sub:"Estimation maximale leads chauds"}].map((e,t)=>(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-xl p-4",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,le.jsx)("span",{children:e.icon}),(0,le.jsx)("span",{className:"text-slate-400 text-xs",children:e.label})]}),(0,le.jsx)("div",{className:"text-xl font-black",style:{color:e.color},children:e.n}),(0,le.jsx)("div",{className:"text-slate-600 text-[10px] mt-0.5",children:e.sub})]},t))})})(),(0,le.jsxs)("div",{className:"flex gap-3 flex-wrap",children:[(0,le.jsx)("input",{value:Ta,onChange:e=>Fa(e.target.value),placeholder:"Rechercher par email ou pr\xe9nom...","data-testid":"free-leads-search",className:"flex-1 min-w-48 bg-slate-900 border border-white/8 rounded-xl px-4 py-2.5 text-white text-sm placeholder-slate-600 focus:outline-none focus:border-teal-500/30 transition-colors"}),(0,le.jsxs)("select",{value:Ca,onChange:e=>za(e.target.value),"data-testid":"free-leads-filter",className:"bg-slate-900 border border-white/8 rounded-xl px-4 py-2.5 text-white text-sm focus:outline-none focus:border-teal-500/30 transition-colors",children:[(0,le.jsx)("option",{value:"all",children:"Tous les segments"}),(0,le.jsx)("option",{value:"chaud",children:"\ud83d\udd25 Chaud seulement"}),(0,le.jsx)("option",{value:"tiede",children:"\ud83d\udcc8 Ti\xe8de seulement"}),(0,le.jsx)("option",{value:"froid",children:"\ud83c\udf31 Froid seulement"}),(0,le.jsx)("option",{value:"__converti__",children:"\u2705 Convert
1is"}),(0,le.jsx)("option",{value:"__contacte__",children:"\ud83d\udcde Contact\xe9s"}),(0,le.jsx)("option",{value:"__nouveau__",children:"\ud83c\udd95 Nouveaux"})]})]}),ca?0===e.length?(0,le.jsxs)("div",{className:"text-center py-16 bg-slate-900 rounded-2xl border border-white/5",children:[(0,le.jsx)(G.A,{size:28,className:"mx-auto mb-3 text-slate-700"}),(0,le.jsx)("p",{className:"text-slate-500",children:"Aucun lead pour ce filtre."})]}):(0,le.jsxs)("div",{className:"space-y-6",children:[(0,le.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-3",children:(()=>{const t=e.filter(e=>"formation"===e.recommended_offer).length,s=e.filter(e=>"bot"===e.recommended_offer).length,a=e.reduce((e,t)=>{var s;const a=(null===(s=t.quiz)||void 0===s?void 0:s.budget)||"\u2014";return e[a]=(e[a]||0)+1,e},{}),l=Object.entries(a).sort((e,t)=>t[1]-e[1])[0],r=e.reduce((e,t)=>{var s;const a=(null===(s=t.quiz)||void 0===s?void 0:s.motivation)||"\u2014";return e[a]=(e[a]||0)+1,e},{}),i=Object.entries(r).sort((e,t)=>t[1]-e[1])[0];return[{label:"Profil Formation 167\u20ac",n:t,color:"#818cf8",sub:"".concat(Math.round(t/Math.max(e.length,1)*100),"% des leads")},{label:"Profil Bot 19,99\u20ac/mois",n:s,color:"#14b8a6",sub:"".concat(Math.round(s/Math.max(e.length,1)*100),"% des leads")},{label:"Budget le plus fr\xe9quent",n:(null===l||void 0===l?void 0:l[0])||"\u2014",color:"#f59e0b",sub:"".concat((null===l||void 0===l?void 0:l[1])||0," leads")},{label:"Motivation principale",n:((null===i||void 0===i?void 0:i[0])||"\u2014").replace(/_/g," "),color:"#10b981",sub:"".concat((null===i||void 0===i?void 0:i[1])||0," leads")}]})().map((e,t)=>(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/8 rounded-xl p-4",children:[(0,le.jsx)("div",{className:"text-lg font-black text-white truncate",style:{color:e.color},children:e.n}),(0,le.jsx)("div",{className:"text-slate-300 text-xs font-semibold mt-0.5 leading-snug",children:e.label}),(0,le.jsx)("div",{className:"text-slate-600 text-[10px] mt-1",children:e.sub})]},t))}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl overflow-hidden",children:[(0,le.jsx)("div",{className:"overflow-x-auto",children:(0,le.jsxs)("table",{className:"w-full min-w-[900px]",children:[(0,le.jsx)("thead",{children:(0,le.jsxs)("tr",{className:"border-b border-white/5",children:[(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3",children:"Pr\xe9nom / Email"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3",children:"Offre recommand\xe9e"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3",children:"Budget d\xe9clar\xe9"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3",children:"Motivation"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3",children:"Objectif"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3",children:"Priorit\xe9"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3",children:"Emails"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3 hidden lg:table-cell",children:"Score"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3",children:"Actions CRM"})]})}),(0,le.jsx)("tbody",{children:e.map((e,t)=>{var s,l,r,i,d,o,x,m;const u=Ji[e.segment]||{label:e.segment,color:"text-slate-400 bg-slate-800 border-white/10"},p=e.recommended_offer||("froid"===e.segment?"bot":"formation"),h=((null===(s=e.quiz)||void 0===s?void 0:s.motivation)||e.motivation||"\u2014").replace(/_/g," "),b=(null===(l=e.quiz)||void 0===l?void 0:l.budget)||e.budget||"\u2014",g=(null===(r=e.quiz)||void 0===r?void 0:r.goal)||e.monthly_goal||"\u2014",f=sl[e.id]||{},j=e.crm_status||"nouveau",v=pl===e.id,N={tres_chaud:{label:"\ud83d\udd25\ud83d\udd25 Tr\xe8s Chaud",color:"text-red-400 bg-red-500/10 border-red-500/20"},chaud:{label:"\ud83d\udd25 Chaud",color:"text-orange-400 bg-orange-500/10 border-orange-500/20"},tiede:{label:"\ud83d\udcc8 Ti\xe8de",color:"text-amber-400 bg-amber-500/10 border-amber-500/20"},froid:{label:"\ud83c\udf31 Froid",color:"text-teal-400 bg-teal-500/10 border-teal-500/20"}}[e.temperature||e.segment]||u,y={nouveau:"text-slate-400 bg-slate-800/60 border-white/10",contacte:"text-blue-400 bg-blue-500/10 border-blue-500/20",convert
1i:"text-green-400 bg-green-500/10 border-green-500/20",perdu:"text-red-400 bg-red-500/10 border-red-500/20"};return(0,le.jsxs)("tr",{"data-testid":"free-lead-row-".concat(t),className:"border-b border-white/5 last:border-0 hover:bg-white/2 transition-colors",children:[(0,le.jsxs)("td",{className:"px-4 py-3",children:[(0,le.jsx)("p",{className:"text-white text-sm font-semibold",children:e.name||"\u2014"}),(0,le.jsx)("p",{className:"text-slate-500 text-xs",children:e.email}),(0,le.jsx)("p",{className:"text-slate-600 text-[10px] mt-0.5",children:e.created_at?new Date(e.created_at).toLocaleDateString("fr-FR"):"\u2014"})]}),(0,le.jsx)("td",{className:"px-4 py-3",children:"formation"===p?(0,le.jsx)("span",{className:"inline-flex items-center gap-1 text-xs px-2 py-0.5 rounded-full border font-bold text-indigo-400 bg-indigo-500/10 border-indigo-500/20",children:"\ud83d\ude80 Formation 167\u20ac"}):(0,le.jsx)("span",{className:"inline-flex items-center gap-1 text-xs px-2 py-0.5 rounded-full border font-bold text-teal-400 bg-teal-500/10 border-teal-500/20",children:"\ud83c\udf31 Bot 19,99\u20ac/mois"})}),(0,le.jsx)("td",{className:"px-4 py-3 text-slate-300 text-sm font-mono",children:b}),(0,le.jsx)("td",{className:"px-4 py-3 text-slate-400 text-xs capitalize max-w-[120px] truncate",children:h}),(0,le.jsx)("td",{className:"px-4 py-3 text-slate-300 text-xs",children:g}),(0,le.jsxs)("td",{className:"px-4 py-3",children:[(0,le.jsx)("span",{className:"inline-flex items-center text-xs px-2 py-0.5 rounded-full border font-bold ".concat(N.color||N.color),children:N.label||N.label}),e.composite_score>0&&(0,le.jsxs)("div",{className:"text-[10px] text-slate-600 mt-0.5 font-mono",children:[e.composite_score,"/100"]})]}),(0,le.jsx)("td",{className:"px-4 py-3",children:f.total?(0,le.jsxs)("div",{className:"text-xs space-y-0.5",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("span",{className:"text-green-400 font-bold",children:f.sent||0}),(0,le.jsxs)("span",{className:"text-slate-600",children:["/",f.total," envoy\xe9s"]})]}),(null===(i=e.email_stats)||void 0===i?void 0:i.opens_count)>0&&(0,le.jsxs)("div",{className:"text-purple-400 font-bold",children:["\ud83d\udc41 ",e.email_stats.opens_count]}),(null===(d=e.email_stats)||void 0===d?void 0:d.clicks_count)>0&&(0,le.jsxs)("div",{className:"text-green-400 font-bold",children:["\ud83d\uddb1 ",e.email_stats.clicks_count]}),f.last_template&&(0,le.jsx)("div",{className:"text-slate-600 text-[10px] font-mono truncate max-w-[80px]",children:f.last_template})]}):(0,le.jsx)("span",{className:"text-slate-700 text-xs",children:"\u2014"})}),(0,le.jsx)("td",{className:"px-4 py-3 text-slate-400 text-sm hidden lg:table-cell font-mono",children:null!==(o=e.score)&&void 0!==o?o:"\u2014"}),(0,le.jsx)("td",{className:"px-4 py-3",children:(0,le.jsxs)("div",{className:"flex flex-col gap-1.5 min-w-[160px]",children:[(0,le.jsxs)("span",{className:"inline-flex items-center text-[10px] px-2 py-0.5 rounded-full border font-bold w-fit ".concat(y[j]||y.nouveau),children:["nouveau"===j?"\ud83c\udd95":"contacte"===j?"\ud83d\udcde":"converti"===j?"\u2705":"\u274c"," ",j]}),(0,le.jsxs)("div",{className:"flex gap-1 flex-wrap",children:["contacte"!==j&&"converti"!==j&&(0,le.jsx)("button",{"data-testid":"btn-contacter-".concat(t),disabled:v,onClick:()=>Gi(e.id,"contacte"),className:"text-[10px] px-2 py-1 rounded-lg font-bold transition-all hover:opacity-90 disabled:opacity-40",style:{background:"rgba(59,130,246,.15)",color:"#60a5fa",border:"1px solid rgba(59,130,246,.25)"},children:v?"\u2026":"\ud83d\udcde Contacter"}),"converti"!==j&&(0,le.jsx)("button",{"data-testid":"btn-converti-".concat(t),disabled:v,onClick:()=>Gi(e.id,"converti"),className:"text-[10px] px-2 py-1 rounded-lg font-bold transition-all hover:opacity-90 disabled:opacity-40",style:{background:"rgba(34,197,94,.15)",color:"#4ade80",border:"1px solid rgba(34,197,94,.25)"},children:v?"\u2026":"\u2705 Converti"}),(0,le.jsx)("button",{"data-testid":"btn-note-".concat(t),onClick:()=>{xl(cl===e.id?null:e.id),nl(t=>(0,a.A)((0,a.A)({},t),{},{[e.id]:e.crm_note||""}))},className:"text-[10px] px-2 py-1 rounded-lg font-bold transition-all hover:opacity-90",style:{background:"rgba(245,158,11,.10)",color:"#fbbf24",border:"1px solid rgba(245,158,11,.2)"},children:"\ud83d\udcdd Note"})]}),cl===e.id&&(0,le.jsxs)("div",{className:"mt-1",children:[(0,le.jsx)("textarea",{value:null!==(x=null!==(m=il[e.id])&&void 0!==m?m:e.crm_note)&&void 0!==x?x:"",onCh
1ange:t=>nl(s=>(0,a.A)((0,a.A)({},s),{},{[e.id]:t.target.value})),placeholder:"Note admin...",rows:2,className:"w-full bg-slate-800 border border-white/10 rounded-lg px-2 py-1.5 text-white text-[11px] resize-none focus:outline-none focus:border-teal-500/40"}),(0,le.jsx)("button",{onClick:()=>(async e=>{var t;const s=null!==(t=il[e])&&void 0!==t?t:"";try{await n.A.patch("".concat(ma,"/api/admin/free-leads/").concat(e,"/note"),{note:s},{headers:c()}),ta(t=>t.map(t=>t.id===e?(0,a.A)((0,a.A)({},t),{},{crm_note:s}):t)),xl(null),Al("Note sauvegard\xe9e","success")}catch(l){Al("Erreur note","error")}})(e.id),className:"mt-1 text-[10px] px-2 py-1 rounded-lg bg-teal-600/20 border border-teal-500/25 text-teal-400 font-bold hover:bg-teal-600/30 transition-all",children:"Sauvegarder"})]}),e.crm_note&&cl!==e.id&&(0,le.jsxs)("p",{className:"text-slate-500 text-[10px] italic truncate max-w-[160px]",title:e.crm_note,children:["\ud83d\udcdd ",e.crm_note]})]})})]},e.id||t)})})]})}),(0,le.jsxs)("div",{className:"px-4 py-3 border-t border-white/5 text-slate-600 text-xs",children:[e.length," r\xe9sultat",e.length>1?"s":""," ","all"!==Ca?"(filtre : ".concat(Ca,")"):""]})]})]}):(0,le.jsx)("div",{className:"text-center py-12 text-slate-500",children:"Chargement..."})]})},waitlist:()=>(Ka||ln(),(0,le.jsxs)("div",{className:"p-6 max-w-4xl",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between mb-6 flex-wrap gap-4",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h2",{className:"text-white text-xl font-bold",children:"Liste d'attente \u2014 Bot 19,99\u20ac/mois"}),(0,le.jsxs)("p",{className:"text-slate-400 text-sm mt-1",children:[Oa," inscrit(s) \xb7 ",Wa," en attente de notification"]})]}),(0,le.jsx)("button",{onClick:rn,disabled:Xa||0===Wa,"data-testid":"notify-waitlist-btn",className:"flex items-center gap-2 px-4 py-2.5 rounded-xl text-sm font-bold disabled:opacity-50 transition-all",style:{background:"rgba(249,115,22,0.15)",border:"1px solid rgba(249,115,22,0.35)",color:"#fb923c"},children:Xa?"Envoi...":"Notifier les ".concat(Wa," en attente")})]}),(0,le.jsx)("div",{className:"grid grid-cols-3 gap-4 mb-6",children:[{label:"Total inscrits",value:Oa,color:"#fff"},{label:"\xc0 notifier",value:Wa,color:"#fb923c"},{label:"D\xe9j\xe0 notifi\xe9s",value:Oa-Wa,color:"#34d399"}].map((e,t)=>(0,le.jsxs)("div",{className:"bg-slate-900/60 border border-white/7 rounded-xl p-4 text-center",children:[(0,le.jsx)("div",{className:"text-2xl font-black",style:{color:e.color},children:e.value}),(0,le.jsx)("div",{className:"text-slate-500 text-xs mt-1",children:e.label})]},t))}),(0,le.jsx)("div",{className:"bg-slate-900/40 border border-white/7 rounded-2xl overflow-hidden",children:(0,le.jsxs)("table",{className:"w-full",children:[(0,le.jsx)("thead",{children:(0,le.jsxs)("tr",{className:"border-b border-white/7 text-xs text-slate-500 uppercase tracking-wider",children:[(0,le.jsx)("th",{className:"text-left px-4 py-3",children:"Email"}),(0,le.jsx)("th",{className:"text-left px-4 py-3",children:"Pr\xe9nom"}),(0,le.jsx)("th",{className:"text-left px-4 py-3",children:"Source"}),(0,le.jsx)("th",{className:"text-left px-4 py-3",children:"Date"}),(0,le.jsx)("th",{className:"text-center px-4 py-3",children:"Statut"})]})}),(0,le.jsx)("tbody",{children:0===La.length?(0,le.jsx)("tr",{children:(0,le.jsx)("td",{colSpan:5,className:"text-center text-slate-600 py-8 text-sm",children:"Aucune inscription pour l'instant."})}):La.map((e,t)=>(0,le.jsxs)("tr",{className:"border-b border-white/5 hover:bg-white/3 transition-colors",children:[(0,le.jsx)("td",{className:"px-4 py-3 text-sm text-white font-medium",children:e.email}),(0,le.jsx)("td",{className:"px-4 py-3 text-sm text-slate-400",children:e.first_name||"\u2014"}),(0,le.jsx)("td",{className:"px-4 py-3 text-xs text-slate-500",children:e.source||"\u2014"}),(0,le.jsx)("td",{className:"px-4 py-3 text-xs text-slate-500",children:e.created_at?new Date(e.created_at).toLocaleDateString("fr-FR"):"\u2014"}),(0,le.jsx)("td",{className:"px-4 py-3 text-center",children:e.notified?(0,le.jsx)("span",{className:"text-xs text-emerald-400 bg-emerald-500/10 border border-emerald-500/20 rounded-full px-2 py-0.5",children:"Notifi\xe9"}):(0,le.jsx)("span",{className:"text-xs text-amber-400 bg-amber-500/10 border border-amber-500/20 rounded-full px-2 py-0.5",children:"En attente"})})]},t))})]})})]})),testimonials:()=>{const e=Xi.filter(e=>"pending"===e.status),t=Xi.filter(e=>"pending"!==e.status),s=e=>{let t=e.s;return{pending:(0,le.jsx)("span",{className:"text-xs text-amber-400 bg-amber-500/10 border border-amber-500/20 rounded-full px-2 py-0.5",children:"En attente"}),approved:(0,le.jsx)("span",{className:"text-xs text-emerald-400 bg-emerald-500/10 border border-emerald-500/20 rounded-full px-2 py-0.5",children:"Approuv\xe9"}),rejected:(0,le.jsx)("span",{className:"text-xs text-red-400 bg-red-500/10 border border-red-500/20 rounded-full px-2 py-0.5",children:"Refus\xe9"})}[t]||null};return(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-3",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h1",{className:"text-2xl font-bold text-white",children:"T\xe9moignages Vid\xe9o"}),(0,le.jsxs)("p",{className:"text-slate-400 text-sm mt-1",children:[e.length," en attente \xb7 ",Xi.length," total"]})]}),(0,le.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,le.jsx)("button",{onClick:async()=>{try{await n.A.post("".concat(ma,"/api/testimonials/admin/broadcast-incentive"),{},{headers:c()}),Al('Email "Module Fiscalit\xe9 offert" envoy\xe9 aux membres !',"success")}catch(e){Al("Erreur lors du broadcast","error")}},"data-testid":"broadcast-incentive-btn",className:"flex items-center gap-2 px-4 py-2 rounded-xl bg-amber-500/10 border border-amber-500/20 text-amber-400 hover:bg-amber-500/20 text-sm font-semibold transition-all",children:'Envoyer email "Module Fiscalit\xe9"'}),(0,le.jsxs)("button",{onClick:an,className:"flex items-center gap-2 px-4 py-2 rounded-xl bg-slate-800 border border-white/8 text-slate-400 hover:text-white text-sm transition-all",children:[(0,le.jsx)(A.A,{size:14})," Rafra\xeechir"]})]})]}),0===e.length&&(0,le.jsxs)("div",{className:"bg-slate-900/60 border border-white/5 rounded-2xl p-8 text-center",children:[(0,le.jsx)(v.A,{size:32,className:"text-slate-600 mx-auto mb-3"}),(0,le.jsx)("p",{className:"text-slate-400 text-sm",children:"Aucun t\xe9moignage en attente de validation"})]}),e.length>0&&(0,le.jsxs)("div",{className:"space-y-3",children:[(0,le.jsx)("p",{className:"text-slate-500 text-xs font-semibold uppercase tracking-wider",children:"En attente de validation"}),e.map(e=>(0,le.jsxs)("div",{className:"bg-slate-900/80 border border-amber-500/20 rounded-2xl p-5",children:[(0,le.jsxs)("div",{className:"flex items-start justify-between gap-4 mb-3",children:[(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsx)("p",{className:"text-white font-semibold text-sm",children:e.user_name||e.user_email}),(0,le.jsx)("p",{className:"text-slate-500 text-xs",children:e.user_email}),e.description&&(0,le.jsxs)("p",{className:"text-slate-400 text-xs mt-1 italic",children:['"',e.description,'"']})]}),(0,le.jsx)(s,{s:e.status})]}),e.video_url?(0,le.jsx)("video",{src:"".concat(ma).concat(e.video_url),controls:!0,playsInl
1ine:!0,preload:"metadata",className:"h-48 w-full max-w-sm rounded-lg bg-black object-contain mb-4 border border-white/10"}):e.youtube_url?(0,le.jsx)("a",{href:e.youtube_url,target:"_blank",rel:"noopener noreferrer",className:"text-blue-400 text-sm hover:underline block mb-4 truncate",children:e.youtube_url}):(0,le.jsx)("p",{className:"text-slate-500 text-sm mb-4 italic",children:"Aucune vid\xe9o"}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsxs)("button",{onClick:()=>(async e=>{try{await n.A.post("".concat(ma,"/api/testimonials/admin/").concat(e,"/approve"),{},{headers:c()}),Al("T\xe9moignage approuv\xe9 \u2014 module fiscalit\xe9 d\xe9bloqu\xe9 !","success"),an()}catch(t){Al("Erreur","error")}})(e.id),"data-testid":"approve-".concat(e.id),className:"flex items-center gap-2 h-9 px-4 rounded-xl bg-emerald-600/15 border border-emerald-500/25 text-emerald-400 hover:bg-emerald-600/25 text-sm font-semibold transition-all",children:[(0,le.jsx)(C.A,{size:13})," Approuver + d\xe9bloquer fiscalit\xe9"]}),(0,le.jsxs)("button",{onClick:()=>(async e=>{try{await n.A.post("".concat(ma,"/api/testimonials/admin/").concat(e,"/reject"),{},{headers:c()}),Al("T\xe9moignage refus\xe9","success"),an()}catch(t){Al("Erreur","error")}})(e.id),"data-testid":"reject-".concat(e.id),className:"flex items-center gap-2 h-9 px-4 rounded-xl bg-red-600/10 border border-red-500/20 text-red-400 hover:bg-red-600/20 text-sm transition-all",children:[(0,le.jsx)(H.A,{size:13})," Refuser"]})]})]},e.id))]}),t.length>0&&(0,le.jsxs)("div",{className:"space-y-3 mt-6",children:[(0,le.jsx)("p",{className:"text-slate-500 text-xs font-semibold uppercase tracking-wider",children:"Historique"}),t.map(e=>(0,le.jsxs)("div",{className:"bg-slate-900/60 border border-white/8 rounded-xl p-4 flex items-center gap-4",children:[(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsx)("p",{className:"text-white text-sm font-semibold",children:e.user_name||e.user_email}),e.video_url?(0,le.jsxs)("a",{href:"".concat(ma).concat(e.video_url),target:"_blank",rel:"noopener noreferrer",className:"text-blue-400 text-xs hover:underline truncate block",children:["Voir la vid\xe9o (",e.duration_s?e.duration_s+"s":"Fichier",")"]}):e.youtube_url?(0,le.jsx)("a",{href:e.youtube_url,target:"_blank",rel:"noopener noreferrer",className:"text-blue-400 text-xs hover:underline truncate block",children:e.youtube_url}):null]}),(0,le.jsx)(s,{s:e.status})]},e.id))]})]})},media_testimonials:()=>(0,le.jsx)(ya,{headers:c,msg:Al}),landing_video:()=>(0,le.jsx)(Na,{headers:c,msg:Al}),ai_tracking:()=>(0,le.jsx)(va,{headers:c}),vintytrack:()=>(0,le.jsx)(da,{headers:c}),modules:()=>(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsx)("h1",{className:"text-2xl font-bold text-white",style:{fontFamily:"Outfit, sans-serif"},children:"Vid\xe9os de Formation"}),(0,le.jsxs)("button",{onClick:()=>{dt(null),at({title:"",description:"",content:"",video_url:"",level:"D\xe9butant",read_time:"5 min",icon:"book",required_plan:"starter"}),It(!Dt)},className:"flex items-center gap-2 bg-blue-600/15 border border-blue-500/20 text-blue-400 hover:bg-blue-600/25 px-4 py-2 rounded-xl text-sm font-semibold transition-all",children:[(0,le.jsx)(_.A,{size:14})," Nouveau module"]})]}),Dt&&(0,le.jsxs)("div",{className:"bg-slate-900 border border-blue-500/20 rounded-2xl p-5 space-y-4",children:[(0,le.jsx)("h3",{className:"text-white font-bold",children:nt?"Modifier le module":"Nouveau module"}),(0,le.jsxs)("div",{className:"grid md:grid-cols-2 gap-4",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Titre *"}),(0,le.jsx)("input",{value:st.title,onChange:e=>at(t=>(0,a.A)((0,a.A)({},t),{},{title:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",placeholder:"Titre du module"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Fichier Vid\xe9o (Direct Serveur)"}),(0,le.jsx)("input",{type:"file",accept:"video/*",onChange:async e=>{if(!e.target.files[0])return;const t=e.target.files[0],s=new FormData;s.append("file",t);try{Al("Upload de la vid\xe9o en cours, patientez...","info");const e=await n.A.post("".concat(ma,"/api/admin/modules/upload-video"),s,{headers:(0,a.A)((0,a.A)({},c()),{},{"Content-Type":"multipart/form-data"})});at(t=>(0,a.A)((0,a.A)({},t),{},{video_url:e.data.url})),Al("Vid\xe9o upload\xe9e avec succ\xe8s !")}catch(l){Al("Erreur lors de l'upload","error")}},className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm"}),st.video_url&&(0,le.jsxs)("p",{className:"text-emerald-400 text-xs mt-1",children:["Vid\xe9o actuelle : ",st.video_url]})]}),(0,le.jsxs)("div",{className:"md:col-span-2",children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Description"}),(0,le.jsx)("input",{value:st.description,onChange:e=>at(t=>(0,a.A)((0,a.A)({},t),{},{description:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",placeholder:"Courte description"})]}),(0,le.jsxs)("div",{className:"md:col-span-2",children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Contenu texte"}),(0,le.jsx)("textarea",{value:st.content,onChange:e=>at(t=>(0,a.A)((0,a.A)({},t),{},{content:e.target.value})),rows:8,className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm font-mono resize-y",placeholder:"Contenu du module (texte format\xe9)..."})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Niveau"}),(0,le.jsx)("select",{value:st.level,onChange:e=>at(t=>(0,a.A)((0,a.A)({},t),{},{level:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",children:ga.map(e=>(0,le.jsx)("option",{value:e,children:e},e))})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Plan requis"}),(0,le.jsx)("select",{value:st.required_plan,onChange:e=>at(t=>(0,a.A)((0,a.A)({},t),{},{required_plan:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",children:fa.map(e=>(0,le.jsx)("option",{value:e,children:ua[e]||e},e))})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Temps de lecture"}),(0,le.jsx)("input",{value:st.read_time,onChange:e=>at(t=>(0,a.A)((0,a.A)({},t),{},{read_time:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",placeholder:"5 min"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Ic\xf4ne"}),(0,le.jsx)("select",{value:st.icon,onChange:e=>at(t=>(0,a.A)((0,a.A)({},t),{},{icon:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",children:ba.map(e=>(0,le.jsx)("option",{value:e,children:e},e))})]})]}),(0,le.jsxs)("div",{className:"flex gap-3",children:[(0,le.jsx)("button",{onClick:ki,className:"bg-blue-600/20 border border-blue-500/20 text-blue-400 hover:bg-blue-600/30 px-5 py-2 rounded-xl text-sm font-semibold transition-all",children:nt?"Mettre \xe0 j
1our":"Publier le module"}),(0,le.jsx)("button",{onClick:()=>{It(!1),dt(null)},className:"text-slate-400 hover:text-white px-4 py-2 rounded-xl text-sm transition-all",children:"Annuler"})]})]}),(0,le.jsxs)("div",{className:"space-y-3",children:[Me.map(e=>(0,le.jsxs)("div",{"data-testid":"admin-module-".concat(e.id),className:"bg-slate-900 border border-white/5 rounded-2xl p-4 flex items-center gap-4",children:[(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,le.jsx)("span",{className:"text-white font-semibold text-sm",children:e.title}),(0,le.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-full border font-bold ".concat(pa[e.required_plan]||""),children:ua[e.required_plan]||e.required_plan}),(0,le.jsx)("span",{className:"text-xs text-slate-500",children:e.level})]}),(0,le.jsx)("p",{className:"text-slate-400 text-xs truncate",children:e.description})]}),(0,le.jsxs)("div",{className:"flex gap-2 flex-shrink-0",children:[(0,le.jsx)("button",{onClick:()=>(e=>{at({title:e.title,description:e.description,content:e.content||"",video_url:e.video_url||"",level:e.level,read_time:e.read_time,icon:e.icon,required_plan:e.required_plan}),dt(e.id),It(!0)})(e),className:"p-2 rounded-lg bg-blue-600/10 border border-blue-500/10 text-blue-400 hover:bg-blue-600/20 transition-all",children:(0,le.jsx)(I.A,{size:13})}),(0,le.jsx)("button",{onClick:()=>(async e=>{window.confirm("Supprimer ce module ?")&&(await n.A.delete("".concat(ma,"/api/admin/modules/").concat(e),{headers:c()}),Al("Module supprim\xe9"),mi())})(e.id),className:"p-2 rounded-lg bg-red-600/10 border border-red-500/10 text-red-400 hover:bg-red-600/20 transition-all",children:(0,le.jsx)(F.A,{size:13})})]})]},e.id)),0===Me.length&&(0,le.jsx)("p",{className:"text-slate-500 text-sm",children:"Aucun module. Cr\xe9e le premier ci-dessus."})]})]}),events:()=>(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsx)("h1",{className:"text-2xl font-bold text-white",style:{fontFamily:"Outfit, sans-serif"},children:"Gestion des \xe9v\xe9nements"}),(0,le.jsxs)("button",{onClick:()=>{gt(null),ut({title:"",description:"",date:"",time:"20:00",type:"live",discord_link:"",replay_link:""}),Ot(!Pt)},className:"flex items-center gap-2 bg-blue-600/15 border border-blue-500/20 text-blue-400 hover:bg-blue-600/25 px-4 py-2 rounded-xl text-sm font-semibold transition-all",children:[(0,le.jsx)(_.A,{size:14})," Nouvel \xe9v\xe9nement"]})]}),Pt&&(0,le.jsxs)("div",{className:"bg-slate-900 border border-blue-500/20 rounded-2xl p-5 space-y-4",children:[(0,le.jsx)("h3",{className:"text-white font-bold",children:bt?"Modifier l'\xe9v\xe9nement":"Nouvel \xe9v\xe9nement"}),(0,le.jsxs)("div",{className:"grid md:grid-cols-2 gap-4",children:[(0,le.jsxs)("div",{className:"md:col-span-2",children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Titre *"}),(0,le.jsx)("input",{value:mt.title,onChange:e=>ut(t=>(0,a.A)((0,a.A)({},t),{},{title:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",placeholder:"Titre de l'\xe9v\xe9nement"})]}),(0,le.jsxs)("div",{className:"md:col-span-2",children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Description"}),(0,le.jsx)("textarea",{value:mt.description,onChange:e=>ut(t=>(0,a.A)((0,a.A)({},t),{},{description:e.target.value})),rows:3,className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm resize-none"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Date *"}),(0,le.jsx)("input",{type:"date",value:mt.date,onChange:e=>ut(t=>(0,a.A)((0,a.A)({},t),{},{date:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Heure *"}),(0,le.jsx)("input",{type:"time",value:mt.time,onChange:e=>ut(t=>(0,a.A)((0,a.A)({},t),{},{time:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Type"}
1),(0,le.jsx)("select",{value:mt.type,onChange:e=>ut(t=>(0,a.A)((0,a.A)({},t),{},{type:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",children:ja.map(e=>(0,le.jsx)("option",{value:e,children:e},e))})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Lien Discord"}),(0,le.jsx)("input",{value:mt.discord_link,onChange:e=>ut(t=>(0,a.A)((0,a.A)({},t),{},{discord_link:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",placeholder:"https://discord.gg/..."})]})]}),(0,le.jsxs)("div",{className:"flex gap-3",children:[(0,le.jsx)("button",{onClick:Si,className:"bg-blue-600/20 border border-blue-500/20 text-blue-400 hover:bg-blue-600/30 px-5 py-2 rounded-xl text-sm font-semibold transition-all",children:bt?"Mettre \xe0 jour":"Cr\xe9er l'\xe9v\xe9nement"}),(0,le.jsx)("button",{onClick:()=>{Ot(!1),gt(null)},className:"text-slate-400 hover:text-white px-4 py-2 rounded-xl text-sm transition-all",children:"Annuler"})]})]}),(0,le.jsxs)("div",{className:"space-y-3",children:[Ue.map(e=>(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl p-4 flex items-center gap-4",children:[(0,le.jsx)("div",{className:"w-10 h-10 bg-indigo-600/15 rounded-xl flex items-center justify-center flex-shrink-0",children:(0,le.jsx)(V.A,{size:16,className:"text-indigo-400"})}),(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsx)("p",{className:"text-white font-semibold text-sm",children:e.title}),(0,le.jsxs)("p",{className:"text-slate-400 text-xs",children:[e.date," \xe0 ",e.time," \xb7 ",e.type]})]}),(0,le.jsxs)("div",{className:"flex gap-2 flex-shrink-0",children:[(0,le.jsx)("button",{onClick:()=>{ut({title:e.title,description:e.description,date:e.date,time:e.time,type:e.type,discord_link:e.discord_link||"",replay_link:e.replay_link||""}),gt(e.id),Ot(!0)},className:"p-2 rounded-lg bg-blue-600/10 border border-blue-500/10 text-blue-400 hover:bg-blue-600/20 transition-all",children:(0,le.jsx)(I.A,{size:13})}),(0,le.jsx)("button",{onClick:()=>(async e=>{window.confirm("Supprimer cet \xe9v\xe9nement ?")&&(await n.A.delete("".concat(ma,"/api/admin/events/").concat(e),{headers:c()}),Al("\xc9v\xe9nement supprim\xe9"),mi())})(e.id),className:"p-2 rounded-lg bg-red-600/10 border border-red-500/10 text-red-400 hover:bg-red-600/20 transition-all",children:(0,le.jsx)(F.A,{size:13})})]})]},e.id)),0===Ue.length&&(0,le.jsx)("p",{className:"text-slate-500 text-sm",children:"Aucun \xe9v\xe9nement. Cr\xe9e le premier ci-dessus."})]})]}),analytics:()=>(0,le.jsx)(Ze,{headers:c}),niches:()=>(0,le.jsx)(ne,{headers:c,msg:Al}),products:()=>(0,le.jsx)(xe,{headers:c,msg:Al}),reselltrack:()=>(0,le.jsx)(ye,{headers:c,msg:Al}),notify:()=>(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsx)("h1",{className:"text-2xl font-bold text-white",style:{fontFamily:"Outfit, sans-serif"},children:"Envoyer une notification"}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl p-5 space-y-4",children:[(0,le.jsxs)("p",{className:"text-slate-400 text-sm",children:["Envoie une notification \xe0 tous les membres actifs (",ve.filter(e=>e.plan).length," membres)."]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Titre *"}),(0,le.jsx)("input",{value:yt.title,onChange:e=>wt(t=>(0,a.A)((0,a.A)({},t),{},{title:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",placeholder:"Titre de la notification"})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Message *"}),(0,le.jsx)("textarea",{value:yt.message,onChange:e=>wt(t=>(0,a.A)((0,a.A)({},t),{},{message:e.target.value})),rows:4,className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm resize-none",placeholder:"Contenu de la notification..."})]}),(0,le.jsxs)("div",{children:[(0,le.jsx)("label",{className:"text-slate-400 text-xs mb-1 block",children:"Type"}
1),(0,le.jsx)("select",{value:yt.type,onChange:e=>wt(t=>(0,a.A)((0,a.A)({},t),{},{type:e.target.value})),className:"w-full bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm",children:["info","success","warning","error"].map(e=>(0,le.jsx)("option",{value:e,children:e},e))})]}),(0,le.jsxs)("button",{onClick:Ci,disabled:!yt.title||!yt.message,className:"bg-blue-600/20 border border-blue-500/20 text-blue-400 hover:bg-blue-600/30 px-5 py-2 rounded-xl text-sm font-semibold transition-all flex items-center gap-2 disabled:opacity-40 disabled:cursor-not-allowed",children:[(0,le.jsx)(D.A,{size:13})," Envoyer \xe0 tous les membres"]})]})]}),members:()=>(0,le.jsx)(fe,{headers:c,msg:Al}),wholesale_req:()=>(0,le.jsx)(Ee,{headers:o}),planning:()=>(0,le.jsx)(lt,{headers:c}),blog:()=>(0,le.jsx)(Ie,{}),bookings:()=>{const e={pending:{label:"En attente",color:"bg-blue-600/15 text-blue-400 border-blue-500/20"},accepted:{label:"Accept\xe9",color:"bg-green-600/15 text-green-400 border-green-500/20"},refused:{label:"Refus\xe9",color:"bg-red-600/15 text-red-400 border-red-500/20"},answered:{label:"R\xe9pondu",color:"bg-violet-600/15 text-violet-400 border-violet-500/20"}};return(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("h1",{className:"text-2xl font-bold text-white",style:{fontFamily:"Outfit, sans-serif"},children:"Demandes d'appels"}),(0,le.jsx)("p",{className:"text-slate-400 text-sm mt-1",children:"Toutes les demandes soumises par les membres"})]}),(0,le.jsxs)("button",{onClick:mi,className:"flex items-center gap-2 px-4 py-2 rounded-xl bg-slate-800 border border-white/8 text-slate-400 hover:text-white text-sm transition-all",children:[(0,le.jsx)(A.A,{size:14})," Rafra\xeechir"]})]}),Ri&&(0,le.jsx)("div",{className:"fixed inset-0 bg-black/70 z-50 flex items-center justify-center p-4",onClick:()=>Ti(null),children:(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/10 rounded-2xl p-6 w-full max-w-md
1space-y-4",onClick:e=>e.stopPropagation(),children:[(0,le.jsxs)("div",{className:"flex items-center justify-between",children:[(0,le.jsx)("h2",{className:"text-white font-bold text-base",children:"R\xe9pondre \xe0 la demande"}),(0,le.jsx)("button",{onClick:()=>Ti(null),className:"text-slate-400 hover:text-white",children:(0,le.jsx)(q.A,{size:18})})]}),(0,le.jsx)("div",{className:"grid grid-cols-3 gap-2",children:["accepted","answered","refused"].map(e=>(0,le.jsx)("button",{onClick:()=>Li(t=>(0,a.A)((0,a.A)({},t),{},{status:e})),className:"py-2.5 rounded-xl text-xs font-semibold border transition-all ".concat(Ii.status===e?"accepted"===e?"bg-green-600/20 border-green-500/30 text-green-400":"answered"===e?"bg-violet-600/20 border-violet-500/30 text-violet-400":"bg-red-600/20 border-red-500/30 text-red-400":"border-white/8 text-slate-400 hover:border-white/20"),children:"accepted"===e?"Appel confirm\xe9":"answered"===e?"R\xe9pondu msg":"Refuser"},e))}),"accepted"===Ii.status&&(0,le.jsxs)(le.Fragment,{children:[(0,le.jsx)("input",{value:Ii.meeting_time,onChange:e=>Li(t=>(0,a.A)((0,a.A)({},t),{},{meeting_time:e.target.value})),placeholder:"Cr\xe9neau ex: Mercredi 20h (Zoom)",className:"w-full bg-slate-800 border border-white/8 rounded-xl px-4 py-3 text-white text-sm placeholder-slate-600 focus:outline-none focus:border-blue-500/40"}),(0,le.jsx)("input",{value:Ii.meeting_link,onChange:e=>Li(t=>(0,a.A)((0,a.A)({},t),{},{meeting_link:e.target.value})),placeholder:"Lien Meet / Zoom https://...",className:"w-full bg-slate-800 border border-white/8 rounded-xl px-4 py-3 text-white text-sm placeholder-slate-600 focus:outline-none focus:border-blue-500/40"})]}),(0,le.jsx)("input",{value:Ii.admin_note,onChange:e=>Li(t=>(0,a.A)((0,a.A)({},t),{},{admin_note:e.target.value})),placeholder:"Note pour le membre (optionnel)",className:"w-full bg-slate-800 border border-white/8 rounded-xl px-4 py-3 text-white text-sm placeholder-slate-600 focus:outline-none focus:border-blue-500/40"}),(0,le.jsx)("button",{onClick:qi,className:"w-full py-3 rounded-xl bg-gradient-to-r from-blue-500 to-indigo-500 text-white font-semibold text-sm hover:from-blue-400 hover:to-indigo-400 transition-all",children:"Confirmer"})]})}),(0,le.jsxs)("div",{className:"space-y-3",children:[_e.map(t=>{const s=e[t.status]||e.pending;return(0,le.jsx)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl p-4","data-testid":"br-".concat(t.id),children:(0,le.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,le.jsxs)("div",{className:"flex-1 min-w-0 space-y-1",children:[(0,le.jsxs)("p",{className:"text-white font-semibold text-sm",children:[t.user_email," ",t.user_name&&(0,le.jsxs)("span",{className:"text-slate-500 font-normal",children:["(",t.user_name,")"]})]}),t.raison&&(0,le.jsxs)("p",{className:"text-slate-300 text-xs font-medium",children:["Raison : ",t.raison]}),t.probleme&&(0,le.jsxs)("p",{className:"text-slate-400 text-xs",children:["Probl\xe8me : ",(0,le.jsx)("span",{className:"text-slate-300",children:t.probleme})]}),t.objectif&&(0,le.jsxs)("p",{className:"text-slate-400 text-xs",children:["Objectif : ",(0,le.jsx)("span",{className:"text-slate-300",children:t.objectif})]}),t.urgence&&"normale"!==t.urgence&&(0,le.jsxs)("span",{className:"inline-block text-xs px-2 py-0.5 rounded-full font-bold ".concat("urgente"===t.urgence?"bg-amber-600/15 text-amber-400 border border-amber-500/20":"bg-slate-700/50 text-slate-400"),children:["Urgence : ",t.urgence]}),t.availabilities&&(0,le.jsxs)("p",{className:"text-slate-500 text-xs",children:["Disponibilit\xe9s : ",t.availabilities]}),(0,le.jsx)("p",{className:"text-slate-600 text-xs",children:new Date(t.created_at).toLocaleDateString("fr-FR",{day:"numeric",month:"long",year:"numeric"})}),t.meeting_time&&(0,le.jsxs)("p",{className:"text-green-400 text-xs",children:["Cr\xe9neau : ",t.meeting_time]}),t.admin_note&&(0,le.jsxs)("p",{className:"text-blue-400 text-xs",children:["R\xe9ponse : ",t.admin_note]})]}),(0,le.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[(0,le.jsx)("span",{className:"text-xs px-2.5 py-1 rounded-full border font-bold ".concat(s.color),children:s.label}),"pending"===t.status&&(0,le.jsx)("button",{onClick:()=>{Ti(t.id),Li({status:"accepted",meeting_link:"",meeting_time:"",admin_note:""})},className:"p-1.5 rounded-lg bg-blue-600/15 border border-blue-500/25 text-blue-400 hover:bg-blue-600/25 transition-all",children:(0,le.jsx)(I.A,{size:12})})]})]})},t.id)}),0===_e.length&&(0,le.jsxs)("div",{className:"text-center py-12 text-slate-500",children:[(0,le.jsx)(V.A,{size:28,className:"mx-auto mb-3 opacity-30"}),(0,le.jsx)("p",{children:"Aucune demande d'appel."})]})]})]})},sales:()=>(0,le.jsxs)("div",{className:"space-y-5",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between gap-3 flex-wrap",children:[(0,le.jsx)("h1",{className:"text-2xl font-bold text-white",style:{fontFamily:"Outfit, sans-serif"},children:"Ventes Stripe"}),(0,le.jsxs)("button",{onClick:pi,disabled:De,className:"flex items-center gap-1.5 text-xs text-slate-300 hover:text-white px-3 py-2 rounded-lg bg-slate-800 hover:bg-slate-700 border border-white/8 transition-colors disabled:opacity-50",children:[(0,le.jsx)(A.A,{size:12,className:De?"animate-spin":""}),De?"Resynchronisation\u2026":"Resynchroniser depuis Stripe"]})]}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl overflow-hidden",children:[(0,le.jsxs)("table",{className:"w-full",children:[(0,le.jsx)("thead",{children:(0,le.jsxs)("tr",{className:"border-b border-white/5",children:[(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3",children:"Client"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3",children:"Montant"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3 hidden md:table-cell",children:"Plan"}),(0,le.jsx)("th",{className:"text-left text-slate-500 text-xs font-semibold px-4 py-3 hidden lg:table-cell",children:"Date"})]})}),(0,le.jsx)("tbody",{children:ze.map(e=>{var t;return(0,le.jsxs)("tr",{className:"border-b border-white/5 last:border-0 hover:bg-white/2",children:[(0,le.jsx)("td",{className:"px-4 py-3 text-white text-sm",children:e.customer_email}),(0,le.jsxs)("td",{className:"px-4 py-3 text-green-400 font-bold text-sm",children:[null===(t=e.amount)||void 0===t?void 0:t.toFixed(2),"\u20ac"]}),(0,le.jsx)("td",{className:"px-4 py-3 hidden md:table-cell",children:(0,le.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-full border font-bold ".concat(pa[e.plan]||""),children:ua[e.plan]||e.plan})}),(0,le.jsx)("td",{className:"px-4 py-3 text-slate-400 text-xs hidden lg:table-cell",children:new Date(e.created_at).toLocaleDateString("fr-FR")})]},e.id)})})]}),0===ze.length&&(0,le.jsx)("p",{className:"text-slate-500 text-sm p-4",children:"Aucune vente Stripe enregistr\xe9e."})]})]}),videos:()=>(0,le.jsx)(xt,{}),crm:()=>(0,le.jsx)(_t,{}),audit:()=>(0,le.jsx)(xa,{headers:c}),inbox:()=>(0,le.jsx)(ea,{headers:c}),actualites:()=>(0,le.jsx)(na,{}),tour_analytics:()=>(0,le.jsx)(cn,{headers:c}),crm_affiliates:()=>(0,le.jsx)(zt,{}),tiktok_verify:()=>(0,le.jsx)(Ut,{}),creatives:()=>(0,le.jsx)(Mt,{}),affiliate_apps:()=>(0,le.jsx)(ls,{}),affiliate_tools:()=>(0,le.jsx)(qs,{}),proxies:()=>(0,le.jsx)(ds,{}),extension:()=>(0,le.jsx)(us,{}),promo_codes:()=>(0,le.jsx)(Ns,{headers:c}),credits_mgmt:()=>(0,le.jsxs)("div",{className:"space-y-6",children:[(0,le.jsxs)("div",{children:[(0,le.jsxs)("h2",{className:"text-lg font-bold text-white flex items-center gap-2",children:[(0,le.jsx)(y.A,{size:16,className:"text-amber-400"})," Gestion des Cr\xe9dits Membres"]}),(0,le.jsx)("p",{className:"text-slate-500 text-xs mt-0.5",children:"Ajouter / retirer des cr\xe9dits, remettre les cr\xe9dits mensuels, voir l'historique."})]}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl p-5 space-y-3",children:[(0,le.jsx)("p",{className:"text-slate-300 text-sm font-semibold",children:"Rechercher un membre"}),(0,le.jsxs)("div",{className:"flex gap-2",children:[(0,le.jsx)("input",{value:ms,onChange:e=>ps(e.target.value),onKeyDown:e=>"Enter"===e.key&&Mi(),placeholder:"Email ou nom du membre...","data-testid":"credits-search-input",className:"flex-1 bg-slate-800 border border-white/8 rounded-xl px-4 py-2.5 text-white text-sm placeholder-slate-600 focus:outline-none focus:border-amber-500/40 transition-colors"}),(0,le.jsxs)("button",{onClick:Mi,disabled:Cs,"data-testid":"credits-search-btn",className:"px-5 py-2.5 rounded-xl bg-amber-500/15 border border-amber-500/25 text-amber-400 hover:bg-amber-500/25 text-sm font-bold transition-all disabled:opacity-50 flex items-center gap-2",children:[Cs?(0,le.jsx)("span",{className:"w-4 h-4 border-2 border-amber-400/30 border-t-amber-400 rounded-full animate-spin"}):(0,le.jsx)(U.A,{size:14}),"Chercher"]})]})]}),gs&&ys&&(0,le.jsxs)(le.Fragment,{children:[(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl p-5 space-y-4",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-white font-bold",children:gs.name||gs.email}),(0,le.jsxs)("p",{className:"text-slate-500 text-xs",children:[gs.email," \xb7 Plan : ",(0,le.jsx)("span",{className:"text-teal-400 font-semibold",children:gs.plan||"Aucun"})]})]}),(0,le.jsx)("button",{onClick:Vi,disabled:Ps,"data-testid":"reset-monthly-credits-btn",className:"px-4 py-2 rounded-xl bg-blue-500/15 border border-blue-500/25 text-blue-400 hover:bg-blue-500/25 text-xs font-bold transition-all disabled:opacity-50",children:"Remettre cr\xe9dits mensuels"})]}),(0,le.jsxs)("div",{className:"grid grid-cols-3 gap-3",children:[(0,le.jsxs)("div",{className:"bg-slate-800/60 rounded-xl p-3 text-center",children:[(0,le.jsx)("p",{className:"text-slate-400 text-xs mb-1",children:"Total disponible"}),(0,le.jsx)("p",{className:"text-white font-black text-xl","data-testid":"credits-total",children:(ys.credits_permanent||0)+(ys.credits_monthly||0)})]}),(0,le.jsxs)("div",{className:"bg-slate-800/60 rounded-xl p-3 text-center",children:[(0,le.jsx)("p",{className:"text-slate-400 text-xs mb-1",children:"Permanents"}),(0,le.jsx)("p",{className:"text-emerald-400 font-black text-xl","data-testid":"credits-permanent",children:ys.credits_permanent||0})]}),(0,le.jsxs)("div",{className:"bg-slate-800/60 rounded-xl p-3 text-center",children:[(0,le.jsx)("p",{className:"text-slate-400 text-xs mb-1",children:"Mensuels"}),(0,le.jsx)("p",{className:"text-blue-400 font-black text-xl","data-testid":"credits-monthly",children:ys.credits_monthly||0})]})]}),(0,le.jsxs)("div",{className:"border-t border-white/5 pt-4 space-y-3",children:[(0,le.jsx)("p",{className:"text-slate-300 text-sm font-semibold",children:"Ajuster les cr\xe9dits"}),(0,le.jsxs)("div",{className:"flex gap-2 flex-wrap",children:[(0,le.jsx)("input",{type:"number",value:Fs.amount,onChange:e=>Ds(t=>(0,a.A)((0,a.A)({},t),{},{amount:e.target.value})),placeholder:"Ex: 50 ou -20","data-testid":"credits-amount-input",className:"w-32 bg-slate-800 border border-white/8 rounded-xl px-4 py-2 text-white text-sm placeholder-slate-600 focus:outline-none focus:border-amber-500/40 transition-colors"}),(0,le.jsxs)("select",{value:Fs.permanent?"permanent":"monthly",onChange:e=>Ds(t=>(0,a.A)((0,a.A)({},t),{},{permanent:"permanent"===e.target.value})),"data-testid":"credits-type-select",className:"bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm focus:outline-none focus:border-amber-500/40 transition-colors",children:[(0,le.jsx)("option",{value:"permanent",children:"Permanents"}),(0,le.jsx)("option",{value:"monthly",children:"Mensuels"})]}),(0,le.jsx)("input",{value:Fs.reason,onChange:e=>Ds(t=>(0,a.A)((0,a.A)({},t),{},{reason:e.target.value})),placeholder:"Raison (optionnel)","data-testid":"credits-reason-input",className:"flex-1 min-w-[150px] bg-slate-800 border border-white/8 rounded-xl px-4 py-2 text-white text-sm placeholder-slate-600 focus:outline-none focus:border-amber-500/40 transition-colors"}),(0,le.jsx)("button",{onClick:Oi,disabled:Ps||!Fs.amount,"data-testid":"credits-apply-btn",className:"px-5 py-2 rounded-xl bg-amber-500/15 border border-amber-500/25 text-amber-400 hover:bg-amber-500/25 text-sm font-bold transition-all disabled:opacity-50",children:Ps?"...":"Appliquer"})]}),(0,le.jsx)("p",{className:"text-slate-600 text-xs",children:"Valeur positive = ajouter \xb7 Valeur n\xe9gative = retirer \xb7 Ex: -50 retire 50 cr\xe9dits"})]}),(0,le.jsxs)("div",{className:"border-t border-white/5 pt-4 space-y-3",children:[(0,le.jsx)("p",{className:"text-slate-300 text-sm font-semibold",children:"Ajuster les Quotas V2 (Photo IA, etc.)"}),(0,le.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-3 mb-3",children:Object.values(ys.v2_quotas||{}).map(e=>(0,le.jsxs)("div",{className:"bg-slate-800/40 rounded-xl p-3 border border-white/5",children:[(0,le.jsx)("p",{className:"text-slate-400 text-[10px] uppercase mb-1 truncate",title:e.quota_key,children:e.quota_key.split(".")[1]}),(0,le.jsxs)("p",{className:"text-white text-sm font-bold",children:[e.remaining," ",(0,le.jsxs)("span",{className:"text-slate-500 text-xs font-normal",children:["/ ",-1===e.limit?"\u221e":e.limit]})]})]},e.quota_key))}),(0,le.jsxs)("div",{className:"flex gap-2 flex-wrap",children:[(0,le.jsxs)("select",{value:Bs.quota_key,onChange:e=>Ws(t=>(0,a.A)((0,a.A)({},t),{},{quota_key:e.target.value})),className:"bg-slate-800 border border-white/8 rounded-xl px-3 py-2 text-white text-sm focus:outline-none focus:border-emerald-500/40 transition-colors",children:[(0,le.jsx)("option",{value:"tools.photo_ai_per_month",children:"Photo IA"}),(0,le.jsx)("option",{value:"tools.ad_generator_per_month",children:"G\xe9n\xe9rateur d'annonce"}),(0,le.jsx)("option",{value:"tools.estimator_per_month",children:"Estimateur IA"}),(0,le.jsx)("option",{value:"tools.article_analysis_per_month",children:"Analyse Vinted"}),(0,le.jsx)("option",{value:"tools.reselltrack_per_month",children:"VINTYTRACK"}),(0,le.jsx)("option",{value:"tools.market_study_per_month",children:"\xc9tude de niche"})]}),(0,le.jsx)("input",{type:"number",value:Bs.delta,onChange:e=>Ws(t=>(0,a.A)((0,a.A)({},t),{},{delta:e.target.value})),placeholder:"Ex: -10 (ajoute 10 au quota restant)",className:"w-64 bg-slate-800 border border-white/8 rounded-xl px-4 py-2 text-white text-sm placeholder-slate-600 focus:outline-none focus:border-emerald-500/40 transition-colors"}),(0,le.jsx)("button",{onClick:Bi,disabled:Ks||!Bs.delta,className:"px-5 py-2 rounded-xl bg-emerald-500/15 border border-emerald-500/25 text-emerald-400 hover:bg-emerald-500/25 text-sm font-bold transition-all disabled:opacity-50",children:Ks?"...":"Ajuster"})]}),(0,le.jsxs)("p",{className:"text-slate-600 text-xs text-amber-500/80",children:["IMPORTANT: Le syst\xe8me V2 compte l'USAG
1E. Pour DONNER +10 requ\xeates, tapez ",(0,le.jsx)("b",{children:"-10"})," (r\xe9duit l'usage). Pour RETIRER 10 requ\xeates, tapez ",(0,le.jsx)("b",{children:"10"}),"."]})]})]}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl overflow-hidden",children:[(0,le.jsx)("div",{className:"px-5 py-4 border-b border-white/5",children:(0,le.jsx)("p",{className:"text-white font-bold text-sm",children:"Historique des cr\xe9dits"})}),ys.history&&0!==ys.history.length?(0,le.jsx)("div",{className:"divide-y divide-white/5",children:ys.history.slice(0,30).map((e,t)=>{var s,a;return(0,le.jsxs)("div",{className:"px-5 py-3 flex items-center justify-between gap-3","data-testid":"credit-log-".concat(t),children:[(0,le.jsxs)("div",{children:[(0,le.jsx)("p",{className:"text-white text-sm",children:e.reason||e.action||"Ajustement"}),(0,le.jsx)("p",{className:"text-slate-500 text-xs",children:e.created_at?new Date(e.created_at).toLocaleDateString("fr-FR",{day:"2-digit",month:"short",hour:"2-digit",minute:"2-digit"}):"\u2014"})]}),(0,le.jsxs)("span",{className:"font-black text-base ".concat((e.amount||e.delta||0)>=0?"text-emerald-400":"text-red-400"),children:[(e.amount||e.delta||0)>=0?"+":"",null!==(s=null!==(a=e.amount)&&void 0!==a?a:e.delta)&&void 0!==s?s:"?"]})]},t)})}):(0,le.jsx)("div",{className:"text-center py-10 text-slate-500 text-sm",children:"Aucune entr\xe9e dans l'historique."})]})]})]}),audit_hugo:()=>(0,le.jsx)(wa,{headers:c,msg:Al}),coaching_apps:()=>(0,le.jsx)(Aa,{headers:c,msg:Al}),repair:()=>(0,le.jsx)(As,{headers:c}),feature_flags:()=>(0,le.jsx)(zs,{headers:c}),photo_ia_admin:function(){return(0,le.jsx)(Wt,{headers:c,msg:Al})},parrainage:function(){return(0,le.jsx)(Yt,{headers:c,msg:Al})},discord_admin:()=>(0,le.jsx)(Xt,{headers:c,msg:Al}),subscriptions:function(){return(0,le.jsx)(ts,{headers:c})},stripe_health:()=>(0,le.jsx)(ks,{headers:c}),todo:()=>(0,le.jsx)(Us,{}),formulaire:()=>(0,le.jsx)(Gs,{headers:c}),deep_scans:()=>(0,le.jsx)(Qs,{headers:c})};return(0,le.jsxs)("div",{className:"min-h-screen bg-slate-950",style:{fontFamily:"Inter, sans-serif"},children:[(0,le.jsx)(Pi,{}),(0,le.jsxs)("div",{className:"md:ml-64",children:[(0,le.jsxs)("header",{className:"flex items-center gap-3 px-4 py-4 border-b border-white/5 bg-slate-950/80 backdrop-blur sticky top-0 z-30",children:[(0,le.jsx)("button",{className:"md:hidden text-slate-400 hover:text-white",onClick:()=>R(!0),children:(0,le.jsx)(K.A,{size:20})}),(0,le.jsx)("span",{className:"text-white font-semibold text-sm ml-1",children:null===(e=ha.find(e=>e.id&&e.id===w))||void 0===e?void 0:e.label}),Ge&&(0,le.jsxs)("div",{className:"ml-auto text-xs font-semibold px-3 py-1.5 rounded-full flex items-center gap-1.5 ".concat("error"===Xe?"bg-red-600/15 text-red-400 border border-red-500/20":"bg-green-600/15 text-green-400 border border-green-500/20"),children:[(0,le.jsx)(C.A,{size:11}),Ge]})]}),(0,le.jsx)("main",{className:"p-4 md:p-6 max-w-6xl",children:(xn[w]||(()=>(0,le.jsxs)("div",{className:"space-y-6",children:[(0,le.jsx)("h1",{className:"text-2xl font-bold text-white",style:{fontFamily:"Outfit, sans-serif"},children:"Vue d'ensemble"}),(0,le.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-3 xl:grid-cols-5 gap-3",children:[{label:"MRR",value:"".concat(((null===re||void 0===re?void 0:re.mrr)||0).toFixed(0),"\u20ac"),icon:m.A,color:"text-emerald-400",bg:"bg-emerald-600/10"},{label:"Nouveaux membres (aujourd'hui)",value:(null===re||void 0===re?void 0:re.new_members_today)||0,icon:O.A,color:"text-teal-400",bg:"bg-teal-600/10"},{label:"Membres",value:(null===re||void 0===re?void 0:re.total_members)||0,icon:g.A,color:"text-blue-400",bg:"bg-blue-600/10"},{label:"Ventes",value:(null===re||void 0===re?void 0:re.total_sales)||0,icon:N.A,color:"text-green-400",bg:"bg-green-600/10"},{label:"Revenu total",value:"".concat(((null===re||void 0===re?void 0:re.total_revenue)||0).toFixed(0),"\u20ac"),icon:f.A,color:"text-emerald-400",bg:"bg-emerald-600/10"},{label:"Appels (demandes)",value:_e.length||0,icon:V.A,color:"text-blue-400",bg:"bg-blue-600/10"},{label:"En attente",value:_e.filter(e=>"pending"===e.status).length||0,icon:B.A,color:"text-indigo-400",bg:"bg-indigo-600/10"}].map((e,t)=>(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl p-4",children:[(0,le.jsx)("div",{className:"w-8 h-8 rounded-xl ".concat(e.bg," flex items-center justify-center mb-3"),children:(0,le.jsx)(e.icon,{size:15,className:e.color})}),(0,le.jsx)("p",{className:"text-xl font-bold text-white",style:{fontFamily:"Outfit, sans-serif"},children:e.value}),(0,le.jsx)("p",{className:"text-slate-500 text-xs mt-0.5",children:e.label})]},t))}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl p-5",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,le.jsx)("h2",{className:"text-white font-bold",style:{fontFamily:"Outfit, sans-serif"},children:"Revenus"}),(0,le.jsx)("div",{className:"flex gap-1",children:["7d","30d","90d"].map(e=>(0,le.jsx)("button",{onClick:()=>be(e),className:"px-3 py-1 rounded-lg text-xs font-semibold transition-all ".concat(he===e?"bg-blue-600/20 text-blue-400 border border-blue-500/20":"text-slate-500 hover:text-white"),children:"7d"===e?"7 jours":"30d"===e?"30 jours":"9
10 jours"},e))})]}),(0,le.jsx)(J.u,{width:"100%",height:200,children:(0,le.jsxs)(Q.Q,{data:ce,children:[(0,le.jsx)("defs",{children:(0,le.jsxs)("linearGradient",{id:"revGrad",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,le.jsx)("stop",{offset:"5%",stopColor:"#f59e0b",stopOpacity:.3}),(0,le.jsx)("stop",{offset:"95%",stopColor:"#f59e0b",stopOpacity:0})]})}),(0,le.jsx)(Z.d,{strokeDasharray:"3 3",stroke:"#ffffff08"}),(0,le.jsx)(X.W,{dataKey:"date",tick:{fill:"#64748b",fontSize:10},tickLine:!1,axisLine:!1}),(0,le.jsx)($.h,{tick:{fill:"#64748b",fontSize:10},tickLine:!1,axisLine:!1}),(0,le.jsx)(ee.m,{contentStyle:{background:"#0f172a",border:"1px solid #1e293b",borderRadius:"12px",color:"#fff",fontSize:"12px"},formatter:e=>"".concat(e,"\u20ac")}),(0,le.jsx)(te.Gk,{type:"monotone",dataKey:"revenus",stroke:"#f59e0b",strokeWidth:2,fill:"url(#revGrad)",name:"Revenus"})]})})]}),(0,le.jsxs)("div",{className:"bg-slate-900 border border-white/5 rounded-2xl p-5",children:[(0,le.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,le.jsx)("h2",{className:"text-white font-bold",style:{fontFamily:"Outfit, sans-serif"},children:"Demandes d'appels en attente"}),(0,le.jsxs)("button",{onClick:()=>k("bookings"),className:"text-blue-400 text-sm font-semibold hover:text-blue-300 transition-colors",children:[_e.filter(e=>"pending"===e.status).length," \u2192"]})]}),_e.filter(e=>"pending"===e.status).slice(0,5).map(e=>(0,le.jsxs)("div",{className:"flex items-center gap-3 py-2.5 border-b border-white/5 last:border-0",children:[(0,le.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,le.jsx)("p",{className:"text-white text-sm font-medium truncate",children:e.user_email}),(0,le.jsx)("p",{className:"text-slate-400 text-xs truncate",children:e.availabilities})]}),(0,le.jsx)("button",{onClick:()=>{k("bookings"),Ti(e.id),Li({status:"accepted",meeting_link:"",meeting_time:"",admin_note:""})},className:"p-1.5 rounded-lg bg-blue-600/15 border border-blue-500/20 text-blue-400 hover:bg-blue-600/25 transition-all",children:(0,le.jsx)(I.A,{size:12})})]},e.id)),0===_e.filter(e=>"pending"===e.status).length&&(0,le.jsx)("p",{className:"text-slate-500 text-sm",children:"Aucune demande en attente"})]})]})))()})]})]})}}}]); 2//# sourceMappingURL=440.711ec8ab.chunk.js.map
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.