Database persistence plans for CCXT unified structures.
This module does not call a database and does not depend on Ecto. It turns the structure manifest into deterministic insert/upsert metadata that consuming applications can pass to their own Repo layer.
Summary
Types
@type operation() :: :insert | :upsert
@type role() :: :canonical | :history
Functions
@spec normalize_and_plan( Ccxt.StructureSchema.structure(), term(), Ccxt.StructureNormalizer.opts() ) :: {:ok, %{attrs: map() | [map()], plans: [plan()]}} | {:error, term()}
@spec plan(Ccxt.StructureSchema.structure(), role()) :: {:ok, plan()} | {:error, term()}
@spec plans(Ccxt.StructureSchema.structure()) :: {:ok, [plan()]} | {:error, term()}
@spec plans!(Ccxt.StructureSchema.structure()) :: [plan()]