import { workflow } from '@novu/framework';
import { renderFeedbackEmail } from '../emails/feedback';
import { zodControlSchema, zodDelayControlSchema, zodPayloadSchema } from './schemas';
export const AirbnbReview = workflow(
"Airbnb Review",
async ({ step, payload }) => {
/**
* Delay Step
*/
await step.delay(
'delay-1-week',
async (controls) => {
return {
type: "regular",
unit: controls.unit, // 'seconds' | 'minutes' | 'hours' | 'days' | 'weeks' | 'months'
amount: controls.amount, // the number of units to delay workflow execution for
};
},
{
controlSchema: zodDelayControlSchema
}
);
/**
* Email Step
*/
await step.email(
"send-email",
async (controls) => {
return {
subject: controls.emailSubject,
body: renderFeedbackEmail(controls, payload),
};
},
{
controlSchema: zodControlSchema
}
);
},
{
payloadSchema: zodPayloadSchema
},
);