Scheduling slackbot based on https://github.com/rapidloop/mybot
Probably just have them return a string which will be the message to send, and no longer take in websock.Conn and Message
Then make isAvailable a method on that struct
Lists of Schedulable things, i.e. Support Engineers
- default list
- associated actions
- schedule parameters - i.e. weekly, daily, offset
For each schedule slot (starting with the nearest): Determine a priority for each person. Put the highest priority person (who is available) in the slot.
- Cannot schedule someone for 2 slots in a row. (unless there is no other choice)
- Should be the person who has worked least recently
start everyone at the same priority (int)
when you work a shift your priority increases by num_people. When you don’t work a shift, your priority decreases by 1.
The person with the lowest priority works (if they are available).