View Source Statestores.Adapters.ProjectionBehaviour behaviour (spawn_statestores v2.0.0-RC1)
Defines the default behavior for each Statestore Provider.
Summary
Types
@type metadata_key() :: String.t()
@type metadata_value() :: String.t()
@type page() :: integer()
@type page_data() :: Scrivener.Page.t()
@type page_size() :: integer()
@type projection() :: Statestores.Schemas.Projection.t()
@type projection_id() :: String.t()
@type projection_name() :: String.t()
@type projections() :: [Statestores.Schemas.Projection.t()]
@type revision() :: integer()
@type time_end() :: String.t()
@type time_start() :: String.t()
Callbacks
@callback create_table(projection_name()) :: {:ok, String.t()}
@callback default_port() :: <<_::32>>
@callback get_all(projection_name(), page(), page_size()) :: {:error, any()} | {:ok, page_data()}
@callback get_all_by_projection_id( projection_name(), projection_id(), page(), page_size() ) :: {:error, any()} | {:ok, page_data()}
@callback get_by_interval( projection_name(), time_start(), time_end(), page(), page_size() ) :: {:error, any()} | {:ok, page_data()}
get_by_projection_id_and_interval( projection_name, projection_id, time_start, time_end, page, page_size )
@callback get_by_projection_id_and_interval( projection_name(), projection_id(), time_start(), time_end(), page(), page_size() ) :: {:error, any()} | {:ok, page_data()}
@callback get_last(projection_name()) :: {:error, any()} | {:ok, projection()}
@callback get_last_by_projection_id(projection_name(), projection_id()) :: {:error, any()} | {:ok, projection()}
@callback save(projection()) :: {:error, any()} | {:ok, projection()}
@callback search_by_metadata( projection_name(), metadata_key(), metadata_value(), page(), page_size() ) :: {:error, any()} | {:ok, page_data()}
search_by_projection_id_and_metadata( projection_name, projection_id, metadata_key, metadata_value, page, page_size )
@callback search_by_projection_id_and_metadata( projection_name(), projection_id(), metadata_key(), metadata_value(), page(), page_size() ) :: {:error, any()} | {:ok, page_data()}