export type ProductAccessibilityState = | 'available' | 'maintenance' | 'product_disabled'; export type TradingBehaviorState = | 'active' | 'global_trade_halt' | 'tenant_disabled' | 'profile_disabled'; export interface ProductControlEnvelope { accessibility: ProductAccessibilityState; trading: TradingBehaviorState; message?: string | null; tenantId?: string | null; profileId?: string | null; updatedAt?: string; } export interface TradingRuntimeSummary { loopRunning: boolean; reconciliationRunning: boolean; lastLoopAt: string | null; lastReconciliationAt: string | null; health: 'healthy' | 'degraded' | 'paused' | 'error'; } export interface AuthorizedTradingAction { id: | 'pause_trading' | 'resume_trading' | 'disable_profile' | 'enable_profile' | 'close_position' | 'acknowledge_alert'; platform: 'web' | 'mobile'; role: 'user' | 'operator' | 'admin'; } export function canExecuteTradingAction( action: AuthorizedTradingAction['id'], platform: AuthorizedTradingAction['platform'], role: AuthorizedTradingAction['role'] ): boolean { if (platform === 'mobile') { return ( role === 'admin' || role === 'operator' || action === 'acknowledge_alert' || action === 'pause_trading' || action === 'resume_trading' ); } return role === 'admin' || role === 'operator' || action === 'acknowledge_alert'; }