import{C as e,D as t,E as n,S as r,_ as ee,b as i,c as a,d as o,f as s,g as c,h as l,l as u,m as d,n as f,o as p,p as m,r as te,s as h,v as g,w as _,x as ne,y as v}from"./index-DzvFzRSs.js";import{t as y}from"./Section-CyoxMKA8.js";var b={class:`min-w-0`},x={class:`text-xs text-slate-400 truncate`},S={class:`font-medium text-slate-700 break-words`},C={__name:`Field`,props:{label:String,value:[String,Number,null]},setup(e){return(n,r)=>(g(),d(`div`,b,[o(`p`,x,t(e.label),1),o(`p`,S,t(e.value),1)]))}},w={class:`bg-white rounded-xl shadow-xl p-5 md:p-6 w-full max-w-md max-h-[90vh] overflow-auto`},T={class:`flex items-center justify-between mb-4`},E={class:`font-semibold text-lg`},D={__name:`Modal`,props:{title:String},emits:[`close`],setup(e){return(n,r)=>(g(),d(`div`,{class:`fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-3 md:p-6`,onClick:r[1]||=a(e=>n.$emit(`close`),[`self`])},[o(`div`,w,[o(`div`,T,[o(`h3`,E,t(e.title),1),o(`button`,{onClick:r[0]||=e=>n.$emit(`close`),class:`text-slate-400 hover:text-slate-600 text-xl leading-none`},`✕`)]),i(n.$slots,`default`)])]))}},re={key:0,class:`text-slate-500`},ie={key:1},O={class:`flex flex-col gap-2 mb-4 md:mb-6`},k={class:`flex flex-wrap items-center gap-2 md:gap-4`},A={class:`text-xl md:text-2xl font-bold truncate`},j={class:`text-slate-500 text-sm`},M={class:`font-mono text-xs text-slate-400`},N={class:`grid grid-cols-2 md:grid-cols-3 gap-3 text-sm`},P={key:0,class:`space-y-2`},F={class:`flex items-center gap-2`},I={class:`font-medium`},L={key:0,class:`text-xs bg-yellow-100 text-yellow-700 px-2 rounded`},R={class:`text-slate-500 text-xs md:text-sm`},z={key:1,class:`text-slate-400 text-sm`},B={class:`mt-4 flex flex-col sm:flex-row gap-2`},V={key:2,class:`mt-3 text-sm bg-amber-50 rounded-lg p-3`},H={key:0,class:`space-y-2`},U={class:`flex items-center gap-2`},W={class:`font-medium`},G={class:`flex items-center gap-2 text-xs`},K={class:`text-slate-500`},q={class:`font-mono text-slate-400`},J={key:1,class:`text-slate-400 text-sm`},Y={key:0,class:`grid grid-cols-2 gap-2 text-sm`},ae={class:`font-medium`},oe={class:`text-xs text-slate-500`},se={key:0,class:`text-xs text-slate-400`},ce={key:1,class:`text-slate-400 text-sm`},le={key:0,class:`space-y-1 text-sm`},ue={class:`text-xs text-slate-400`},de={key:1,class:`text-slate-400 text-sm`},fe={class:`space-y-2 max-h-[60vh] md:max-h-96 overflow-auto text-sm`},pe={class:`text-xs text-slate-400 mb-1`},me={class:`font-medium`},he={class:`whitespace-pre-wrap`},ge={class:`grid grid-cols-1 sm:grid-cols-3 gap-3 text-sm`},_e={key:0,class:`space-y-1 text-xs`},ve={class:`text-slate-400`},ye={key:1,class:`text-slate-400 text-sm`},be={class:`space-y-1 text-xs`},xe={class:`space-y-3`},Se={key:0,class:`text-sm text-green-600`},Ce={class:`space-y-3`},X={key:0,class:`text-sm text-green-600`},Z={__name:`UserDetail`,setup(i){let a=te(),b=_(null),x=_(!0),S=_(!1),w=_(!1),T=_({plan_slug:`monthly`,days:null}),E=_({plan_slug:null,price_rub:null,reason:``}),Z=_(``),Q=_(``);ee(async()=>{try{let{data:e}=await f.get(`/admin/api/users/${a.params.id}`);b.value=e}finally{x.value=!1}});async function we(){Z.value=``;try{let e={user_id:Number(a.params.id),plan_slug:T.value.plan_slug};T.value.days&&(e.days=T.value.days),await f.post(`/admin/api/subscriptions/gift`,e),Z.value=`✅ Подписка подарована`;let{data:t}=await f.get(`/admin/api/users/${a.params.id}`);b.value=t}catch(e){Z.value=`❌ `+(e.response?.data?.detail||`Ошибка`)}}async function Te(){Q.value=``;try{await f.post(`/admin/api/price-overrides`,{user_id:Number(a.params.id),plan_slug:E.value.plan_slug,price_rub:E.value.price_rub,reason:E.value.reason||`manual`}),Q.value=`✅ Цена установлена`;let{data:e}=await f.get(`/admin/api/users/${a.params.id}`);b.value=e}catch(e){Q.value=`❌ `+(e.response?.data?.detail||`Ошибка`)}}function Ee(e){return{succeeded:`text-green-600`,pending:`text-amber-600`,failed:`text-red-600`,refunded:`text-purple-600`}[e]||`text-slate-600`}function $(e){return e?new Date(e).toLocaleString(`ru-RU`,{day:`2-digit`,month:`2-digit`,year:`2-digit`,hour:`2-digit`,minute:`2-digit`}):`—`}function De(e){return e>1e6?(e/1e6).toFixed(1)+`M`:e>1e3?(e/1e3).toFixed(0)+`K`:e}return(ee,i)=>{let a=ne(`router-link`);return x.value?(g(),d(`div`,re,`Загрузка...`)):b.value?(g(),d(`div`,ie,[o(`div`,O,[c(a,{to:`/users`,class:`text-slate-400 hover:text-slate-600 text-sm`},{default:r(()=>[...i[9]||=[l(`← Клиенты`,-1)]]),_:1}),o(`div`,k,[o(`h1`,A,t(b.value.profile.name||b.value.profile.username||b.value.profile.user_id),1),o(`span`,j,`@`+t(b.value.profile.username||`—`),1),o(`span`,M,`ID: `+t(b.value.profile.user_id),1)])]),c(y,{title:`👤 Профиль`,icon:``},{default:r(()=>[o(`div`,N,[c(C,{label:`Дата регистрации`,value:$(b.value.profile.registered_at)},null,8,[`value`]),c(C,{label:`Платформа`,value:b.value.profile.platform},null,8,[`value`]),c(C,{label:`Event mode`,value:b.value.profile.event_mode},null,8,[`value`]),c(C,{label:`Birth data`,value:b.value.profile.birth_data||`—`},null,8,[`value`]),c(C,{label:`Локация`,value:b.value.profile.current_location||`—`},null,8,[`value`]),c(C,{label:`TZ`,value:b.value.profile.tz??`—`},null,8,[`value`])])]),_:1}),c(y,{title:`📱 Подписки`},{default:r(()=>[b.value.subscriptions.length?(g(),d(`div`,P,[(g(!0),d(u,null,v(b.value.subscriptions,e=>(g(),d(`div`,{key:e.id,class:`flex flex-col md:flex-row md:items-center md:justify-between gap-1 bg-slate-50 rounded-lg px-3 py-2 text-sm`},[o(`div`,F,[o(`span`,I,t(e.status),1),e.is_trial?(g(),d(`span`,L,`trial`)):m(``,!0)]),o(`span`,R,`с `+t($(e.started_at))+` до `+t($(e.ends_at)),1)]))),128))])):(g(),d(`p`,z,`Нет подписок`)),o(`div`,B,[o(`button`,{onClick:i[0]||=e=>S.value=!0,class:`px-3 py-2 bg-indigo-600 text-white rounded-lg text-sm hover:bg-indigo-700 text-center`},` 🎁 Подарить подписку `),o(`button`,{onClick:i[1]||=e=>w.value=!0,class:`px-3 py-2 bg-amber-100 text-amber-700 rounded-lg text-sm hover:bg-amber-200 text-center`},` 💰 Своя цена `)]),b.value.price_overrides.length?(g(),d(`div`,V,[i[10]||=o(`p`,{class:`font-medium text-amber-800`},`Индивидуальная цена:`,-1),(g(!0),d(u,null,v(b.value.price_overrides,e=>(g(),d(`div`,{key:e.id},t(e.plan_slug||`все планы`)+`: `+t(e.price_rub)+`₽ (`+t(e.reason)+`) `,1))),128))])):m(``,!0)]),_:1}),c(y,{title:`💳 Платежи`},{default:r(()=>[b.value.payments.length?(g(),d(`div`,H,[(g(!0),d(u,null,v(b.value.payments,e=>(g(),d(`div`,{key:e.id,class:`flex flex-col md:flex-row md:items-center md:justify-between gap-1 bg-slate-50 rounded-lg px-3 py-2 text-sm`},[o(`div`,U,[o(`span`,W,t(e.amount_rub)+`₽`,1),o(`span`,{class:n(Ee(e.status))},t(e.status),3)]),o(`div`,G,[o(`span`,K,t($(e.paid_at||e.created_at)),1),o(`span`,q,t(e.yookassa_payment_id?.slice(0,12))+`...`,1)])]))),128))])):(g(),d(`p`,J,`Нет платежей`))]),_:1}),c(y,{title:`🧑‍🤝‍🧑 Родственники (люди)`},{default:r(()=>[b.value.people.length?(g(),d(`div`,Y,[(g(!0),d(u,null,v(b.value.people,e=>(g(),d(`div`,{key:e.id,class:`bg-slate-50 rounded-lg px-3 py-2`},[o(`p`,ae,t(e.name),1),o(`p`,oe,t(e.birth_data),1),e.relationship?(g(),d(`p`,se,t(e.relationship),1)):m(``,!0)]))),128))])):(g(),d(`p`,ce,`Нет добавленных людей`))]),_:1}),c(y,{title:`📐 Карты (последние)`},{default:r(()=>[b.value.charts.length?(g(),d(`div`,le,[(g(!0),d(u,null,v(b.value.charts.slice(0,10),e=>(g(),d(`div`,{key:e.id,class:`flex justify-between text-slate-600`},[o(`span`,null,t(e.chart_type),1),o(`span`,ue,t($(e.created_at)),1)]))),128))])):(g(),d(`p`,de,`Нет построенных карт`))]),_:1}),c(y,{title:`💬 Последние сообщения`},{default:r(()=>[o(`div`,fe,[(g(!0),d(u,null,v(b.value.conversations.slice(0,20).reverse(),e=>(g(),d(`div`,{key:e.id,class:n([`rounded-lg px-3 py-2 break-words`,e.role===`user`?`bg-blue-50`:`bg-slate-50`])},[o(`p`,pe,[o(`span`,me,t(e.role),1),l(` · `+t($(e.created_at)),1)]),o(`p`,he,t(e.content?.slice(0,500)),1)],2))),128))])]),_:1}),c(y,{title:`📊 Использование`},{default:r(()=>[o(`div`,ge,[c(C,{label:`Всего запросов`,value:b.value.usage_stats.total_requests},null,8,[`value`]),c(C,{label:`Токенов всего`,value:De(b.value.usage_stats.total_tokens)},null,8,[`value`]),c(C,{label:`Стоимость $`,value:`$`+b.value.usage_stats.total_cost_usd},null,8,[`value`])])]),_:1}),c(y,{title:`🔧 Последние вызовы инструментов`},{default:r(()=>[b.value.tool_calls.length?(g(),d(`div`,_e,[(g(!0),d(u,null,v(b.value.tool_calls.slice(0,10),e=>(g(),d(`div`,{key:e.id||e.created_at,class:`flex justify-between bg-slate-50 rounded px-2 py-1`},[o(`span`,null,t(e.tool_name)+` `+t(e.success?`✅`:`❌`),1),o(`span`,ve,t(e.duration_ms)+`ms · `+t($(e.created_at)),1)]))),128))])):(g(),d(`p`,ye,`Нет вызовов`))]),_:1}),b.value.errors?.length?(g(),s(y,{key:0,title:`⚠️ Ошибки`},{default:r(()=>[o(`div`,be,[(g(!0),d(u,null,v(b.value.errors,e=>(g(),d(`div`,{key:e.id||e.created_at,class:`bg-red-50 text-red-700 rounded px-2 py-1`},t(e.message||e.error)+` · `+t($(e.created_at)),1))),128))])]),_:1})):m(``,!0),S.value?(g(),s(D,{key:1,onClose:i[4]||=e=>S.value=!1,title:`Подарить подписку`},{default:r(()=>[o(`div`,xe,[e(o(`select`,{"onUpdate:modelValue":i[2]||=e=>T.value.plan_slug=e,class:`w-full px-3 py-2 border rounded-lg`},[...i[11]||=[o(`option`,{value:`monthly`},`Месяц (30д)`,-1),o(`option`,{value:`yearly`},`Год (365д)`,-1)]],512),[[p,T.value.plan_slug]]),e(o(`input`,{"onUpdate:modelValue":i[3]||=e=>T.value.days=e,type:`number`,placeholder:`Дней (опционально)`,class:`w-full px-3 py-2 border rounded-lg`},null,512),[[h,T.value.days,void 0,{number:!0}]]),o(`button`,{onClick:we,class:`w-full bg-indigo-600 text-white py-2 rounded-lg`},`Подарить`),Z.value?(g(),d(`div`,Se,t(Z.value),1)):m(``,!0)])]),_:1})):m(``,!0),w.value?(g(),s(D,{key:2,onClose:i[8]||=e=>w.value=!1,title:`Индивидуальная цена`},{default:r(()=>[o(`div`,Ce,[e(o(`select`,{"onUpdate:modelValue":i[5]||=e=>E.value.plan_slug=e,class:`w-full px-3 py-2 border rounded-lg`},[...i[12]||=[o(`option`,{value:null},`Все планы`,-1),o(`option`,{value:`monthly`},`Месяц`,-1),o(`option`,{value:`yearly`},`Год`,-1)]],512),[[p,E.value.plan_slug]]),e(o(`input`,{"onUpdate:modelValue":i[6]||=e=>E.value.price_rub=e,type:`number`,placeholder:`Цена ₽`,class:`w-full px-3 py-2 border rounded-lg`},null,512),[[h,E.value.price_rub,void 0,{number:!0}]]),e(o(`input`,{"onUpdate:modelValue":i[7]||=e=>E.value.reason=e,placeholder:`Причина (опционально)`,class:`w-full px-3 py-2 border rounded-lg`},null,512),[[h,E.value.reason]]),o(`button`,{onClick:Te,class:`w-full bg-amber-600 text-white py-2 rounded-lg`},`Установить`),Q.value?(g(),d(`div`,X,t(Q.value),1)):m(``,!0)])]),_:1})):m(``,!0)])):m(``,!0)}}};export{Z as default};