import CONSTANTS from "../config/constants";
import clientConfigDB from "../models/clientConfig.model";
import settingsDB from "../models/settings.model";


const setDefaultNotificationSettings = async (clientId: number, propId: number) => {
 let id =  await settingsDB.add ({clientId, propId});
 
 let onboardingTemplate = CONSTANTS.DEFAULT_APP_LINK.TEMPLATE;
 let footer = CONSTANTS.DEFAULT_APP_LINK.FOOTER;
 let android = CONSTANTS.DEFAULT_APP_LINK.ANDROID;
 let ios = null;
 let template = await clientConfigDB.getClientConfig({clientId, provider: CONSTANTS.CLIENT_CONFIG_PROVIDER.WATEMPLATE, type: CONSTANTS.CLIENT_CONFIG_TYPE.WAONBOARDING});
 if(template) {
    onboardingTemplate = template.value;
 }
 let footerData = await clientConfigDB.getClientConfig({clientId, provider: CONSTANTS.CLIENT_CONFIG_PROVIDER.WATEMPLATE, type: CONSTANTS.CLIENT_CONFIG_TYPE.FOOTER});
 if(footerData) {
  footer = footerData.value;
 }

 let androidData = await clientConfigDB.getClientConfig({clientId, provider: CONSTANTS.CLIENT_CONFIG_PROVIDER.APP, type: CONSTANTS.CLIENT_CONFIG_TYPE.ANDROID});
 if(androidData) {
  android = androidData.value;
  ios = null
 }

 let iosData = await clientConfigDB.getClientConfig({clientId, provider: CONSTANTS.CLIENT_CONFIG_PROVIDER.APP, type: CONSTANTS.CLIENT_CONFIG_TYPE.IOS});
 if(iosData) {
  ios = iosData.value;
 }

 await settingsDB.updateDefaultSettings({id, onboardingTemplate, footer, android,  ios});

 const isTenantOnboardEnabled = await settingsDB.getEnabledTenantOnboard({
   clientId,
 });

 if (isTenantOnboardEnabled && isTenantOnboardEnabled.length > 0) {
   await settingsDB.updateTenantOnboard({
      id,
      onboardWelcome: 1,
   })
 }
};

export default setDefaultNotificationSettings;
