ores.trading.callable_swap_instrument

Table of Contents

Represents a callable interest rate swap where one party has the right to terminate the swap early on specified call dates.

Flags

Primary key

UUID uniquely identifying this callable swap instrument.

Surrogate key for the instrument record.

Natural keys

Columns

trade_type_code

Trade type code (soft FK to ores_trading_trade_types_tbl).

std::string("CallableSwap")

party_id

Party that owns this instrument.

Set from session variable app.current_party_id.

trade_id

Optional soft FK to the parent trade.

Links instrument to a trade if applicable.

start_date

Swap effective start date.

ISO 8601 date string (YYYY-MM-DD).

std::string("2024-01-15")

maturity_date

Swap maturity date.

Must be after start_date.

std::string("2029-01-15")

call_dates_json

Optional JSON array of call dates.

ISO 8601 date strings when the party may exercise the call option.

call_type

Optional call type: Bermudan or One-Time.

Bermudan allows multiple call dates; One-Time allows exactly one.

description

Optional free-text description.

Human-readable notes about this instrument.

SQL

Flags

C++

The C++ domain class is decomposed into nested sub-structs (the C1202 pattern from PRs #1047/#1071/#1075/#1083/#1085): the implicit scaffolding columns (version, tenant_id, workspace_id, the primary key) and the columns marked :group: identity below fold into an instrument_identity identity; member (see the ores.trading.instrument_identity field-group model), the implicit audit columns fold into an ores::dq::domain::audit_record audit; member (see the ores.dq.audit_record field-group model), and the remaining columns stay flat in between. The SQL schema, DB entity and column lists are unaffected — only the domain class and the mapper's domain-side accesses nest. The entity templates consume these annotations; domain and repository profiles regenerate correctly.

Flags

Repository

Domain includes

#include <chrono>
#include <string>

Conventions

Custom repository methods

See also

Emacs 29.1 (Org mode 9.6.6)