{"version":3,"file":"reviews-2da39f67.js","sources":["../../../app/frontend/javascript/stores/reviews.js"],"sourcesContent":["import { defineStore } from 'pinia';\n// import { computed, ref } from 'vue';\nimport {\n fetchSuggestionAi,\n fetchGoogleSuggestionAi,\n updateUserPreferenceToHideIaAlertMessage,\n fetchGoogleReviewResponseTemplateSuggestionAi,\n} from '@services/reviewService';\n\nexport const useReviewsStore = defineStore({\n id: 'reviews',\n state: () => ({\n iaSuggestions: [], // [{ reviewId: 1, suggestion: \"...\" }]\n reviewResponses: [], // [{ reviewId: 1, message: \"...\", responseTemplateName: \"...\" }]\n surveyReviewResponses: [], // [{ surveyReviewId: 1, message: \"...\", responseTemplateName: \"...\" }]\n googleIaSuggestions: [],\n googleReviewResponses: [],\n showIaAlertMessage: [],\n }),\n getters: {\n getIaSuggestionById: state => {\n return reviewId => {\n const iaSuggestion = state.iaSuggestions.find(iaSuggestion => iaSuggestion.reviewId === reviewId);\n return (iaSuggestion && iaSuggestion.suggestion) || null;\n };\n },\n getReviewResponseById: state => {\n return reviewId => {\n return state.reviewResponses.find(reviewResponse => reviewResponse.reviewId === reviewId);\n };\n },\n getSurveyReviewResponseById: state => {\n return surveyReviewId => {\n return state.surveyReviewResponses.find(surveyReviewResponse => surveyReviewResponse.surveyReviewId === surveyReviewId);\n };\n },\n getGoogleIaSuggestionById: state => {\n return googleReviewId => {\n const googleIaSuggestion = state.googleIaSuggestions.find(googleIaSuggestion => googleIaSuggestion.googleReviewId === googleReviewId);\n return (googleIaSuggestion && googleIaSuggestion.suggestion) || null;\n };\n },\n getGoogleReviewResponseById: state => {\n return googleReviewId => {\n return state.googleReviewResponses.find(googleReviewResponse => googleReviewResponse.googleReviewId === googleReviewId);\n };\n },\n getGoogleIaSuggestionBySentiment: state => {\n return ratingSentiment => {\n const googleIaSuggestion = state.googleReviewResponses.find(googleIaSuggestion => googleIaSuggestion.ratingSentiment === ratingSentiment);\n return (googleIaSuggestion && googleIaSuggestion.suggestion) || null;\n };\n },\n },\n actions: {\n async fetchAndStoreSuggestionIa({ reviewId }) {\n const res = await fetchSuggestionAi({ reviewId });\n if (res.data.error) {\n return { error: res.data.error, suggestion: '' };\n } else {\n const newSuggestion = res.data.text;\n this.updateSuggestionIaById({ reviewId, suggestion: newSuggestion });\n return { error: null, suggestion: newSuggestion };\n }\n },\n async fetchAndStoreGoogleSuggestionIa({ googleReviewId, clinicId }) {\n const res = await fetchGoogleSuggestionAi({ googleReviewId, clinicId });\n if (res.data.error) {\n return { error: res.data.error, suggestion: '' };\n } else {\n const newSuggestion = res.data.text;\n this.updateGoogleSuggestionIaById({ googleReviewId, suggestion: newSuggestion });\n return { error: null, suggestion: newSuggestion };\n }\n },\n async fetchAndStoreGoogleSuggestionTemplateIa({ ratingSentiment, clinicId }) {\n const res = await fetchGoogleReviewResponseTemplateSuggestionAi({ clinicId, ratingSentiment });\n if (res.data.error) {\n return { error: res.data.error, suggestion: '' };\n } else {\n const newSuggestion = res.data.text;\n this.updateGoogleReviewResponseTemplateWithSentiment({ ratingSentiment, suggestion: newSuggestion });\n return { error: null, suggestion: newSuggestion };\n }\n },\n hideIaAlertMessage() {\n this.showIaAlertMessage = false;\n updateUserPreferenceToHideIaAlertMessage();\n },\n updateSuggestionIaById({ reviewId, suggestion }) {\n const existingSuggestionIndex = this.iaSuggestions.findIndex(item => item.reviewId === reviewId);\n if (existingSuggestionIndex !== -1) {\n this.iaSuggestions.splice(existingSuggestionIndex, 1, { reviewId, suggestion });\n } else {\n this.iaSuggestions.push({ reviewId, suggestion });\n }\n },\n updateReviewResponseById({ reviewId, message, responseTemplateName }) {\n const existingReviewReponseIndex = this.reviewResponses.findIndex(item => item.reviewId === reviewId);\n if (existingReviewReponseIndex !== -1) {\n this.reviewResponses.splice(existingReviewReponseIndex, 1, { reviewId, message, responseTemplateName });\n } else {\n this.reviewResponses.push({ reviewId, message, responseTemplateName });\n }\n },\n updateSurveyReviewResponseById({ surveyReviewId, message, responseTemplateName }) {\n const existingReviewReponseIndex = this.surveyReviewResponses.findIndex(item => item.surveyReviewId === surveyReviewId);\n if (existingReviewReponseIndex !== -1) {\n this.surveyReviewResponses.splice(existingReviewReponseIndex, 1, { surveyReviewId, message, responseTemplateName });\n } else {\n this.surveyReviewResponses.push({ surveyReviewId, message, responseTemplateName });\n }\n },\n updateGoogleSuggestionIaById({ googleReviewId, suggestion }) {\n const existingSuggestionIndex = this.googleIaSuggestions.findIndex(item => item.googleReviewId === googleReviewId);\n if (existingSuggestionIndex !== -1) {\n this.googleIaSuggestions.splice(existingSuggestionIndex, 1, { googleReviewId, suggestion });\n } else {\n this.googleIaSuggestions.push({ googleReviewId, suggestion });\n }\n },\n updateGoogleReviewResponseById({ googleReviewId, message, responseTemplateName }) {\n const existingReviewReponseIndex = this.googleReviewResponses.findIndex(item => item.googleReviewId === googleReviewId);\n if (existingReviewReponseIndex !== -1) {\n this.googleReviewResponses.splice(existingReviewReponseIndex, 1, { googleReviewId, message, responseTemplateName });\n } else {\n this.googleReviewResponses.push({ googleReviewId, message, responseTemplateName });\n }\n },\n updateGoogleReviewResponseTemplateWithSentiment({ ratingSentiment, suggestion }) {\n const existingReviewReponseIndex = this.googleReviewResponses.findIndex(item => item.ratingSentiment === ratingSentiment);\n if (existingReviewReponseIndex !== -1) {\n this.googleReviewResponses.splice(existingReviewReponseIndex, 1, { ratingSentiment, suggestion });\n } else {\n this.googleReviewResponses.push({ ratingSentiment, suggestion });\n }\n },\n },\n});\n"],"names":["useReviewsStore","defineStore","state","reviewId","iaSuggestion","reviewResponse","surveyReviewId","surveyReviewResponse","googleReviewId","googleIaSuggestion","googleReviewResponse","ratingSentiment","res","fetchSuggestionAi","newSuggestion","clinicId","fetchGoogleSuggestionAi","fetchGoogleReviewResponseTemplateSuggestionAi","updateUserPreferenceToHideIaAlertMessage","suggestion","existingSuggestionIndex","item","message","responseTemplateName","existingReviewReponseIndex"],"mappings":"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"}