defmodule ISO20022.Camt053.Statement do
@moduledoc """
A single account statement from `<Stmt>`.
One `Statement` covers one account for one reporting period.
A single camt.053 `Document` may carry multiple statements (one per account
or per reporting period).
"""
alias ISO20022.Camt053.{Account, Balance, Entry}
@type date_range :: %{from: DateTime.t() | nil, to: DateTime.t() | nil}
@type t :: %__MODULE__{
id: String.t(),
electronic_seq_number: non_neg_integer() | nil,
created_at: DateTime.t() | nil,
from_to_date: date_range() | nil,
account: Account.t(),
balances: [Balance.t()],
entries: [Entry.t()]
}
defstruct [
:id,
:electronic_seq_number,
:created_at,
:from_to_date,
:account,
balances: [],
entries: []
]
end