database design – Designing a call list system

I am designing a web application where it’s purpose is to assist callers to make calls to a list of people weekly.

Some terminology

  • A Registrant is a user that receives the calls weekly.
  • A Caller is a user that makes a call to the registrants.
  • A Call Event is a object in the database that shows a call was made to a registrant. It has a
    bunch of items against it such as notes, call outcome (failed, rescheduled, success)…

When a registrant is created in the system they provide a list of days they are available to receive a call each week. This is stored as an array against the registrant object called “registrantAvailability: number()” (0 … 6, 0 = Sunday, 6 = Saturday).

I then want to use this data to display of calls for the day, if they are pending or if they have become a call event. This is where my question lies.

Would it be best to have the list of pending calls as a call event document, and would these call event documents be created via a microservice. Or would it be better to combine a query and the output of the call events into a single returned array.

If there is any further clarification I can provide please let me know.