1import{_ as it}from"./nuxt-link.1d409c62.js";import{d as dt,h as ut,r as u,i as rt,u as ct,o as n,c as i,a as t,j as e,t as l,l as C,s as q,x as S,H as _t,v as G,F as pt,y as vt,k as c,z as K,f as mt,w as ft,n as Q,b as W,_ as gt}from"./entry.fcc3f972.js";import{u as bt}from"./useStripe.07b20ce1.js";import"./firebase.efe57387.js";const ht={class:"orders-manager"},yt={key:0,class:"auth-error"},kt={key:1,class:"loading"},wt={key:2,class:"manager-content"},$t={class:"stats-cards"},Ct={class:"stat-card"},St={class:"stat-value"},Mt={class:"stat-card stat-revenue"},xt={class:"stat-value"},Dt={class:"stat-card stat-paid"},Tt={class:"stat-value"},Xt={class:"stat-card stat-pending"},Nt={class:"stat-value"},Pt={class:"stat-card stat-refunded"},It={class:"stat-value"},Lt={class:"filters"},Rt={class:"filter-group"},Vt={class:"filter-group"},Ut={class:"filter-group"},zt={key:0,class:"loading"},Bt={key:1,class:"empty"},Ot={key:2,class:"data-table"},At={class:"order-number"},Et={class:"user-cell"},Ft={class:"user-name"},Ht={class:"user-email"},jt={key:1,class:"user-cell"},Jt={class:"user-name"},Yt={class:"user-email"},Zt={class:"amount"},qt={key:0,class:"coupon-badge"},Gt={key:1,class:"text-muted"},Kt={key:0},Qt={key:1,class:"text-muted"},Wt={class:"action-btns"},ts=["onClick"],ss=["onClick"],es={key:3,class:"pagination"},as=["disabled"],ls=["disabled"],os={class:"modal-content"},ns={key:0,class:"modal-body"},is={class:"detail-row"},ds={class:"detail-value"},us={class:"detail-row"},rs={class:"detail-value"},cs={class:"detail-row"},_s={class:"detail-value"},ps={key:0,class:"coupon-details"},vs={class:"detail-row"},ms={class:"detail-value coupon-code"},fs={class:"detail-row"},gs={class:"detail-value discount-amount"},bs={key:0,class:"detail-row"},hs={class:"detail-value"},ys={class:"detail-row"},ks={class:"detail-json"},ws={class:"modal-content"},$s={key:0,class:"modal-body"},Cs={class:"refund-info"},Ss={class:"detail-row"},Ms={class:"detail-value"},xs={class:"detail-row"},Ds={class:"detail-value"},Ts={class:"form-group"},Xs={class:"modal-actions"},Ns=["disabled"],Ps=dt({__name:"orders",setup(Is){const{getIdToken:L}=ut(),{formatPrice:M,getProductTypeName:tt,getStatusName:st}=bt(),x=u(!0),D=u(null),T=u([]),p=u({total_orders:0,total_revenue:0,paid_count:0,pending_count:0,refunded_count:0}),y=u({page:1,limit:50,total:0,total_pages:1}),r=u(1),X=u(!1),m=u(""),f=u(""),g=u(""),N=u(!1),P=u(!1),d=u(null),b=u(""),k=u(!1);let I=null;rt(async()=>{try{await v(),x.value=!1}catch(o){D.value=o.message||"èªè¨¼ã¨ã©ã¼",x.value=!1}});async function v(){X.value=!0;try{const o=await L();if(!o)throw new Error("èªè¨¼ãå¿
è¦ã§ã");const s=new URLSearchParams;s.set("page",r.value.toString()),s.set("limit","50"),m.value&&s.set("status",m.value),f.value&&s.set("product_type",f.value),g.value&&s.set("order_number",g.value);const _=await $fetch(`/api/v2/admin/orders?${s.toString()}`,{headers:{Authorization:`Bearer ${o}`}});T.value=_.orders||[],y.value=_.pagination,p.value=_.statistics}catch(o){console.error("Error fetching orders:",o)}finally{X.value=!1}}function et(){I&&clearTimeout(I),I=setTimeout(()=>{r.value=1,v()},500)}function R(o){r.value=o,v()}function V(o){if(!o)return"-";const s=new Date(o);return`${s.getMonth()+1}/${s.getDate()}`}function at(o){if(!o)return"-";const s=new Date(o);return`${s.getFullYear()}/${s.getMonth()+1}/${s.getDate()} ${s.getHours()}:${String(s.getMinutes()).padStart(2,"0")}`}function U(o){const s=o.metadata;if(!s)return null;if(s.coupon_code){const _=s.discount_amount?` (-Â¥${Math.floor(s.discount_amount/100).toLocaleString()})`:"";return`${s.coupon_code}${_}`}return s.discount_amount&&s.discount_amount>0?`-Â¥${Math.floor(s.discount_amount/100).toLocaleString()}`:null}function h(o){const s=o.metadata;return!s||!s.coupon_code&&!s.discount_amount?null:{code:s.coupon_code||null,discount:s.discount_amount?`-Â¥${Math.floor(s.discount_amount/100).toLocaleString()}`:null,subtotal:s.amount_subtotal?`Â¥${Math.floor(s.amount_subtotal/100).toLocaleString()}`:null}}function lt(o){d.value=o,N.value=!0}function z(){N.value=!1,d.value=null}function ot(o){d.value=o,b.value="",P.value=!0}function w(){P.value=!1,d.value=null}async function nt(){var o;if(d.value){k.value=!0;try{const s=await L();if(!s)throw new Error("èªè¨¼ãå¿
è¦ã§ã");await $fetch(`/api/v2/admin/orders/${d.value.id}/refund`,{method:"POST",headers:{Authorization:`Bearer ${s}`},body:{reason:b.value}}),w(),await v()}catch(s){alert(((o=s.data)==null?void 0:o.message)||"è¿éå¦çã«å¤±æãã¾ãã")}finally{k.value=!1}}}return ct({title:"注æç®¡ç | 管çç»é¢"}),(o,s)=>{var B,O,A,E;const _=it;return n(),i("div",ht,[s[33]||(s[33]=t("div",{class:"manager-header"},[t("h1",{class:"manager-title"},"注æç®¡ç"),t("p",{class:"manager-description"},"Stripe決æ¸ã«ããæ³¨æã管çãã¾ã")],-1)),e(D)?(n(),i("div",yt,[t("p",null,l(e(D)),1)])):e(x)?(n(),i("div",kt,s[6]||(s[6]=[t("p",null,"èªè¨¼ç¢ºèªä¸...",-1)]))):(n(),i("div",wt,[t("div",$t,[t("div",Ct,[t("div",St,l(e(p).total_orders),1),s[7]||(s[7]=t("div",{class:"stat-label"},"ç·æ³¨ææ°",-1))]),t("div",Mt,[t("div",xt,l(e(M)(e(p).total_revenue)),1),s[8]||(s[8]=t("div",{class:"stat-label"},"ç·å£²ä¸",-1))]),t("div",Dt,[t("div",Tt,l(e(p).paid_count),1),s[9]||(s[9]=t("div",{class:"stat-label"},"æ¯æãæ¸ã¿",-1))]),t("div",Xt,[t("div",Nt,l(e(p).pending_count),1),s[10]||(s[10]=t("div",{class:"stat-label"},"決æ¸å¾
ã¡",-1))]),t("div",Pt,[t("div",It,l(e(p).refunded_count),1),s[11]||(s[11]=t("div",{class:"stat-label"},"è¿éæ¸ã¿",-1))])]),t("div",Lt,[t("div",Rt,[s[13]||(s[13]=t("label",null,"ã¹ãã¼ã¿ã¹",-1)),C(t("select",{"onUpdate:modelValue":s[0]||(s[0]=a=>S(m)?m.value=a:null),onChange:v},s[12]||(s[12]=[_t('<option value="" data-v-760a09d7>ãã¹ã¦</option><option value="pending" data-v-760a09d7>決æ¸å¾
ã¡</option><option value="paid" data-v-760a09d7>æ¯æãæ¸ã¿</option><option value="refunded" data-v-760a09d7>è¿éæ¸ã¿</option><option value="cancelled" data-v-760a09d7>ãã£ã³ã»ã«</option>',5)]),544),[[q,e(m)]])]),t("div",Vt,[s[15]||(s[15]=t("label",null,"ååã¿ã¤ã",-1)),C(t("select",{"onUpdate:modelValue":s[1]||(s[1]=a=>S(f)?f.value=a:null),onChange:v},s[14]||(s[14]=[t("option",{value:""},"ãã¹ã¦",-1),t("option",{value:"premium_listing"},"ãã¬ãã¢ã æ²è¼",-1),t("option",{value:"banner_ad"},"ããã¼åºå",-1),t("option",{value:"experience_article"},"ä½é¨è¨äº",-1)]),544),[[q,e(f)]])]),t("div",Ut,[s[16]||(s[16]=t("label",null,"注æçªå·",-1)),C(t("input",{"onUpdate:modelValue":s[2]||(s[2]=a=>S(g)?g.value=a:null),type:"text",placeholder:"NZ-XXXXXXXX-XXX",onInput:et},null,544),[[G,e(g)]])])]),e(X)?(n(),i("div",zt," èªã¿è¾¼ã¿ä¸... ")):e(T).length===0?(n(),i("div",Bt," 注æãããã¾ãã ")):(n(),i("div",Ot,[t("table",null,[s[18]||(s[18]=t("thead",null,[t("tr",null,[t("th",null,"注æçªå·"),t("th",null,"ã¦ã¼ã¶ã¼"),t("th",null,"åå"),t("th",null,"éé¡"),t("th",null,"ã¯ã¼ãã³"),t("th",null,"ã¹ãã¼ã¿ã¹"),t("th",null,"æ²è¼æé"),t("th",null,"æ³¨ææ¥"),t("th",null,"æä½")])],-1)),t("tbody",null,[(n(!0),i(pt,null,vt(e(T),a=>{var F,H,j,J;return n(),i("tr",{key:a.id},[t("td",At,l(a.order_number),1),t("td",null,[(F=a.users)!=null&&F.nzUserId?(n(),mt(_,{key:0,to:`/users/${a.users.nzUserId}`,class:"user-cell-link",target:"_blank"},{default:ft(()=>{var $,Y,Z;return[t("div",Et,[t("span",Ft,l((($=a.users)==null?void 0:$.name)||((Y=a.uid)==null?void 0:Y.slice(0,8))+"..."),1),t("span",Ht,l(((Z=a.users)==null?void 0:Z.email)||"-"),1)])]}),_:2},1032,["to"])):(n(),i("div",jt,[t("span",Jt,l(((H=a.users)==null?void 0:H.name)||((j=a.uid)==null?void 0:j.slice(0,8))+"..."),1),t("span",Yt,l(((J=a.users)==null?void 0:J.email)||"-"),1)]))]),t("td",null,[t("span",{class:Q(["type-badge",a.product_type])},l(e(tt)(a.product_type)),3)]),t("td",Zt,l(e(M)(a.amount)),1),t("td",null,[U(a)?(n(),i("span",qt,l(U(a)),1)):(n(),i("span",Gt,"-"))]),t("td",null,[t("span",{class:Q(["status-badge",a.status])},l(e(st)(a.status)),3)]),t("td",null,[a.permission_start_date?(n(),i("span",Kt,[W(l(V(a.permission_start_date))+" -",1),s[17]||(s[17]=t("br",null,null,-1)),W(" "+l(V(a.permission_end_date)),1)])):(n(),i("span",Qt,"-"))]),t("td",null,l(at(a.created_at)),1),t("td",null,[t("div",Wt,[a.status==="paid"?(n(),i("button",{key:0,class:"btn-refund",onClick:$=>ot(a)}," è¿é ",8,ts)):c("",!0),t("button",{class:"btn-detail",onClick:$=>lt(a)}," 詳細 ",8,ss)])])])}),128))])])])),e(y).total_pages>1?(n(),i("div",es,[t("button",{disabled:e(r)===1,onClick:s[3]||(s[3]=a=>R(e(r)-1))}," å㸠",8,as),t("span",null,l(e(r))+" / "+l(e(y).total_pages),1),t("button",{disabled:e(r)===e(y).total_pages,onClick:s[4]||(s[4]=a=>R(e(r)+1))}," 次㸠",8,ls)])):c("",!0)])),e(N)?(n(),i("div",{key:3,class:"modal-overlay",onClick:K(z,["self"])},[t("div",os,[t("div",{class:"modal-header"},[s[19]||(s[19]=t("h3",null,"注æè©³ç´°",-1)),t("button",{class:"modal-close",onClick:z},"Ã")]),e(d)?(n(),i("div",ns,[t("div",is,[s[20]||(s[20]=t("span",{class:"detail-label"},"注æçªå·",-1)),t("span",ds,l(e(d).order_number),1)]),t("div",us,[s[21]||(s[21]=t("span",{class:"detail-label"}
1,"Stripe Session ID",-1)),t("span",rs,l(e(d).stripe_checkout_session_id||"-"),1)]),t("div",cs,[s[22]||(s[22]=t("span",{class:"detail-label"},"Stripe Payment Intent",-1)),t("span",_s,l(e(d).stripe_payment_intent_id||"-"),1)]),h(e(d))?(n(),i("div",ps,[s[26]||(s[26]=t("h4",null,"ã¯ã¼ãã³æ
å ±",-1)),t("div",vs,[s[23]||(s[23]=t("span",{class:"detail-label"},"ã¯ã¼ãã³ã³ã¼ã",-1)),t("span",ms,l(((B=h(e(d)))==null?void 0:B.code)||"-"),1)]),t("div",fs,[s[24]||(s[24]=t("span",{class:"detail-label"},"å²å¼é¡",-1)),t("span",gs,l(((O=h(e(d)))==null?void 0:O.discount)||"-"),1)]),(A=h(e(d)))!=null&&A.subtotal?(n(),i("div",bs,[s[25]||(s[25]=t("span",{class:"detail-label"},"å²å¼åéé¡",-1)),t("span",hs,l((E=h(e(d)))==null?void 0:E.subtotal),1)])):c("",!0)])):c("",!0),t("div",ys,[s[27]||(s[27]=t("span",{class:"detail-label"},"ã¡ã¿ãã¼ã¿",-1)),t("pre",ks,l(JSON.stringify(e(d).metadata,null,2)),1)])])):c("",!0)])])):c("",!0),e(P)?(n(),i("div",{key:4,class:"modal-overlay",onClick:K(w,["self"])},[t("div",ws,[t("div",{class:"modal-header"},[s[28]||(s[28]=t("h3",null,"è¿éå¦ç",-1)),t("button",{class:"modal-close",onClick:w},"Ã")]),e(d)?(n(),i("div",$s,[s[32]||(s[32]=t("p",{class:"refund-warning"}," ãã®æ³¨æãè¿éãã¾ããï¼ãã®æä½ã¯åãæ¶ãã¾ããã ",-1)),t("div",Cs,[t("div",Ss,[s[29]||(s[29]=t("span",{class:"detail-label"},"注æçªå·",-1)),t("span",Ms,l(e(d).order_number),1)]),t("div",xs,[s[30]||(s[30]=t("span",{class:"detail-label"},"éé¡",-1)),t("span",Ds,l(e(M)(e(d).amount)),1)])]),t("div",Ts,[s[31]||(s[31]=t("label",null,"è¿éçç±ï¼ä»»æï¼",-1)),C(t("textarea",{"onUpdate:modelValue":s[5]||(s[5]=a=>S(b)?b.value=a:null),placeholder:"è¿éçç±ãå
¥å"},null,512),[[G,e(b)]])]),t("div",Xs,[t("button",{class:"btn-cancel",onClick:w}," ãã£ã³ã»ã« "),t("button",{class:"btn-refund-confirm",disabled:e(k),onClick:nt},l(e(k)?"å¦çä¸...":"è¿éãå®è¡"),9,Ns)])])):c("",!0)])])):c("",!0)])}}});const zs=gt(Ps,[["__scopeId","data-v-760a09d7"]]);export{zs 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.