/** * Represents an entire Suite of CoreApps, * generally tied to different marketing verticals, * such as medical or real esate. */ export class CoreProduct implements HashidevDashboardCore.ICoreProduct { public static KEY_TOUCHMD = "touchmd"; public static KEY_REALESTATE = "realestate"; public static TOUCHMD: CoreProduct = new CoreProduct(CoreProduct.KEY_TOUCHMD, "TouchMD"); public static REALESTATE: CoreProduct = new CoreProduct(CoreProduct.KEY_REALESTATE, "NoviHome"); public static GetFromProductFolderName(productFolderName: string, rootDomain: string): CoreProduct { switch (productFolderName) { case CoreProduct.KEY_REALESTATE: let fallBackRealEstateDomain = '.novihome.com'; let legalRealEstateText = ''; return this.SetupProduct(CoreProduct.REALESTATE, rootDomain, legalRealEstateText, fallBackRealEstateDomain); default: let fallbackTouchMdDomain = '.touchmd.com'; let legalTouchMdText = 'TouchMD does not provide medical advice, diagnosis or treatment.'; return this.SetupProduct(CoreProduct.TOUCHMD, rootDomain, legalTouchMdText, fallbackTouchMdDomain); } } private static SetupProduct(product: CoreProduct, rootDomain: string, legalDiscliamerText: string, fallbackDomain: string) { if (product.isSetup) return product; if (!rootDomain) rootDomain = fallbackDomain; //Help Urls are set to fallback because there is no dev site for help product.urlForDashboard = `https://dashboard${rootDomain}`; product.urlForProfile = `https://profile${rootDomain}`; product.urlForKnowledgebase = `https://help${fallbackDomain}/`; product.urlForTerms = `https://legal${rootDomain}/terms`; product.urlForPrivacy = `https://legal${rootDomain}/privacy`; product.urlForContact = `https://help${fallbackDomain}/contact-support`; product.urlForRequestAFeature = `https://help${fallbackDomain}/request-a-feature/`; product.legalDiscliamerText = legalDiscliamerText; product.isSetup = true; return product; } public isSetup: boolean = false; public urlForDashboard: string; public urlForProfile: string; public urlForTerms: string; public urlForPrivacy: string; public urlForContact: string; public urlForRequestAFeature: string; public urlForKnowledgebase: string; public legalDiscliamerText: string; constructor( public key, public title) { } }