import { AddonProductTypeEnum } from "@/@types/enums/addon-product-type.enum"; import type { IAddonListResponse, IClientDomainAddonResponse, } from "@/server/services/addon.services"; const ADDON_ID_FOR_GOOGLE_ANALYTICS = 15; export const getPropertyValueForAddonId = ( addonList: IAddonListResponse[], ): string | null => { const addon = addonList.find( (d) => d.AddonId === ADDON_ID_FOR_GOOGLE_ANALYTICS, ); if (!addon || addon.DomainAddonSettings.length === 0) { return null; } return addon.DomainAddonSettings[0].PropertyValue ?? null; }; export const getGoogleAnalyticsAddon = ( addonList: IClientDomainAddonResponse[], ): { addon: IClientDomainAddonResponse; key: string; } | null => { const addon = addonList.find((x) => x.Addon?.ProductTypes?.some((y) => y.Code === AddonProductTypeEnum.GA), ); if (!addon) { return null; } const keyProperty = addon.DomainAddonSettings.find( (x) => x.PropertyName === "Key", ); if (!keyProperty) { return null; } return { key: keyProperty.PropertyValue, addon, }; }; export const getLoyaltyAddon = ( addonList: IClientDomainAddonResponse[], ): IClientDomainAddonResponse | null => { return ( addonList.find((x) => x.Addon?.ProductTypes.some( (y) => y.Code === AddonProductTypeEnum.Loyalty, ), ) ?? null ); }; export const getDiscountCouponAddon = ( addonList: IClientDomainAddonResponse[], ): IClientDomainAddonResponse | null => { return ( addonList.find((x) => x.Addon?.ProductTypes.some( (y) => y.Code === AddonProductTypeEnum.DiscountCoupon, ), ) ?? null ); };