I'm proposing an enhancement to the Service plugin. These involve changes to the Services model, its configuration, and the functionality of the Featured Upcoming Service Widget.
- As a Services administrator, I want to record the start date and time, and the duration, of each service, so that this data can be shown to visitors, and can be used to control web page content.
- As a Services administrator, I want to specify the URL for each virtual service, as part of maintaining the service entry, so I don't have to put this data in another logically unrelated location.
- As a visitor, I want to see the current service so that I have the information to attend it while it's underway.
- As a Services administrator, I want to include the virtual service URL from the public website from a specified period before each service begins, until a specified period after it completes.
- As a Widgets administrator, I want to include a "join virtual service" button for service during the period when that URL is "available" (see 4. above).
Proposed changes to Services data
- Start DateTime, Duration (specific to each service)
- Virtual Service URL (specific to each service, because the URL should be specific to each one, to inhibit early discovery by malware and bad actors)
Proposed changes to Services configuration
- Virtual Sevice URL preview duration
- Services extended visibility duration
Proposed computed properties of Service entries, internal to drive display logic (and for reference in content below)
- DisplayAsUpcomingService (true/false) is true for at most one service
- The (DisplayAsUpcomingService==true) Service has a computed UpcomingStatus, with values "Upcoming", "Imminent", "Ongoing", "RecentlyCompleted". Other services don't need this property.
See examples of how this might work at VirtualServiceInfo.feature (on github)
Makes a lot of sense to me. I'm wondering how this would work for hybrid services. We'd want to be able to have a physical location as well as the online. If the service contained both, both options would have to be clearly presented to the visitor.
Thanks for the suggestion and detailed description. I agree, the services plugin could include some new features to support virtual services and easier management of service duration. However, we also want to make sure creating a service doesn't become overly complex.
Maybe these could be optional items that are accessible as an option; virtual or not?