Lockspire. Storage. LogoutStore behaviour
(lockspire v1.6.1)
Copy Markdown
Domain-level persistence contract for durable logout propagation state.
Summary
Types
@type store_error() :: term()
Callbacks
@callback fetch_logout_event_by_event_id(String.t()) :: {:ok, Lockspire.Domain.LogoutEvent.t() | nil} | {:error, store_error()}
@callback list_all_logout_deliveries() :: {:ok, [Lockspire.Domain.LogoutDelivery.t()]} | {:error, store_error()}
@callback list_logout_deliveries(integer()) :: {:ok, [Lockspire.Domain.LogoutDelivery.t()]} | {:error, store_error()}
@callback mark_logout_delivery_enqueued(integer(), integer()) :: {:ok, Lockspire.Domain.LogoutDelivery.t()} | {:error, store_error()}
@callback persist_logout_propagation(Lockspire.Domain.LogoutEvent.t()) :: {:ok, %{ event: Lockspire.Domain.LogoutEvent.t(), deliveries: [Lockspire.Domain.LogoutDelivery.t()] }} | {:error, store_error()}