feat: create email template for TTO reservation confirmation
feat: implement order notifications service with TTO reservation confirmation handling feat: create migration for TTO booking email webhook trigger
This commit is contained in:
@@ -16,7 +16,7 @@ export interface AccountBenefitStatistics {
|
||||
|
||||
analysisPackagesCount: number;
|
||||
analysisPackagesSum: number;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export const loadCompanyPersonalAccountsBalanceEntries = async ({
|
||||
@@ -38,12 +38,21 @@ export const loadCompanyPersonalAccountsBalanceEntries = async ({
|
||||
.from('account_balance_entries')
|
||||
.select('*')
|
||||
.eq('is_active', true)
|
||||
.in('account_id', accountMemberships.map(({ user_id }) => user_id))
|
||||
.in(
|
||||
'account_id',
|
||||
accountMemberships.map(({ user_id }) => user_id),
|
||||
)
|
||||
.throwOnError();
|
||||
|
||||
const purchaseEntries = accountBalanceEntries.filter(({ entry_type }) => entry_type === 'purchase');
|
||||
const analysesEntries = purchaseEntries.filter(({ is_analysis_order }) => is_analysis_order);
|
||||
const analysisPackagesEntries = purchaseEntries.filter(({ is_analysis_package_order }) => is_analysis_package_order);
|
||||
const purchaseEntries = accountBalanceEntries.filter(
|
||||
({ entry_type }) => entry_type === 'purchase',
|
||||
);
|
||||
const analysesEntries = purchaseEntries.filter(
|
||||
({ is_analysis_order }) => is_analysis_order,
|
||||
);
|
||||
const analysisPackagesEntries = purchaseEntries.filter(
|
||||
({ is_analysis_package_order }) => is_analysis_package_order,
|
||||
);
|
||||
|
||||
return {
|
||||
accountBalanceEntries,
|
||||
@@ -51,9 +60,12 @@ export const loadCompanyPersonalAccountsBalanceEntries = async ({
|
||||
analysisPackagesEntries,
|
||||
companyAccountsCount: count || 0,
|
||||
purchaseEntries,
|
||||
purchaseEntriesTotal: purchaseEntries.reduce((acc, { amount }) => acc + Math.abs(amount || 0), 0),
|
||||
purchaseEntriesTotal: purchaseEntries.reduce(
|
||||
(acc, { amount }) => acc + Math.abs(amount || 0),
|
||||
0,
|
||||
),
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
export const loadAccountBenefitStatistics = async (
|
||||
accountId: string,
|
||||
@@ -86,10 +98,16 @@ export const loadAccountBenefitStatistics = async (
|
||||
totalSum: purchaseEntriesTotal,
|
||||
|
||||
analysesCount: analysesEntries.length,
|
||||
analysesSum: analysesEntries.reduce((acc, { amount }) => acc + Math.abs(amount || 0), 0),
|
||||
analysesSum: analysesEntries.reduce(
|
||||
(acc, { amount }) => acc + Math.abs(amount || 0),
|
||||
0,
|
||||
),
|
||||
|
||||
analysisPackagesCount: analysisPackagesEntries.length,
|
||||
analysisPackagesSum: analysisPackagesEntries.reduce((acc, { amount }) => acc + Math.abs(amount || 0), 0),
|
||||
analysisPackagesSum: analysisPackagesEntries.reduce(
|
||||
(acc, { amount }) => acc + Math.abs(amount || 0),
|
||||
0,
|
||||
),
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user