/* Copyright © 2024 Melbet - All Rights Reserved */ import{useLogger as H,useSiteConfig as K,useAppStorage as J,useGlobalStore as k,useBettingStore as Q,useUserConfigStore as W,useApiInstances as x,BettingType as u,HttpClient as _,AppStorageKey as F,useSharedStore as X}from"./entry-Bl6dkD65.js";import{computed as A,unref as r,ref as y,watch as Y,onMounted as $,onBeforeUnmount as ee}from"../../../../shared-assets/__shared_vue_deps_SRT2KB67.js";import{createSharedComposable as te}from"./SrvKkP3v8vpZ.js";var re=Object.defineProperty,ae=Object.defineProperties,oe=Object.getOwnPropertyDescriptors,q=Object.getOwnPropertySymbols,se=Object.prototype.hasOwnProperty,ie=Object.prototype.propertyIsEnumerable,j=(c,i,d)=>i in c?re(c,i,{enumerable:!0,configurable:!0,writable:!0,value:d}):c[i]=d,ne=(c,i)=>{for(var d in i||(i={}))se.call(i,d)&&j(c,d,i[d]);if(q)for(var d of q(i))ie.call(i,d)&&j(c,d,i[d]);return c},ce=(c,i)=>ae(c,oe(i));const le=({favoriteGames:c})=>{const i=H(),d=K(),g=J(),m=k(),h=Q(),G=W(),w=x().favoritesApi,v=A(()=>!!m.userId),C=A(()=>h.cyberMatchesFilterType),O=async({bettingType:e,games:t})=>{try{const s=G.isCoeffCutLine&&r(e)===u.LINE||G.isCoeffCutLive&&r(e)===u.LIVE,{data:f,status:L}=await w.getFavoriteGamesZip(r(e),ce(ne({lng:m.language,mode:4,partner:d.ref_id,games:t,userId:s?m.userId:void 0},C?{cyberFlag:r(C)}:{}),{coefViewId:m.coefViewId}));switch(L){case _.STATUS_SUCCESS:return f;default:throw new Error("no succeed.")}}catch(s){i.error("loadFavoriteGamesZip: ",s)}},U=async()=>{try{if(!r(v))throw new Error("not authorized.");const{data:e,status:t}=await w.getFavorites(m.language);switch(t){case _.STATUS_SUCCESS:return e;default:throw new Error("no succeed.")}}catch(e){i.error("getFavoritesRemote: ",e)}},b=async e=>{var t;const s=r(e)===u.LINE?F.FAVORITE_GAMES_LINE:F.FAVORITE_GAMES_LIVE;return(t=await g.getItem(s))!=null?t:[]},p=async()=>{try{if(!r(v))throw new Error("not authorized.");const{data:e,status:t}=await w.getFavoriteGames();switch(t){case _.STATUS_SUCCESS:return e;default:throw new Error("no succeed.")}}catch(e){i.error("getFavoriteGamesRemote: ",e)}},z=async e=>r(v)?p():b(e),S=async(e,t)=>{var s;const f=r(t)===u.LINE?F.FAVORITE_GAMES_LINE:F.FAVORITE_GAMES_LIVE;return await g.setItem(f,[r(e)].concat((s=await g.getItem(f))!=null?s:[])),!0},V=async e=>{try{if(!r(v))throw new Error("not authorized.");const{status:t}=await w.setFavoriteGames(r(e),m.language);switch(t){case _.STATUS_SUCCESS:return!0;default:throw new Error("no succeed.")}}catch(t){i.error("setFavoriteGameRemote:",t)}return!1},P=async(e,t)=>{if(r(v)){const s=await V(e);return s&&S(e,t)}return S(e,t)},D=async e=>{try{if(!r(v))throw new Error("not authorized.");const{status:t}=await w.setFavoriteGamesBatch(r(e),m.language);switch(t){case _.STATUS_SUCCESS:return!0;default:throw new Error("no succeed.")}}catch(t){i.error("setFavoriteGamesRemote:",t)}return!1},M=async(e,t)=>{const s=r(t)===u.LINE?F.FAVORITE_GAMES_LINE:F.FAVORITE_GAMES_LIVE;return await g.setItem(s,r(e)),!0},B=async(e,t)=>{var s;const f=r(t)===u.LINE?F.FAVORITE_GAMES_LINE:F.FAVORITE_GAMES_LIVE;return await g.setItem(f,((s=await g.getItem(f))!=null?s:[]).filter(L=>L!==r(e))),!0},E=async e=>{try{if(!r(v))throw new Error("not authorized.");const t=r(c).find(f=>f.id===r(e));if(!t||!t.permanentId)throw new Error("game is not favorite.");const{status:s}=await w.deleteFavoriteGames(t.permanentId);switch(s){case _.STATUS_SUCCESS:return!0;default:throw new Error("no succeed.")}}catch(t){i.error("deleteFavoriteGameRemote: ",t)}return!1};return{loadFavoriteGamesZip:O,getFavoritesRemote:U,getFavoriteGamesLocal:b,getFavoriteGamesRemote:p,getFavoriteGames:z,setFavoriteGameLocal:S,setFavoriteGameRemote:V,setFavoriteGame:P,setFavoriteGamesRemote:D,replaceFavoriteGamesLocal:M,deleteFavoriteGameLocal:B,deleteFavoriteGameRemote:E,deleteFavoriteGame:async(e,t)=>{if(r(v)){const s=await E(e);return s&&B(e,t)}return B(e,t)},clearFavoriteGamesRemote:async()=>{try{if(!r(v))throw new Error("not authorized.");const{status:e}=await w.clearFavoriteGames();switch(e){case _.STATUS_SUCCESS:return!0;default:throw new Error("no succeed.")}}catch(e){i.error("clearFavoriteGamesRemote:",e)}return!1}}},me=te(()=>{const c=X(),i=k(),g=x().favoritesApi,m=y([]),h=y([]),G=y([]),R=y([]),w=y(!1),v=y(!1);c.bind("favoriteGamesIdsLine",m),c.bind("favoriteGamesIdsLive",h),c.bind("favoriteGamesLine",G),c.bind("favoriteGamesLive",R),c.bind("isLoadedLiveFavorites",w),c.bind("isLoadedLineFavorites",v);const C=A(()=>!!i.userId),O=A(()=>r(h).concat(r(m))),U=A(()=>r(R).concat(r(G))),b=A(()=>r(O).reduce((a,o)=>(a[o]=!0,a),{})),{loadFavoriteGamesZip:p,getFavoritesRemote:z,getFavoriteGamesLocal:S,setFavoriteGame:V,setFavoriteGamesRemote:P,replaceFavoriteGamesLocal:D,deleteFavoriteGame:M,clearFavoriteGamesRemote:B}=le({favoriteGames:U}),E=async(a,o=[])=>{const n=o.map(l=>l.id);r(a)===u.LINE?(m.value=n,G.value=o):(h.value=n,R.value=o),await D(n,a)},N=async a=>{try{const o=await S(a);if(o!=null&&o.length){const n=await p({bettingType:a,games:o});E(a,n)}else E(a,[])}catch(o){}finally{a===u.LINE?v.value=!0:w.value=!0}},Z=a=>{var o;return(o=r(b)[r(a)])!=null?o:!1},e=async()=>{if(r(C))try{const a=await S(u.LINE),o=await S(u.LIVE);(a.length||o.length)&&await P([...a,...o]);const n=await z(),l=n==null?void 0:n.games.line.map(I=>I.mainConstId),T=n==null?void 0:n.games.live.map(I=>I.mainConstId);if(l!=null&&l.length){const I=await p({bettingType:u.LINE,games:l});E(u.LINE,I)}if(T!=null&&T.length){const I=await p({bettingType:u.LIVE,games:T});E(u.LIVE,I)}(r(m).length!==(l==null?void 0:l.length)||r(h).length!==(T==null?void 0:T.length))&&(await B(),await P(O))}finally{v.value=!0,w.value=!0}else Promise.all([N(u.LINE),N(u.LIVE)])};Y(C,async()=>e(),{immediate:!0});const t=async()=>{var a;await g.cancelAllRequest(),(a=window.coreBus)==null||a.emit("triggerFavoritesAllRequestCanceled")},s=async({gameId:a,bettingType:o})=>{var n;const l=await V(a,o);(n=window.coreBus)==null||n.emit("triggerFavoriteGameSetted",l)},f=async({gameId:a,bettingType:o})=>{var n;const l=await M(a,o);(n=window.coreBus)==null||n.emit("triggerFavoriteGameDeleted",l)},L=async a=>{var o;await N(a),(o=window.coreBus)==null||o.emit("triggerFavoriteGamesLoaded")};return $(()=>{var a,o,n,l;(a=window.coreBus)==null||a.on("triggerFavoritesCancelAllRequest",t),(o=window.coreBus)==null||o.on("triggerSetFavoriteGame",s),(n=window.coreBus)==null||n.on("triggerDeleteFavoriteGame",f),(l=window.coreBus)==null||l.on("triggerLoadFavoriteGames",L)}),ee(()=>{var a,o,n,l;(a=window.coreBus)==null||a.off("triggerFavoritesCancelAllRequest",t),(o=window.coreBus)==null||o.off("triggerSetFavoriteGame",s),(n=window.coreBus)==null||n.off("triggerDeleteFavoriteGame",f),(l=window.coreBus)==null||l.off("triggerLoadFavoriteGames",L)}),{favoriteApi:g,favoriteGamesIds:O,favoriteGamesLine:G,favoriteGamesLive:R,favoriteGames:U,isLoadedLiveFavorites:w,isLoadedLineFavorites:v,setFavoriteGame:V,deleteFavoriteGame:M,loadFavoriteGames:N,checkGameIsFavorite:Z}});export{me as useFavoritesStore};