(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[416],{9674:function(e,s,t){"use strict";t.d(s,{f0:function(){return q},aU:function(){return b},e5:function(){return Q},QS:function(){return M},BL:function(){return N}});var r,n,a,u,o,c,i=t(828),l=t(2190),d=t(7513),f=t(7568),m=t(92),p=t(129),g=t.n(p),v=t(4711),h=t(7345),y=(r=(0,f.Z)(function(e,s,t,r){var n,a,u;return(0,m.__generator)(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,v.Z.post(h.SV,{nickname:e,userId:s,email:t,password:r},{headers:{"Content-Type":"application/json; charset=UTF-8",Accept:"application/json"}})];case 1:return[2,{success:!0,data:n.sent().data}];case 2:if((a=n.sent()).response)return[2,{success:!1,message:(u=a.response.data).message||"회원가입 중 에러가 발생했습니다. 잠시 후 다시 시도해주세요.",errorCode:u.errorCode}];if(a.request)return[2,{success:!1,message:"서버로부터 응답이 없습니다."}];return[2,{success:!1,message:a.message}];case 3:return[2]}})}),function(e,s,t,n){return r.apply(this,arguments)}),S=(n=(0,f.Z)(function(e,s){var t,r,n;return(0,m.__generator)(this,function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),t=g().stringify({username:e,password:s}),[4,v.Z.post(h.x4,t,{headers:{"Content-Type":"application/x-www-form-urlencoded"}})];case 1:return[2,{success:!0,data:r.sent().data}];case 2:if((n=r.sent()).response)return[2,{success:!1,message:n.response.data||"로그인 중 에러가 발생했습니다. 잠시 후 다시 시도해주세요.",errorCode:n.response.status}];if(n.request)return[2,{success:!1,message:"서버로부터 응답이 없습니다."}];return[2,{success:!1,message:n.message}];case 3:return[2]}})}),function(e,s){return n.apply(this,arguments)}),_=(a=(0,f.Z)(function(e){var s,t,r;return(0,m.__generator)(this,function(s){switch(s.label){case 0:return s.trys.push([0,2,,3]),[4,v.Z.post((0,h.Wn)(e),{})];case 1:return[2,{success:!0,data:s.sent().data}];case 2:if((t=s.sent()).response)return[2,{success:!1,message:t.response.data.message||"이메일 인증 요청 중 에러가 발생했습니다. 잠시 후 다시 시도해주세요.",errorCode:t.response.status}];if(t.request)return[2,{success:!1,message:"서버로부터 응답이 없습니다."}];return[2,{success:!1,message:t.message}];case 3:return[2]}})}),function(e){return a.apply(this,arguments)}),k=(u=(0,f.Z)(function(e,s){var t,r,n;return(0,m.__generator)(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,v.Z.get((0,h.GM)(e,s))];case 1:return[2,{success:!0,data:t.sent().data}];case 2:if((r=t.sent()).response)return[2,{success:!1,message:(n=r.response.data).message||"이메일 코드 검증 중 에러가 발생했습니다. 잠시 후 다시 시도해주세요.",errorCode:n.errorCode}];if(r.request)return[2,{success:!1,message:"서버로부터 응답이 없습니다."}];return[2,{success:!1,message:r.message}];case 3:return[2]}})}),function(e,s){return u.apply(this,arguments)}),Z=(o=(0,f.Z)(function(e){var s,t,r;return(0,m.__generator)(this,function(s){switch(s.label){case 0:return s.trys.push([0,2,,3]),[4,v.Z.patch(h.i8,{},{headers:{RefreshToken:"".concat(e)}})];case 1:return[2,{success:!0,data:s.sent().data}];case 2:if((t=s.sent()).response)return[2,{success:!1,message:(r=t.response.data).message||"로그아웃 중 에러가 발생했습니다. 잠시 후 다시 시도해주세요.",errorCode:r.errorCode}];if(t.request)return[2,{success:!1,message:"서버로부터 응답이 없습니다."}];return[2,{success:!1,message:t.message}];case 3:return[2]}})}),function(e){return o.apply(this,arguments)});(0,f.Z)(function(e){var s;return(0,m.__generator)(this,function(s){return e.req.cookies.zzgg_rt?[2,{props:{}}]:[2,{redirect:{destination:"/Login",permanent:!1}}]})});var C=t(202),w=t(8029),F=t(1163),D=t(1413),E=t(4480),T=t(4730),V=t(9075),b=function(){(0,C.NL)();var e=(0,l.Z)().logoutDeleteToken,s=(0,F.useRouter)(),t=(0,(0,d.Z)().getDecryptedCookie)("zzgg_rt");return{mutate:(0,w.D)({mutationFn:function(){return Z(t)},onSuccess:function(t){t.success?(e(),localStorage.clear(),alert("로그아웃 되었습니다."),s.push("/Home")):alert(t.message||"로그아웃에 실패하였습니다. 잠시 후 시도 해주세요.")},onError:function(e){alert("로그아웃에 실패하였습니다. 잠시 후 시도 해주세요."),console.error("로그아웃 failed:",e)}}).mutate}},q=function(){var e=(0,F.useRouter)(),s=(0,C.NL)(),t=(0,T.W)().mutate,r=(0,i.Z)((0,E.FV)(D.ll),2),n=r[0],a=r[1],u=(0,l.Z)().loginSaveToken;return{mutate:(0,w.D)({mutationFn:function(e){return S(e.username,e.password)},onSuccess:function(r){if(r.success){u({access_token:r.data.accessToken,refresh_token:r.data.refreshToken}),s.invalidateQueries();var n=localStorage.getItem("surveyOption");if(n){var o=JSON.parse(n);t(o,{onSuccess:function(s){s.success?e.push({pathname:"/Map",query:{disease:o.disease.join(","),department:o.department.join(",")}}):alert("건강 설문 불러오기를 실패하였습니다. 잠시 후 시도 해주세요.")},onError:function(e){console.error("건강 설문 불러오기를 실패:",e),alert("건강 설문 불러오기를 실패하였습니다. 잠시 후 시도 해주세요.")}}),localStorage.removeItem("surveyOption"),e.push("/Map?disease=".concat(o.disease,"&department=").concat(o.department))}else e.push("/")}else a(r.message)},onError:function(){a("로그인에 실패했거나 JWT 토큰이 없습니다. 다시 로그인을 시도해주세요.")}}).mutate,errorMessage:n}},M=function(){var e=(0,F.useRouter)(),s=(0,i.Z)((0,E.FV)(D.ll),2),t=s[0],r=s[1];return{mutate:(0,w.D)({mutationFn:function(e){return y(e.nickname,e.userId,e.email,e.password)},onSuccess:function(s){if(null==s?void 0:s.success){var t,n,a,u;alert(null==s?void 0:null===(t=s.data)||void 0===t?void 0:null===(n=t.data)||void 0===n?void 0:n.message),e.push(null===(a=s.data)||void 0===a?void 0:null===(u=a.data)||void 0===u?void 0:u.surveyUrl)}else r(s.message)},onError:function(){r("회원가입이 정상적으로 되지 않았습니다. 추후 재시도 바랍니다.")}}).mutate,errorMessage:t}},Q=function(){var e=(0,i.Z)((0,E.FV)(V.iQ),2)[1];return{mutate:(0,w.D)({mutationFn:function(e){return _(e)},onSuccess:function(s){if(null==s?void 0:s.success){var t,r;alert(null==s?void 0:null===(t=s.data)||void 0===t?void 0:null===(r=t.data)||void 0===r?void 0:r.message),e(!0)}else alert(null==s?void 0:s.message)},onError:function(){alert("이메일 요청이 정상적으로 되지 않았습니다. 잠시 후 시도 해주세요.")}}).mutate}},N=function(){var e=(0,i.Z)((0,E.FV)(V.iQ),2)[1],s=(0,i.Z)((0,E.FV)(V.QM),2)[1];return{mutate:(0,w.D)({mutationFn:function(e){return k(e.email,e.emailVerificationCode)},onSuccess:function(t){var r,n;(null==t?void 0:null===(r=t.data)||void 0===r?void 0:null===(n=r.data)||void 0===n?void 0:n.message)?(s(!0),e(!1)):alert(null==t?void 0:t.message)},onError:function(){alert("이메일 확인 요청이 정상적으로 되지 않았습니다. 잠시 후 시도 해주세요.")}}).mutate}}},4730:function(e,s,t){"use strict";t.d(s,{W:function(){return l}});var r,n=t(7568),a=t(92),u=t(4711),o=t(7345),c=(r=(0,n.Z)(function(e){var s,t,r;return(0,a.__generator)(this,function(s){switch(s.label){case 0:return s.trys.push([0,2,,3]),[4,u.Z.post(o.dh,e)];case 1:return[2,{success:!0,data:s.sent().data}];case 2:if((t=s.sent()).response)return[2,{success:!1,message:(r=t.response.data).message||"설문조사 저장 중 에러가 발생했습니다. 잠시 후 다시 시도해주세요.",errorCode:r.errorCode}];if(t.request)return[2,{success:!1,message:"서버로부터 응답이 없습니다. 네트워크 연결을 확인해주세요."}];return[2,{success:!1,message:"네트워크 문제로 인해 설문조사를 저장할 수 없습니다. 연결 상태를 확인하고 다시 시도해주세요."}];case 3:return[2]}})}),function(e){return r.apply(this,arguments)}),i=t(8029);t(7635);var l=function(){return{mutate:(0,i.D)({mutationFn:function(e){return c(e)},onError:function(e){console.error("Save Health Survey Error:",e),alert("건강 설문조사 저장 중 에러가 발생했습니다. 잠시 후 시도 해주세요.")}}).mutate}}},9075:function(e,s,t){"use strict";t.d(s,{Gr:function(){return i},JU:function(){return n},Kt:function(){return a},QM:function(){return c},iQ:function(){return o},tM:function(){return u}});var r=t(4480),n=(0,r.cn)({key:"emailUsernameState",default:""}),a=(0,r.cn)({key:"emailDomainState",default:""}),u=(0,r.cn)({key:"customDomainState",default:""}),o=(0,r.cn)({key:"isVerificationSentState",default:!1}),c=(0,r.cn)({key:"isVerificationCompleteState",default:!1}),i=(0,r.cn)({key:"isAgreedState",default:!1})},4654:function(){}}]);