@cfxlabsinc/b2b-services
    Preparing search index...

    Variable rewardTransactionViewConst

    rewardTransactionView: PgViewWithSelection<
        "reward_transaction_view",
        false,
        {
            accountId: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            accountName: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            amount: PgBuildColumn<
                "reward_transaction_view",
                SetNotNull<PgNumericBuilder>,
                {
                    data: string;
                    dataType: "string numeric";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: true;
                    tableName: "reward_transaction_view";
                },
            >;
            bankId: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            bankName: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            bankTransactionId: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            cardFirstName: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            cardId: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            cardLast4: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            cardLastName: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            cardMerchantName: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            cardTransactionType: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            category: PgBuildColumn<
                "reward_transaction_view",
                SetNotNull<PgTextBuilder<[string, ...string[]]>>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: true;
                    tableName: "reward_transaction_view";
                },
            >;
            commitExternalId: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            commitTxId: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            counterpartyName: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            createdAt: PgBuildColumn<
                "reward_transaction_view",
                SetNotNull<PgTimestampBuilder>,
                {
                    data: Date;
                    dataType: "object date";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: true;
                    tableName: "reward_transaction_view";
                },
            >;
            currency: PgBuildColumn<
                "reward_transaction_view",
                SetNotNull<PgTextBuilder<[string, ...string[]]>>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: true;
                    tableName: "reward_transaction_view";
                },
            >;
            customerId: PgBuildColumn<
                "reward_transaction_view",
                SetNotNull<PgTextBuilder<[string, ...string[]]>>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: true;
                    tableName: "reward_transaction_view";
                },
            >;
            customerName: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            description: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            deviceLat: PgBuildColumn<
                "reward_transaction_view",
                PgNumericBuilder,
                {
                    data: string;
                    dataType: "string numeric";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            deviceLong: PgBuildColumn<
                "reward_transaction_view",
                PgNumericBuilder,
                {
                    data: string;
                    dataType: "string numeric";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            entityEmail: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            entityId: PgBuildColumn<
                "reward_transaction_view",
                SetNotNull<PgTextBuilder<[string, ...string[]]>>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: true;
                    tableName: "reward_transaction_view";
                },
            >;
            entityName: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            entityType: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            failureReason: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            fees: PgBuildColumn<
                "reward_transaction_view",
                PgNumericBuilder,
                {
                    data: string;
                    dataType: "string numeric";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            id: PgBuildColumn<
                "reward_transaction_view",
                SetNotNull<PgTextBuilder<[string, ...string[]]>>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: true;
                    tableName: "reward_transaction_view";
                },
            >;
            key: PgBuildColumn<
                "reward_transaction_view",
                SetNotNull<PgTextBuilder<[string, ...string[]]>>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: true;
                    tableName: "reward_transaction_view";
                },
            >;
            method: PgBuildColumn<
                "reward_transaction_view",
                SetNotNull<PgTextBuilder<[string, ...string[]]>>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: true;
                    tableName: "reward_transaction_view";
                },
            >;
            otherWalletAddress: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            otherWalletCustomerId: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            otherWalletCustomerName: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            paymentInstrumentId: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            postBalance: PgBuildColumn<
                "reward_transaction_view",
                PgNumericBuilder,
                {
                    data: string;
                    dataType: "string numeric";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            preBalance: PgBuildColumn<
                "reward_transaction_view",
                PgNumericBuilder,
                {
                    data: string;
                    dataType: "string numeric";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            productQuoteId: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            signature: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            sourceAmount: PgBuildColumn<
                "reward_transaction_view",
                PgNumericBuilder,
                {
                    data: string;
                    dataType: "string numeric";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            sourceCurrency: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            status: PgBuildColumn<
                "reward_transaction_view",
                SetNotNull<PgTextBuilder<[string, ...string[]]>>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: true;
                    tableName: "reward_transaction_view";
                },
            >;
            subType: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            targetAmount: PgBuildColumn<
                "reward_transaction_view",
                PgNumericBuilder,
                {
                    data: string;
                    dataType: "string numeric";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            targetCurrency: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
            type: PgBuildColumn<
                "reward_transaction_view",
                SetNotNull<PgTextBuilder<[string, ...string[]]>>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: true;
                    tableName: "reward_transaction_view";
                },
            >;
            updatedAt: PgBuildColumn<
                "reward_transaction_view",
                SetNotNull<PgTimestampBuilder>,
                {
                    data: Date;
                    dataType: "object date";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: true;
                    tableName: "reward_transaction_view";
                },
            >;
            walletAddress: PgBuildColumn<
                "reward_transaction_view",
                PgTextBuilder<[string, ...string[]]>,
                {
                    data: string;
                    dataType: "string";
                    driverParam: string;
                    enumValues: undefined;
                    generated: undefined;
                    hasDefault: false;
                    hasRuntimeDefault: false;
                    identity: undefined;
                    isAutoincrement: false;
                    isPrimaryKey: false;
                    name: string;
                    notNull: false;
                    tableName: "reward_transaction_view";
                },
            >;
        },
    > = ...

    The reward arm of the transaction search, as a view.

    Same motivation as depositTransactionView (see schema/deposit.ts): the inline 12-arm UNION serialises past RDS Proxy's 16KB parse limit and pins the client session to a connection. Behind a view the runtime statement is tiny.

    Lives here rather than in reward_ledger.ts (which owns the table the body selects FROM) only because reward_claim.ts already imports reward_ledger.ts for its FK: putting the view the other way round makes the two modules cyclic, and since the barrel schema/index.ts re-exports reward_claim first, rewardClaimTable would still be in its TDZ when the view body evaluated — a module-load crash, not a type error.

    Surfaces points earned / spent directly from reward_ledger (method = REWARD). Double-entry: every reward movement writes a CUSTOMER row and an offsetting IDENTITY row. Only the IDENTITY rows are surfaced — the CUSTOMER rows are the offsetting half and would double-count.

    transaction_type is already 'CREDIT' (points earned) / 'DEBIT' (points spent / claimed), so it maps straight to the row type. Three shapes, all from transaction_type + the optional reward_claim:

    • CREDIT -> a reward credit (reward account up)
    • DEBIT, no claim -> an account debit (reward account down)
    • DEBIT, claim with signature -> a reward claim (account down + MOVEUSD paid on-chain to the wallet)

    Three sub-arms, because a claim settles through its own record. The points row above is the reward account's movement; the payout is a ledger_account_withdrawal (redwd_) the claim workflow creates with the claim's id as its idempotency_key, and it gets two more:

    • sub_type = 'CLEARING' — the MOVEUSD debit leaving the ledger account, the settlement leg of the points debit, exactly as the card arm's clearing leg settles its authorization;
    • sub_type = 'RETURN' — the credit back when that withdrawal is voided.

    Those two are the ONLY read-model surface for ledger_account_withdrawal: the table's other rows are the blockchain-withdrawal engine twins, already represented by the withdrawal arm's own wd_ row. Both carry the reward ledger row's rew_ id, not the redwd_ one — the withdrawal is the claim's internal mechanism, not a transaction an operator looks up.

    The points row is off-chain: credits and account debits never touch a wallet, so its wallet_address is NULL and its pre_balance / post_balance stay NULL — the row tracks the reward account, not a wallet, so on-chain balances must not be computed against it. It still carries the claim's settlement signature from reward_claim, which no other arm surfaces, so it stays searchable by it. The two payout sub-arms DO resolve a wallet and its balances: they move MOVEUSD off the ledger account's own wallet.

    The caller-supplied filters live in transaction-services/queries/reward.ts as predicates on this view's own projected columns, because a view takes no parameters. They are plain contract-column comparisons emitted by the shared transactionScalarConditions, so what matters here is what each filtered column projects:

    • customer_idcustomer.external_id.
    • signaturereward_claim.receipt_id gated on receipt_type = 'SOLANA_TRANSACTION_SIGNATURE'. The two writers of a claim receipt (RewardClaimAdminService, reward-services/internal.ts) only ever set receipt_id together with that one receipt_type, so the gate never masks a row a signature search should have matched.

    Changing what those two project silently changes the filters. The column list must also stay identical to the sibling arms, or the UNION breaks.

    securityInvoker is required, not cosmetic — every underlying table has RLS enabled, and without it the view would run with the owner's row visibility and silently bypass the querying role's policies.