Description
Hi! I should I handle the following scenarios
a) User wants to create a Meeting. To create a meeting, user must have an active subscription. How should I implement this logic as Subscription and Meeting are in different modules? Should I expose in subscription module an CheckActiveSubscriptionIntegrationEvent in subscription modulo?
b) Lets says that when an user create a Meeting, user should be automatically billed a small booking fee and user must have credits.How should i implement this logic? I thought the workflow above but I don't know how to handle validations.
1) Meeting module validate Meeting creation (lets say, validate if user is allowed and if there isn't any other event in same date);
2) If valid, run an CreateBillingToUserIntegrationEvent (Payment module)
3) CreateBillingToUserIntegrationEvent should validate if there are credits. if so, create billing, if not, return an validation error;
4) If errors, rollback;
My concerns:
- It seems not too efficient as meeting would be posted to db and rolled back if CreateBillingToUserIntegrationEvent runs an error;
- Implementing "credit validation rule" in "meeting module" seems wrong as this is an payment rule .
thanks!