import{D as e,E as t,_ as n,d as r,g as i,m as a,n as o,u as s,v as c,w as l}from"./index-DzvFzRSs.js";var u={class:`bg-white rounded-xl shadow-sm border border-slate-200 p-3 md:p-5`},d={class:`flex items-center justify-between`},f={class:`min-w-0`},p={class:`text-xs md:text-sm text-slate-500 truncate`},m={class:`text-xl md:text-2xl flex-shrink-0 ml-2`},h={__name:`StatCard`,props:{label:String,value:[String,Number],icon:String,color:String},setup(n){let i=n,o=s(()=>({blue:`text-blue-600`,green:`text-green-600`,amber:`text-amber-600`,red:`text-red-600`,indigo:`text-indigo-600`,purple:`text-purple-600`,yellow:`text-yellow-600`})[i.color]||`text-slate-900`);return(i,s)=>(c(),a(`div`,u,[r(`div`,d,[r(`div`,f,[r(`p`,p,e(n.label),1),r(`p`,{class:t([`text-lg md:text-2xl font-bold mt-1 truncate`,o.value])},e(n.value),3)]),r(`div`,m,e(n.icon),1)])]))}},g={key:0,class:`text-slate-500`},_={key:1,class:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4`},v={__name:`Dashboard`,setup(e){let t=l({}),s=l(!0);n(async()=>{try{let{data:e}=await o.get(`/admin/api/dashboard`);t.value=e}finally{s.value=!1}});function u(e){return new Intl.NumberFormat(`ru-RU`).format(e||0)}function d(e){return e>1e6?(e/1e6).toFixed(1)+`M`:e>1e3?(e/1e3).toFixed(0)+`K`:e}return(e,n)=>(c(),a(`div`,null,[n[0]||=r(`h1`,{class:`text-2xl font-bold mb-6`},`📊 Дашборд`,-1),s.value?(c(),a(`div`,g,`Загрузка...`)):(c(),a(`div`,_,[i(h,{label:`Всего клиентов`,value:t.value.total_users,icon:`👥`,color:`blue`},null,8,[`value`]),i(h,{label:`Активных подписок`,value:t.value.active_subscriptions,icon:`📱`,color:`green`},null,8,[`value`]),i(h,{label:`Доход (₽)`,value:u(t.value.total_revenue_rub),icon:`💰`,color:`amber`},null,8,[`value`]),i(h,{label:`Платежей успешно`,value:t.value.successful_payments,icon:`✅`,color:`green`},null,8,[`value`]),i(h,{label:`Запросов за 30д`,value:t.value.requests_30d,icon:`📨`,color:`indigo`},null,8,[`value`]),i(h,{label:`Токенов за 30д`,value:d(t.value.tokens_30d),icon:`🤖`,color:`purple`},null,8,[`value`]),i(h,{label:`Стоимость $ за 30д`,value:`$`+t.value.cost_usd_30d,icon:`💵`,color:`red`},null,8,[`value`]),i(h,{label:`Отзывы`,value:(t.value.positive_count+t.value.negative_count)>0?Math.round(t.value.positive_share*100)+`% 👍 (`+t.value.positive_count+`/`+(t.value.positive_count+t.value.negative_count)+`)`:`—`,icon:`⭐`,color:`yellow`},null,8,[`value`])]))]))}};export{v as default};