fix(coherence): Add proper TypeScript types for JSONB fields (E-COH-006, ST1.6)
- Added RiskQuestionnaireResponse interface for risk questionnaire responses - Added WithdrawalDestinationDetails interface for withdrawal destinations - Added SnapshotAllocationData interface for portfolio snapshot allocations - Added TradingBotStrategyConfig interface for bot strategy configuration All major JSONB fields now have proper TypeScript interfaces instead of generic Record<string, unknown>. This improves type safety and code clarity. Note: ML module already had proper JSONB typing (TrainingMetrics, etc.) Note: Education module JSONB typing was completed in ST1.5 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
0563d4bc9b
commit
cba5eade62
@ -119,3 +119,32 @@ export interface AgentPerformance {
|
||||
sharpe_ratio: number;
|
||||
win_rate: number;
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// JSONB Field Types (for proper typing of JSONB columns)
|
||||
// ============================================================================
|
||||
|
||||
/**
|
||||
* Type for investment.risk_questionnaire.responses JSONB field
|
||||
* Structure: [{question_id, answer, score}]
|
||||
*/
|
||||
export interface RiskQuestionnaireResponse {
|
||||
question_id: string;
|
||||
answer: string;
|
||||
score: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* Type for investment.withdrawal_requests.destination_details JSONB field
|
||||
*/
|
||||
export interface WithdrawalDestinationDetails {
|
||||
bank_name?: string;
|
||||
account_number?: string;
|
||||
account_holder?: string;
|
||||
routing_number?: string;
|
||||
swift_code?: string;
|
||||
iban?: string;
|
||||
crypto_address?: string;
|
||||
crypto_network?: string;
|
||||
payment_method: 'bank_transfer' | 'crypto' | 'other';
|
||||
}
|
||||
|
||||
@ -126,6 +126,17 @@ export interface RebalanceHistory {
|
||||
createdAt: Date;
|
||||
}
|
||||
|
||||
/**
|
||||
* Type for portfolio_snapshots.allocations JSONB field
|
||||
* Structure: { [asset: string]: { percent: number, value: number, quantity: number } }
|
||||
*/
|
||||
export interface SnapshotAllocationData {
|
||||
percent: number;
|
||||
value: number;
|
||||
quantity: number;
|
||||
avgCost?: number;
|
||||
}
|
||||
|
||||
export interface PortfolioSnapshot {
|
||||
id: string;
|
||||
portfolioId: string;
|
||||
@ -136,7 +147,7 @@ export interface PortfolioSnapshot {
|
||||
unrealizedPnlPercent: number;
|
||||
dayChange: number;
|
||||
dayChangePercent: number;
|
||||
allocations: Record<string, unknown> | null;
|
||||
allocations: Record<string, SnapshotAllocationData> | null;
|
||||
createdAt: Date;
|
||||
}
|
||||
|
||||
|
||||
@ -176,3 +176,30 @@ export interface OrderListResult {
|
||||
limit: number;
|
||||
offset: number;
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// JSONB Field Types (for proper typing of JSONB columns)
|
||||
// ============================================================================
|
||||
|
||||
/**
|
||||
* Type for trading.bots.strategy_config JSONB field
|
||||
* Configuration for trading bot strategies
|
||||
*/
|
||||
export interface TradingBotStrategyConfig {
|
||||
strategy_name?: string;
|
||||
entry_rules?: Record<string, unknown>;
|
||||
exit_rules?: Record<string, unknown>;
|
||||
risk_management?: {
|
||||
max_position_size?: number;
|
||||
stop_loss_percent?: number;
|
||||
take_profit_percent?: number;
|
||||
max_daily_loss?: number;
|
||||
};
|
||||
indicators?: Array<{
|
||||
name: string;
|
||||
params: Record<string, unknown>;
|
||||
}>;
|
||||
timeframes?: Timeframe[];
|
||||
symbols?: string[];
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user