1import{e as D,d as v,c as F,a7 as o,O as g,j as s,ac as l,ab as m,a8 as t,ak as u,ad as i,ar as T,ae as c,F as $,aC as z,u as h}from"./C-Bz2zY_.js";import{u as B}from"./6K2e99A9.js";import{u as L}from"./DZ7pUzx_.js";import{V as N,b as R,c as C,d as f,j as E}from"./CyOIy2jn.js";import{V as I}from"./B9WagXeG.js";import{V as S,b as K,c as O,d as P,a as M}from"./m_7dGqWV.js";import{V as q}from"./eyPgx7gH.js";import{V as G}from"./DGmBk0Cr.js";import{V as A}from"./S6eFm5kE.js";import"./DtBGUNmG.js";/* empty css */import"./DzQAACYR.js";import"./D_qxKlPu.js";const H={class:"text-body-1 text-medium-emphasis mb-4"},J={class:"text-right font-weight-medium"},Q={class:"text-right font-weight-medium text-success"},W={class:"text-right font-weight-bold text-h6"},X={key:0,class:"mt-4"},Y={class:"d-flex justify-space-between mb-2"},Z={class:"font-weight-medium"},ee={key:0,class:"d-flex justify-space-between mb-2"},te={class:"d-flex justify-space-between"},ae={class:"font-weight-bold text-success"},le={class:"d-flex flex-column gap-3 mt-6"},ge=D({__name:"redeem",setup(se){const k=B(),x=L(),r=v(""),a=v(null),d=v(null),y=v(!1),b=v(!1),p=v(""),V=()=>{r.value="",a.value=null,d.value=null,p.value=""},_=async()=>{if(r.value.trim()){y.value=!0,a.value=null,d.value=null,p.value="";try{const n=await k.validateCoupon({code:r.value.trim().toUpperCase(),user_id:x.currentUser?.id});a.value=n}catch(n){p.value=n?.message||"Failed to validate coupon. Please try again."}finally{y.value=!1}}},U=async()=>{if(!(!a.value?.valid||!x.currentUser?.id)){b.value=!0,p.value="";try{const n=await k.applyCoupon({code:r.value.trim().toUpperCase(),user_id:x.currentUser.id,order_amount:0});d.value=n}catch(n){p.value=n?.message||"Failed to apply coupon. Please try again."}finally{b.value=!1}}},w=F(()=>{if(!a.value?.coupon)return"";const n=a.value.discount_type?.toLowerCase(),e=a.value.discount_amount;return n==="percentage"?`${e}% off`:`$${e} off`});return(n,e)=>(o(),g("div",null,[s(N,{justify:"center"},{default:l(()=>[s(R,{cols:"12",md:"6",lg:"5"},{default:l(()=>[d.value?.success?(o(),m(S,{key:0,class:"text-center pa-6"},{default:l(()=>[s(C,{icon:"tabler-circle-check",size:"72",color:"success",class:"mb-4"}),e[5]||(e[5]=t("h2",{class:"text-h5 font-weight-bold mb-2"}," Coupon Applied! ",-1)),t("p",H,u(d.value.message),1),s(I,{class:"mb-4"},{default:l(()=>[t("tbody",null,[t("tr",null,[e[1]||(e[1]=t("td",{class:"text-medium-emphasis"}," Original Amount ",-1)),t("td",J," $"+u(d.value.original_amount.toLocaleString()),1)]),t("tr",null,[e[2]||(e[2]=t("td",{class:"text-medium-emphasis"}," Discount ",-1)),t("td",Q," -$"+u(d.value.discount_amount.toLocaleString()),1)]),t("tr",null,[e[3]||(e[3]=t("td",{class:"font-weight-bold"}," Final Amount ",-1)),t("td",W," $"+u(d.value.final_amount.toLocaleString()),1)])])]),_:1}),s(f,{color:"primary",variant:"tonal",block:"",onClick:V},{default:l(()=>[...e[4]||(e[4]=[i(" Redeem Another Coupon ",-1)])]),_:1})]),_:1})):(o(),m(S,{key:1},{default:l(()=>[s(K,null,{prepend:l(()=>[s(E,{color:"success",variant:"tonal",size:"42"},{default:l(()=>[s(C,{icon:"tabler-discount-2"})]),_:1})]),default:l(()=>[s(O,null,{default:l(()=>[...e[6]||(e[6]=[i("Redeem a Coupon",-1)])]),_:1}),s(P,null,{default:l(()=>[...e[7]||(e[7]=[i("Enter your coupon code below",-1)])]),_:1})]),_:1}),s(q),s(M,{class:"pa-6"},{default:l(()=>[s(G,{modelValue:r.value,"onUpdate:modelValue":e[0]||(e[0]=j=>r.value=j),label:"Coupon Code",placeholder:"e.g. SAVE10",variant:"outlined",disabled:y.value||b.value,style:{"text-transform":"uppercase"},onKeyup:T(_,["enter"])},{"append-inner":l(()=>[r.value?(o(),m(f,{key:0,icon:"tabler-x",size:"x-small",variant:"text",onClick:V})):c("",!0)]),_:1},8,["modelValue","disabled"]),p.value?(o(),m(A,{key:0,type:"error",variant:"tonal",class:"mt-3"},{default:l(()=>[i(u(p.value),1)]),_:1})):c("",!0),a.value?(o(),g($,{key:1},[s(A,{type:a.value.valid?"success":"error",variant:"tonal",class:"mt-3"},z({default:l(()=>[i(" "+u(a.value.message),1)]),_:2},[a.value.valid?{name:"title",fn:l(()=>[i(" Valid Coupon â "+u(h(w)),1)]),key:"0"}:void 0]),1032,["type"]),a.value.valid&&a.value.coupon?(o(),g("div",X,[t("div",Y,[e[8]||(e[8]=t("span",{class:"text-medium-emphasis"},"Coupon Name",-1)),t("span",Z,u(a.value.coupon.name),1)]),a.value.coupon.description?(o(),g("div",ee,[e[9]||(e[9]=t("span",{class:"text-medium-emphasis"},"Description",-1)),t("span",null,u(a.value.coupon.description),1)])):c("",!0),t("div",te,[e[10]||(e[10]=t("span",{class:"text-medium-emphasis"},"Discount",-1)),t("span",ae,u(h(w)),1)])])):c("",!0)],64)):c("",!0),t("div",le,[a.value?.valid?c("",!0):(o(),m(f,{key:0,block:"",color:"primary",size:"large",loading:y.value,disabled:!r.value.trim(),onClick:_},{default:l(()=>[s(C,{icon:"tabler-search",class:"me-2"}),e[11]||(e[11]=i(" Check Coupon ",-1))]),_:1},8,["loading","disabled"])),a.value?.valid?(o(),m(f,{key:1,block:"",color:"success",size:"large",loading:b.value,onClick:U},{default:l(()=>[s(C,{icon:"tabler-check",class:"me-2"}),e[12]||(e[12]=i(" Apply Coupon ",-1))]),_:1},8,["loading"])):c("",!0),a.value?(o(),m(f,{key:2,block:"",variant:"text",color:"secondary",onClick:V},{default:l(()=>[...e[13]||(e[13]=[i(" Try a Different Code ",-1)])]),_:1})):c("",!0)])]),_:1})]),_:1}))]),_:1})]),_:1})]))}});
1export{ge 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.