1import{r as n,j as e}from"./vendor-react-NDqzZ9RJ.js";import{s as o,a as x}from"./index-CoM1tmaP.js";import{f as E,a as G}from"./format-CgOKNFZ9.js";import{l as N}from"./audit-MkwMTcPo.js";import{a as Ne}from"./tarot-CsO9odGI.js";import{R as ue,B as fe,C as je,X as ye,Y as ve,T as he,a as _e,P as we,b as Ce,c as ze}from"./vendor-charts-BLT5JiYK.js";import"./vendor-pdf-DcnCMWs_.js";import"./vendor-tiptap-BiZ4HMKr.js";const pe=["#7C3AED","#D4A017","#10B981","#EF4444","#F59E0B"];function $e(){const[O,se]=n.useState([]),[D,P]=n.useState({}),[w,ie]=n.useState({today:0,total:0,public:0,avg7:0}),[h,B]=n.useState(""),[b,ne]=n.useState("all"),[y,K]=n.useState(!1),[T,I]=n.useState(!1),[q,re]=n.useState(0),[p,R]=n.useState(0),[c,C]=n.useState(null),[$,H]=n.useState(""),[V,k]=n.useState(""),[Y,W]=n.useState(""),[S,J]=n.useState(!1),[de,le]=n.useState([]),[Q,Z]=n.useState([]),[t,i]=n.useState([]),[s,m]=n.useState("coffee"),r=async()=>{const a=new Date;a.setHours(0,0,0,0);const d=new Date;d.setDate(d.getDate()-7);const[{count:l},{count:g},{count:f},{count:v}]=await Promise.all([o.from("coffee_fortunes").select("id",{count:"exact",head:!0}).gte("created_at",a.toISOString()),o.from("coffee_fortunes").select("id",{count:"exact",head:!0}),o.from("coffee_fortunes").select("id",{count:"exact",head:!0}).eq("is_public",!0),o.from("coffee_fortunes").select("id",{count:"exact",head:!0}).gte("created_at",d.toISOString())]);ie({today:l??0,total:g??0,public:f??0,avg7:Math.round((v??0)/7)});const _=50,ae=p*_,be=ae+_-1;let A=o.from("coffee_fortunes").select("*").order("created_at",{ascending:!1}).range(ae,be);b==="public"&&(A=A.eq("is_public",!0)),b==="private"&&(A=A.eq("is_public",!1)),y&&(A=A.or("ai_reading.is.null,ai_reading.eq."));const{data:ge}=await A;se(ge??[]);const{count:ke}=await o.from("coffee_fortunes").select("id",{count:"exact",head:!0}).or("ai_reading.is.null,ai_reading.eq.");re(ke??0);const xe=Array.from(new Set((ge??[]).map(u=>u.user_id).filter(Boolean)));if(xe.length>0){const{data:u}=await o.rpc("admin_get_users_basic",{_ids:xe}),j={};(u??[]).forEach(X=>{j[X.id]=X}),P(j)}else P({});const oe=new Date;oe.setDate(oe.getDate()-30);const{data:Se}=await o.from("coffee_fortunes").select("created_at, mood").gte("created_at",oe.toISOString()),ce={},me={},te={};for(let u=0;u<24;u++)ce[u]=0;for(let u=29;u>=0;u--){const j=new Date;j.setDate(j.getDate()-u),te[j.toISOString().slice(5,10)]=0}(Se??[]).forEach(u=>{const j=new Date(u.created_at);ce[j.getHours()]++,me[u.mood]=(me[u.mood]??0)+1;const X=j.toISOString().slice(5,10);X in te&&te[X]++}),le(Object.entries(ce).map(([u,j])=>({h:`${u}:00`,c:j}))),Z(Object.entries(me).map(([u,j])=>({name:u,value:j}))),i(Object.entries(te).map(([u,j])=>({d:u,c:j})))};n.useEffect(()=>{R(0)},[b,y]),n.useEffect(()=>{r()},[b,y,p]);const z=O.filter(a=>{var g,f;if(y&&(((f=(g=a.ai_reading)==null?void 0:g.trim())==null?void 0:f.length)??0)>0)return!1;if(!h)return!0;const d=h.toLowerCase(),l=D[a.user_id];return(a.ai_reading??"").toLowerCase().includes(d)||((l==null?void 0:l.email)??"").toLowerCase().includes(d)||((l==null?void 0:l.full_name)??"").toLowerCase().includes(d)||((l==null?void 0:l.nickname)??"").toLowerCase().includes(d)}),F=async a=>{await o.from("coffee_fortunes").update({is_public:!a.is_public}).eq("id",a.id),await N(a.is_public?"fortune_hide":"fortune_publish","fortune",a.id),x.success("Güncellendi"),r()},M=async a=>{confirm("Silinsin mi?")&&(await o.from("coffee_fortunes").delete().eq("id",a.id),await N("fortune_delete","fortune",a.id),x.success("Silindi"),r())},U=async()=>{if(!c)return;const a=$.trim(),d=V.trim(),l=Y.trim(),g=`## GEÃMİŠ2${a} 3 4## ÅİMDİ 5${d} 6 7## GELECEK 8${l}`,{error:f}=await o.from("coffee_fortunes").update({past_section:a,present_section:d,future_section:l,ai_reading:g}).eq("id",c.id);if(f){x.error("Kaydedilemedi: "+f.message);return}await N("fortune_edit","fortune",c.id),x.success("Fal güncellendi, kullanıcıya yansıdı"),C(null),r()},L=async a=>{J(!0);try{const{data:d,error:l}=await o.functions.invoke("generate-coffee-fortune",{body:{fortune_id:a.id,image_url:a.image_url,mood:a.mood,language:a.language??"tr",force:!0}});if(l)throw l;if(d!=null&&d.error)throw new Error(d.error);await N("fortune_regenerate","fortune",a.id);try{await o.from("coffee_fortunes").update({ready_at:new Date().toISOString(),push_sent_at:null}).eq("id",a.id),x.success("Yeniden üretildi â kullanıcıya 'falın hazır' bildirimi gönderiliyor")}catch{x.success("Yeniden üretildi")}const{data:g}=await o.from("coffee_fortunes").select("*").eq("id",a.id).maybeSingle();g&&(C(g),H(g.past_section??""),k(g.present_section??""),W(g.future_section??"")),r()}catch(d){x.error("Yeniden üretilemedi: "+((d==null?void 0:d.message)??"bilinmiyor"))}finally{J(!1)}},ee=async()=>
8{if(!confirm("İçeriÄi boÅ olan tüm fallar yeniden üretilecek. Devam edilsin mi?"))return;I(!0);let a=0,d=0;try{const{data:l}=await o.from("coffee_fortunes").select("id, image_url, mood, language, generation_attempts").or("ai_reading.is.null,ai_reading.eq.").order("created_at",{ascending:!1}).limit(100),g=(l??[]).filter(f=>(f.generation_attempts??0)<5);if(g.length===0){x.info("Yeniden üretilecek boÅ fal bulunamadı");return}x.info(`${g.length} fal sırayla yeniden üretiliyorâ¦`);for(const f of g){try{const{data:v,error:_}=await o.functions.invoke("generate-coffee-fortune",{body:{fortune_id:f.id,image_url:f.image_url,mood:f.mood,language:f.language??"tr",force:!0}});_||v!=null&&v.error?d++:(a++,await N("fortune_regenerate","fortune",f.id))}catch{d++}await new Promise(v=>setTimeout(v,600))}x.success(`Tamamlandı: ${a} baÅarılı, ${d} hata`),r()}finally{I(!1)}};return e.jsxs("div",{className:"adm-stack",children:[e.jsxs("div",{className:"adm-tabs",children:[e.jsx("div",{className:`adm-tab ${s==="coffee"?"active":""}`,onClick:()=>m("coffee"),children:"â Kahve Falları"}),e.jsx("div",{className:`adm-tab ${s==="tarot"?"active":""}`,onClick:()=>m("tarot"),children:"ð® Tarot Falları"})]}),s==="tarot"?e.jsx(Fe,{}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"adm-grid adm-grid-4",children:[e.jsxs("div",{className:"adm-kpi",children:[e.jsx("div",{className:"adm-kpi-label",children:"Bugün"}),e.jsx("div",{className:"adm-kpi-value",children:E(w.today)})]}),e.jsxs("div",{className:"adm-kpi gold",children:[e.jsx("div",{className:"adm-kpi-label",children:"Toplam"}),e.jsx("div",{className:"adm-kpi-value",children:E(w.total)})]}),e.jsxs("div",{className:"adm-kpi success",children:[e.jsx("div",{className:"adm-kpi-label",children:"Herkese Açık"}),e.jsx("div",{className:"adm-kpi-value",children:E(w.public)})]}),e.jsxs("div",{className:"adm-kpi",children:[e.jsx("div",{className:"adm-kpi-label",children:"7 Gün Ort."}),e.jsx("div",{className:"adm-kpi-value",children:E(w.avg7)})]})]}),e.jsxs("div",{className:"adm-card",children:[e.jsxs("div",{className:"adm-row",style:{marginBottom:12},children:[e.jsx("input",{className:"adm-input",style:{maxWidth:320},placeholder:"ð Yorum, kullanıcı veya e-postada ara...",value:h,onChange:a=>B(a.target.value)}),e.jsxs("select",{className:"adm-select",style:{maxWidth:180},value:b,onChange:a=>ne(a.target.value),children:[e.jsx("option",{value:"all",children:"Tüm"}),e.jsx("option",{value:"public",children:"Herkese Açık"}),e.jsx("option",{value:"private",children:"Ãzel"})]}),e.jsxs("label",{className:"adm-row",style:{gap:6,fontSize:12,color:"var(--adm-muted)"},children:[e.jsx("input",{type:"checkbox",checked:y,onChange:a=>K(a.target.checked)}),"Sadece içeriÄi boÅ olanlar (",q,")"]}),e.jsx("button",{className:"adm-btn adm-btn-sm adm-btn-primary",disabled:T||q===0,onClick:ee,title:"İçeriÄi boÅ olan tüm falları sırayla yeniden üretir",children:T?"Ãretiliyorâ¦":`ð BoÅ Falları Yeniden Ãret (${q})`})]}),e.jsxs("table",{className:"adm-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"#"}),e.jsx("th",{children:"Görsel"}),e.jsx("th",{children:"Kullanıcı"}),e.jsx("th",{children:"Mood"}),e.jsx("th",{children:"Gönderildi"}),e.jsx("th",{children:"Cevap Gönderildi"}),e.jsx("th",{children:"Yanıt Süresi"}),e.jsx("th",{children:"â¤ï¸"}),e.jsx("th",{children:"Durum"}),e.jsx("th",{})]})}),e.jsxs("tbody",{children:[z.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:10,className:"adm-empty",children:"Fal yok â"})}),z.map((a,d)=>{const l=D[a.user_id],g=(l==null?void 0:l.nickname)||(l==null?void 0:l.full_name)||"â",v=!!(a.ai_reading&&a.ai_reading.trim().length>0)?a.last_generation_at??null:null,_=v?new Date(v).getTime()-new Date(a.created_at).getTime():null,ae=_!=null&&_>=0?_<6e4?`${Math.round(_/1e3)}sn`:_<36e5?`${Math.round(_/6e4)}dk`:`${(_/36e5).toFixed(1)}sa`:"â";return e.jsxs("tr",{children:[e.jsx("td",{children:d+1}),e.jsx("td",{children:a.image_url?e.jsx("img",{src:a.image_url,alt:"",style:{width:50,height:50,borderRadius:6,objectFit:"cover"}}):"â"}),e.jsxs("td",{children:[e.jsx("div",{style:{fontWeight:600,fontSize:13},children:g}),e.jsx("div",{style:{fontSize:11,color:"var(--adm-muted)"},children:(l==null?void 0:l.email)??"â"}
8),e.jsxs("div",{style:{fontSize:10,color:"var(--adm-muted)",fontFamily:"monospace"},children:[a.user_id.slice(0,8),"â¦"]})]}),e.jsx("td",{children:a.mood}),e.jsx("td",{children:G(a.created_at)}),e.jsx("td",{children:v?G(v):e.jsx("span",{style:{color:"var(--adm-muted)"},children:"Bekliyor"})}),e.jsx("td",{style:{fontVariantNumeric:"tabular-nums",fontSize:12},children:ae}),e.jsx("td",{children:a.likes_count}),e.jsx("td",{children:a.is_public?e.jsx("span",{className:"adm-badge success",children:"Açık"}):e.jsx("span",{className:"adm-badge muted",children:"Ãzel"})}),e.jsxs("td",{children:[e.jsx("button",{className:"adm-btn adm-btn-sm adm-btn-ghost",onClick:()=>{C(a),H(a.past_section??""),k(a.present_section??""),W(a.future_section??"")},children:"ðï¸"})," ",(!a.ai_reading||a.ai_reading.trim().length===0)&&e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"adm-btn adm-btn-sm adm-btn-ghost",title:"AI ile yeniden üret",disabled:S,onClick:()=>L(a),children:S?"â³":"ð"})," "]}),e.jsx("button",{className:"adm-btn adm-btn-sm adm-btn-ghost",onClick:()=>F(a),children:a.is_public?"ð":"ð"})," ",e.jsx("button",{className:"adm-btn adm-btn-sm adm-btn-ghost",onClick:()=>M(a),children:"ðï¸"})]})]},a.id)})]})]})]}),e.jsxs("div",{className:"adm-row",style:{justifyContent:"space-between",padding:"8px 0"},children:[e.jsxs("span",{style:{fontSize:12,color:"var(--adm-muted)"},children:["Sayfa ",p+1," · Gösterilen ",O.length,y&&` · BoÅ toplam ${q}`]}),e.jsxs("div",{className:"adm-row",style:{gap:8},children:[e.jsx("button",{className:"adm-btn adm-btn-ghost adm-btn-sm",disabled:p===0,onClick:()=>R(a=>Math.max(0,a-1)),children:"â Ãnceki"}),e.jsx("button",{className:"adm-btn adm-btn-ghost adm-btn-sm",disabled:O.length<50,onClick:()=>R(a=>a+1),children:"Sonraki â"})]})]}),e.jsxs("div",{className:"adm-grid adm-grid-2",children:[e.jsxs("div",{className:"adm-card",children:[e.jsx("div",{className:"adm-card-title",children:"Günlük Fal (30 gün)"}),e.jsx("div",{style:{height:200},children:e.jsx(ue,{children:e.jsxs(fe,{data:t,children:[e.jsx(je,{stroke:"#1F1F35",strokeDasharray:"3 3"}),e.jsx(ye,{dataKey:"d",tick:{fill:"#8B8BA0",fontSize:10}}),e.jsx(ve,{tick:{fill:"#8B8BA0",fontSize:10}}),e.jsx(he,{contentStyle:{background:"#13131F",border:"1px solid #1F1F35",borderRadius:8}}),e.jsx(_e,{dataKey:"c",fill:"#7C3AED"})]})})})]}),e.jsxs("div",{className:"adm-card",children:[e.jsx("div",{className:"adm-card-title",children:"Ruh Hali DaÄılımı"}),e.jsx("div",{style:{height:200},children:e.jsx(ue,{children:e.jsxs(we,{children:[e.jsx(Ce,{data:Q,dataKey:"value",nameKey:"name",outerRadius:70,label:!0,children:Q.map((a,d)=>e.jsx(ze,{fill:pe[d%pe.length]},d))}),e.jsx(he,{contentStyle:{background:"#13131F",border:"1px solid #1F1F35",borderRadius:8}})]})})})]})]}),e.jsxs("div",{className:"adm-card",children:[e.jsx("div",{className:"adm-card-title",children:"Saatlik YoÄunluk"}),e.jsx("div",{style:{height:200},children:e.jsx(ue,{children:e.jsxs(fe,{data:de,children:[e.jsx(je,{stroke:"#1F1F35",strokeDasharray:"3 3"}),e.jsx(ye,{dataKey:"h",tick:{fill:"#8B8BA0",fontSize:10}}),e.jsx(ve,{tick:{fill:"#8B8BA0",fontSize:10}}),e.jsx(he,{contentStyle:{background:"#13131F",border:"1px solid #1F1F35",borderRadius:8}}),e.jsx(_e,{dataKey:"c",fill:"#D4A017"})]})})})]}),c&&e.jsx("div",{className:"adm-overlay",onClick:()=>C(null),children:e.jsxs("div",{className:"adm-modal",onClick:a=>a.stopPropagation(),style:{maxWidth:720},children:[e.jsx("div",{className:"adm-modal-title",children:"Fal İncele"}),e.jsxs("div",{className:"adm-stack",children:[(!c.ai_reading||c.ai_reading.trim().length===0)&&e.jsxs("div",{className:"adm-card",style:{padding:12,background:"rgba(239,68,68,0.08)",border:"1px solid rgba(239,68,68,0.4)"},children:[e.jsx("div",{style:{fontWeight:600,color:"#EF4444",marginBottom:4},children:"â ï¸ Bu falın AI içeriÄi boÅ"}),e.jsx("div",{style:{fontSize:12,color:"var(--adm-muted)"},children:c.generation_error?e.jsxs(e.Fragment,{children:["Son hata: ",e.jsx("code",{children:c.generation_error})]}):"Ãretim sırasında bir sorun oluÅmuÅ olabilir."}),e.jsxs("div",{style:{fontSize:11,color:"var(--adm-muted)",marginTop:4},children:["Deneme sayısı: ",c.generation_attempts??0,c.last_generation_at?` · Son deneme: ${G(c.last_generation_at)}`:""]}),e.jsx("div",{style:{marginTop:8},children:e.jsx("button",{className:"adm-btn adm-btn-primary adm-btn-sm",disabled:S,onClick:()=>L(c),children:S?"Ãretiliyorâ¦":"ð Yeniden Ãret"})})]}),(()=>{const a=D[c.user_id];return e.jsxs("div",{className:"adm-card",style:{padding:12,background:"var(--adm-bg)"},children:[e.jsx("div",{style:{fontSize:11,color:"var(--adm-muted)",marginBottom:4},children:"Gönderen Kullanıcı"}),e.jsx("div",{style:{fontWeight:600},children:(a==null?void 0:a.nickname)||(a==null?void 0:a.full_name)||"â"}),e.jsx("div",{style:{fontSize:12,color:"var(--adm-muted)"},children:(a==null?void 0:a.email)??"E-posta yok"}),e.jsx("div",{style:{fontSize:11,color:"var(--adm-muted)",fontFamily:"monospace",marginTop:4},children:c.user_id}),e.jsxs("div",{style:{fontSize:11,color:"var(--adm-muted)",marginTop:4},children:["Tarih: ",G(c.created_at)," · Mood: ",c.mood]})]})})(),c.image_url&&e.jsx("div",{style:{textAlign:"center"},children:e.jsx("img",{src:c.image_url,alt:"",style:{maxWidth:180,maxHeight:180,borderRadius:8,objectFit:"cover"}})}),e.jsxs("div",{children:[e.jsx("div",{style:{fontSize:12,fontWeight:600,marginBottom:4,color:"var(--adm-muted)"},children:"ð°ï¸ GEÃMİÅ"}),e.jsx("textarea",{className:"adm-textarea",style:{minHeight:110},value:$,onChange:a=>H(a.target.value)})]}),e.jsxs("div",{children:[e.jsx("div",{style:{fontSize:12,fontWeight:600,marginBottom:4,color:"var(--adm-muted)"},children:"⨠ÅİMDİ"}),e.jsx("textarea",{className:"adm-textarea",style:{minHeight:110},value:V,onChange:a=>k(a.target.value)})]}),e.jsxs("div",{children:[e.jsx("div",{style:{fontSize:12,fontWeight:600,marginBottom:4,color:"var(--adm-muted)"},children:"ð® GELECEK"}),e.jsx("textarea",{className:"adm-textarea",style:{minHeight:110},value:Y,onChange:a=>W(a.target.value)})]}),e.jsxs("div",{className:"adm-row",style:{justifyContent:"flex-end"},children:[e.jsx("button",{className:"adm-btn adm-btn-ghost",onClick:()=>C(null),children:"Kapat"}),e.jsx("button",{className:"adm-btn adm-btn-ghost",disabled:S,onClick:()=>L(c),children:S?"Ãretiliyorâ¦":"ð Yeniden Ãret"}),e.jsx("button",{className:"adm-btn adm-btn-primary",onClick:U,children:"Kaydet"})]})]})]})})]})]})}function Fe(){const[O,se]=n.useState([]),[D,P]=n.useState({}),[w,ie]=n.useState(""),[h,B]=n.useState(null),[b,ne]=n.useState({today:0,total:0,week:0}),[y,K]=n.useState(""),[T,I]=n.useState(!1),[q,re]=n.useState(!1),[p,R]=n.useState(!1),[c,C]=n.useState(!1),[$,H]=n.useState(0),V=async()=>{const{count:t}=await o.from("tarot_readings").select("id",{count:"exact",head:!0}).or("ai_reading.is.null,ai_reading.eq.");H(t??0)},k=async()=>{const t=new Date;t.setHours(0,0,0,0);const i=new Date;i.setDate(i.getDate()-7);const[{count:s},{count:m},{count:r}]=await Promise.all([o.from("tarot_readings").select("id",{count:"exact",head:!0}).gte("created_at",t.toISOString()),o.from("tarot_readings").select("id",{count:"exact",head:!0}),o.from("tarot_readings").select("id",{count:"exact",head:!0}).gte("created_at",i.toISOString())]);ne({today:s??0,total:m??0,week:r??0});const{data:z}=await o.from("tarot_readings").select("*").order("created_at",{ascending:!1}).limit(50),F=z??[];se(F);const M=Array.from(new Set(F.map(U=>
8U.user_id).filter(Boolean)));if(M.length){const{data:U}=await o.rpc("admin_get_users_basic",{_ids:M}),L={};(U??[]).forEach(ee=>{L[ee.id]=ee}),P(L)}else P({})};n.useEffect(()=>{k(),V()},[]);const Y=O.filter(t=>{var m,r;if(q&&(((r=(m=t.ai_reading)==null?void 0:m.trim())==null?void 0:r.length)??0)>0)return!1;if(!w)return!0;const i=w.toLowerCase(),s=D[t.user_id];return(t.question??"").toLowerCase().includes(i)||(t.ai_reading??"").toLowerCase().includes(i)||((s==null?void 0:s.email)??"").toLowerCase().includes(i)||((s==null?void 0:s.full_name)??"").toLowerCase().includes(i)||((s==null?void 0:s.nickname)??"").toLowerCase().includes(i)}),W=t=>[{id:t.card_1_id,reversed:t.card_1_reversed},{id:t.card_2_id,reversed:t.card_2_reversed},{id:t.card_3_id,reversed:t.card_3_reversed}].map(({id:i,reversed:s})=>{const m=Ne(i);return{name:m.name,symbol:m.symbol,reversed:s,meaning:s?m.reversed:m.upright}}),S=t=>W(t).map(i=>`${i.symbol} ${i.name}${i.reversed?" (ters)":""}`).join(" · "),J=async t=>{confirm("Silinsin mi?")&&(await o.from("tarot_readings").delete().eq("id",t.id),await N("tarot_delete","tarot_reading",t.id),x.success("Silindi"),k())},de=async()=>{if(!confirm("İçeriÄi boÅ olan tüm tarot açılımları yeniden üretilecek. Devam edilsin mi?"))return;C(!0);let t=0,i=0;try{const{data:s}=await o.from("tarot_readings").select("id, question, language, generation_attempts, card_1_id, card_2_id, card_3_id, card_1_reversed, card_2_reversed, card_3_reversed").or("ai_reading.is.null,ai_reading.eq.").order("created_at",{ascending:!1}).limit(100),m=(s??[]).filter(r=>(r.generation_attempts??0)<5&&!!r.question);if(m.length===0){x.info("Yeniden üretilecek boÅ tarot yok");return}x.info(`${m.length} tarot sırayla yeniden üretiliyorâ¦`);for(const r of m){try{const z=[{id:r.card_1_id,reversed:!!r.card_1_reversed},{id:r.card_2_id,reversed:!!r.card_2_reversed},{id:r.card_3_id,reversed:!!r.card_3_reversed}],{data:F,error:M}=await o.functions.invoke("generate-tarot-reading",{body:{reading_id:r.id,question:r.question,cards:z,language:r.language??"tr",force:!0}});M||F!=null&&F.error?i++:(t++,await N("tarot_regenerate","tarot_reading",r.id))}catch{i++}await new Promise(z=>setTimeout(z,600))}x.success(`Tamamlandı: ${t} baÅarılı, ${i} hata`),k(),V()}finally{C(!1)}},le=t=>{B(t),K(t.ai_reading??"")},Q=async()=>{if(!h)return;I(!0);const{error:t}=await o.from("tarot_readings").update({ai_reading:y}).eq("id",h.id);if(I(!1),t){x.error("Kaydedilemedi: "+t.message);return}await N("tarot_edit","tarot_reading",h.id),x.success("Yorum güncellendi, kullanıcıya yansıdı"),B(null),k()},Z=async t=>{R(!0);try{const i=[{id:t.card_1_id,reversed:!!t.card_1_reversed},{id:t.card_2_id,reversed:!!t.card_2_reversed},{id:t.card_3_id,reversed:!!t.card_3_reversed}],{data:s,error:m}=await o.functions.invoke("generate-tarot-reading",{body:{reading_id:t.id,question:t.question,cards:i,language:"tr",force:!0}});if(m)throw m;if(s!=null&&s.error)throw new Error(s.error);await N("tarot_regenerate","tarot_reading",t.id),x.success("Tarot yorumu yeniden üretildi");const{data:r}=await o.from("tarot_readings").select("*").eq("id",t.id).maybeSingle();r&&(B(r),K(r.ai_reading??"")),k()}catch(i){x.error("Yeniden üretilemedi: "+((i==null?void 0:i.message)??"bilinmiyor"))}finally{R(!1)}};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"adm-grid adm-grid-4",children:[e.jsxs("div",{className:"adm-kpi",children:[e.jsx("div",{className:"adm-kpi-label",children:"Bugün"}),e.jsx("div",{className:"adm-kpi-value",children:E(b.today)})]}),e.jsxs("div",{className:"adm-kpi gold",children:[e.jsx("div",{className:"adm-kpi-label",children:"Toplam"}),e.jsx("div",{className:"adm-kpi-value",children:E(b.total)})]}),e.jsxs("div",{className:"adm-kpi success",children:[e.jsx("div",{className:"adm-kpi-label",children:"Son 7 Gün"}),e.jsx("div",{className:"adm-kpi-value",children:E(b.week)})]}),e.jsxs("div",{className:"adm-kpi",children:[e.jsx("div",{className:"adm-kpi-label",children:"Gösterilen"}),e.jsx("div",{className:"adm-kpi-value",children:E(Y.length)})]})]}),e.jsxs("div",{className:"adm-card",children:[e.jsxs("div",{className:"adm-row",style:{marginBottom:12},children:[e.jsx("input",{className:"adm-input",style:{maxWidth:340},placeholder:"ð Soru, yorum, kullanıcı veya e-postada ara...",value:w,onChange:t=>ie(t.target.value)}),e.jsxs("label",{className:"adm-row",style:{gap:6,fontSize:12,color:"var(--adm-muted)"}
8,children:[e.jsx("input",{type:"checkbox",checked:q,onChange:t=>re(t.target.checked)}),"Sadece yorumu boÅ olanlar (",$,")"]}),e.jsx("button",{className:"adm-btn adm-btn-sm adm-btn-primary",disabled:c||$===0,onClick:de,title:"Yorumu boÅ olan tüm tarot açılımlarını sırayla yeniden üretir",children:c?"Ãretiliyorâ¦":`ð BoÅ Tarotları Yeniden Ãret (${$})`})]}),e.jsxs("table",{className:"adm-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"#"}),e.jsx("th",{children:"Kullanıcı"}),e.jsx("th",{children:"Soru"}),e.jsx("th",{children:"Kartlar"}),e.jsx("th",{children:"Tarih"}),e.jsx("th",{children:"Durum"}),e.jsx("th",{})]})}),e.jsxs("tbody",{children:[Y.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:7,className:"adm-empty",children:"Tarot falı yok ð®"})}),Y.map((t,i)=>{const s=D[t.user_id],m=!!(t.ai_reading&&t.ai_reading.trim().length>0);return e.jsxs("tr",{children:[e.jsx("td",{children:i+1}),e.jsxs("td",{children:[e.jsx("div",{style:{fontWeight:600,fontSize:13},children:(s==null?void 0:s.nickname)||(s==null?void 0:s.full_name)||"â"}),e.jsx("div",{style:{fontSize:11,color:"var(--adm-muted)"},children:(s==null?void 0:s.email)??"â"}),e.jsxs("div",{style:{fontSize:10,color:"var(--adm-muted)",fontFamily:"monospace"},children:[t.user_id.slice(0,8),"â¦"]})]}),e.jsx("td",{style:{maxWidth:240,fontSize:12},children:t.question}),e.jsx("td",{style:{maxWidth:260,fontSize:12},children:S(t)}),e.jsx("td",{children:G(t.created_at)}),e.jsx("td",{children:m?e.jsx("span",{className:"adm-badge success",children:"Yorumlandı"}):e.jsx("span",{className:"adm-badge muted",children:"BoÅ"})}),e.jsxs("td",{children:[e.jsx("button",{className:"adm-btn adm-btn-sm adm-btn-ghost",onClick:()=>le(t),title:"Detay & düzenle",children:"ðï¸"})," ",!m&&e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"adm-btn adm-btn-sm adm-btn-ghost",onClick:()=>Z(t),disabled:p,title:"AI ile yeniden üret",children:"ð"})," "]}),e.jsx("button",{className:"adm-btn adm-btn-sm adm-btn-ghost",onClick:()=>J(t),children:"ðï¸"})]})]},t.id)})]})]})]}),h&&e.jsx("div",{className:"adm-overlay",onClick:()=>B(null),children:e.jsxs("div",{className:"adm-modal",onClick:t=>t.stopPropagation(),style:{maxWidth:640},children:[e.jsx("div",{className:"adm-modal-title",children:"Tarot Falı İncele"}),e.jsxs("div",{className:"adm-stack",children:[(()=>{const t=D[h.user_id];return e.jsxs("div",{className:"adm-card",style:{padding:12},children:[e.jsx("div",{style:{fontSize:11,color:"var(--adm-muted)"},children:"Kullanıcı"}),e.jsx("div",{style:{fontWeight:600},children:(t==null?void 0:t.nickname)||(t==null?void 0:t.full_name)||"â"}),e.jsx("div",{style:{fontSize:12,color:"var(--adm-muted)"},children:(t==null?void 0:t.email)??"E-posta yok"}),e.jsx("div",{style:{fontSize:11,color:"var(--adm-muted)",fontFamily:"monospace",marginTop:4},children:h.user_id}),e.jsxs("div",{style:{fontSize:11,color:"var(--adm-muted)",marginTop:4},children:[G(h.created_at)," · Kartlar: ",S(h)]})]})})(),e.jsxs("div",{children:[e.jsx("div",{style:{fontSize:12,fontWeight:600,marginBottom:4,color:"var(--adm-muted)"},children:"â Soru"}),e.jsx("div",{className:"adm-card",style:{padding:10,fontSize:13},children:h.question})]}),e.jsxs("div",{children:[e.jsx("div",{style:{fontSize:12,fontWeight:600,marginBottom:4,color:"var(--adm-muted)"},children:"ð Ãekilen Kartlar"}),e.jsx("div",{style:{display:"grid",gap:6},children:W(h).map((t,i)=>e.jsxs("div",{className:"adm-card",style:{padding:"8px 10px",display:"flex",gap:8,alignItems:"flex-start"},children:[e.jsx("span",{style:{fontSize:18},children:t.symbol}),e.jsxs("div",{children:[e.jsxs("div",{style:{fontSize:13,fontWeight:600},children:[i+1,". ",t.name,t.reversed&&e.jsx("span",{style:{fontSize:11,color:"#f59e0b",marginLeft:6},children:"(ters)"})]}),e.jsx("div",{style:{fontSize:12,color:"var(--adm-muted)"},children:t.meaning})]})]},i))})]}),e.jsxs("div",{children:[e.jsx("div",{style:{fontSize:12,fontWeight:600,marginBottom:4,color:"var(--adm-muted)"},children:"ð® Yorum (kullanıcıya giden cevap)"}),e.jsx("textarea",{className:"adm-textarea",style:{minHeight:220,fontSize:13,lineHeight:1.5},value:y,onChange:t=>K(t.target.value),placeholder:"Yapay zeka yorumu burada. Düzenleyip kaydedebilirsin; deÄiÅiklik anında kullanıcının tarot geçmiÅine yansır."}),e.jsxs("div",{style:{fontSize:11,color:"var(--adm-muted)",marginTop:4},children:[y.trim().length," karakter · DeÄiÅiklikler kullanıcıya anında yansır."]})]}),e.jsxs("div",{className:"adm-row",style:{justifyContent:"flex-end"},children:[e.jsx("button",{className:"adm-btn adm-btn-ghost",onClick:()=>B(null),children:"Kapat"}),e.jsx("button",{className:"adm-btn adm-btn-ghost",onClick:()=>K(h.ai_reading??""),disabled:T||p||y===(h.ai_reading??""),children:"Sıfırla"}),e.jsx("button",{className:"adm-btn adm-btn-ghost",onClick:()=>Z(h),disabled:T||p,title:"AI ile yeniden üret (kullanıcıdan kredi düÅülmez)",children:p?"Ãretiliyorâ¦":"ð Yeniden Ãret"}),e.jsx("button",{className:"adm-btn adm-btn-primary",onClick:Q,disabled:T||p||y===(h.ai_reading??""),children:T?"Kaydediliyorâ¦":"Kaydet"})]})]})]})})]})}export{$e as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.