defmodule TmsCore do @moduledoc """ TmsCore - Terminal Management System Core This OTP application contains the core terminal management domain logic. It can be enabled/disabled via config: config :tms_core, :enabled, true # default: true ## Public API - `TmsCore.Terminal` - CRUD and query operations for terminals ## PubSub Terminal domain events are broadcast on the shared PubSub under the `"device_updates"` topic. To subscribe from another app: TmsCore.subscribe_to_device_updates() The PubSub server name is configured via: config :tms_core, :pubsub_server, DaProductApp.PubSub """ @doc "Subscribe to device/terminal update events." def subscribe_to_device_updates do pubsub = Application.get_env(:tms_core, :pubsub_server, DaProductApp.PubSub) Phoenix.PubSub.subscribe(pubsub, "device_updates") end @doc "Unsubscribe from device/terminal update events." def unsubscribe_from_device_updates do pubsub = Application.get_env(:tms_core, :pubsub_server, DaProductApp.PubSub) Phoenix.PubSub.unsubscribe(pubsub, "device_updates") end end