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:
Danel Kungla
2025-09-30 16:05:43 +03:00
parent 4003284f3a
commit 72f6f2b716
56 changed files with 3692 additions and 294 deletions

View File

@@ -8,6 +8,7 @@ export enum NotificationAction {
PATIENT_ORDER_PROCESSING = 'PATIENT_ORDER_PROCESSING',
PATIENT_FIRST_RESULTS_RECEIVED = 'PATIENT_FIRST_RESULTS_RECEIVED',
PATIENT_FULL_RESULTS_RECEIVED = 'PATIENT_FULL_RESULTS_RECEIVED',
TTO_ORDER_CONFIRMATION = 'TTO_ORDER_CONFIRMATION',
}
export const createNotificationLog = async ({

View File

@@ -430,19 +430,21 @@ export async function readPrivateMessageResponse({
medipostExternalOrderId,
});
if (status.isPartial) {
await createUserAnalysesApi(getSupabaseServerAdminClient())
.updateAnalysisOrderStatus({
medusaOrderId,
orderStatus: 'PARTIAL_ANALYSIS_RESPONSE',
});
await createUserAnalysesApi(
getSupabaseServerAdminClient(),
).updateAnalysisOrderStatus({
medusaOrderId,
orderStatus: 'PARTIAL_ANALYSIS_RESPONSE',
});
hasAnalysisResponse = true;
hasPartialAnalysisResponse = true;
} else if (status.isCompleted) {
await createUserAnalysesApi(getSupabaseServerAdminClient())
.updateAnalysisOrderStatus({
medusaOrderId,
orderStatus: 'FULL_ANALYSIS_RESPONSE',
});
await createUserAnalysesApi(
getSupabaseServerAdminClient(),
).updateAnalysisOrderStatus({
medusaOrderId,
orderStatus: 'FULL_ANALYSIS_RESPONSE',
});
if (IS_ENABLED_DELETE_PRIVATE_MESSAGE) {
await deletePrivateMessage(privateMessageId);
}
@@ -624,9 +626,10 @@ export async function sendOrderToMedipost({
hasAnalysisResults: false,
medusaOrderId,
});
await createUserAnalysesApi(getSupabaseServerAdminClient())
.updateAnalysisOrderStatus({
medusaOrderId,
orderStatus: 'PROCESSING',
});
await createUserAnalysesApi(
getSupabaseServerAdminClient(),
).updateAnalysisOrderStatus({
medusaOrderId,
orderStatus: 'PROCESSING',
});
}

View File

@@ -2,9 +2,10 @@ import { type ClassValue, clsx } from 'clsx';
import Isikukood, { Gender } from 'isikukood';
import { twMerge } from 'tailwind-merge';
import { BmiCategory } from './types/bmi';
import type { BmiThresholds } from '@kit/accounts/types/accounts';
import { BmiCategory } from './types/bmi';
export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs));
}