. namespace core_communication; /** * Class communication_room_base to manage the room operations of communication providers. * * Every plugin that supports room operation must implement/extend this class in the plugin. * * @package core_communication * @copyright 2023 Safat Shahin * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ interface room_chat_provider { /** * Create a provider room when a instance is created. */ public function create_chat_room(): bool; /** * Update a provider room when a instance is updated. */ public function update_chat_room(): bool; /** * Delete a provider room when a instance is deleted. */ public function delete_chat_room(): bool; /** * Generate a room url if there is a room. * * @return string|null */ public function get_chat_room_url(): ?string; }