ores.trading.balance_guaranteed_swap_instrument

Table of Contents

Represents a Balance Guaranteed Swap instrument where the notional amortises in line with an underlying pool of assets (e.g., mortgages).

Flags

Primary key

UUID uniquely identifying this BGS 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("BalanceGuaranteedSwap")

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")

lockout_days

Optional lockout period in days.

Number of days during which prepayments are restricted.

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)