UNPKG

@copytrade/unified-broker

Version:

Unified broker interface library for Indian stock market brokers with plugin architecture

124 lines 4.81 kB
export interface User { id: number | string; email: string; name: string; password: string; created_at: string; updated_at: string; } export interface CreateUserData { email: string; name: string; password: string; } export interface UpdateUserData { email?: string; name?: string; password?: string; } export interface ConnectedAccount { id: number | string; user_id: number | string; broker_name: string; account_id: string; user_name: string; email: string; broker_display_name: string; exchanges: string; products: string; encrypted_credentials: string; created_at: string; updated_at: string; } export interface CreateConnectedAccountData { user_id: number | string; broker_name: string; account_id: string; user_name: string; email: string; broker_display_name: string; exchanges: string[]; products: any[]; credentials: any; } export interface OrderHistory { id: number | string; user_id: number | string; account_id: number | string; broker_name: string; broker_order_id: string; symbol: string; action: 'BUY' | 'SELL'; quantity: number; price: number; order_type: 'MARKET' | 'LIMIT' | 'SL-LIMIT' | 'SL-MARKET'; status: 'PLACED' | 'PENDING' | 'EXECUTED' | 'CANCELLED' | 'REJECTED' | 'PARTIALLY_FILLED'; exchange: string; product_type: string; remarks: string; executed_at: string; created_at: string; account_info?: { account_id: string; user_name: string; email: string; }; } export interface CreateOrderHistoryData { user_id: number | string; account_id: number | string; broker_name: string; broker_order_id: string; symbol: string; action: 'BUY' | 'SELL'; quantity: number; price: number; order_type: 'MARKET' | 'LIMIT' | 'SL-LIMIT' | 'SL-MARKET'; status?: 'PLACED' | 'PENDING' | 'EXECUTED' | 'CANCELLED' | 'REJECTED' | 'PARTIALLY_FILLED'; exchange?: string; product_type?: string; remarks?: string; executed_at: string; } export interface OrderFilters { status?: string; symbol?: string; brokerName?: string; startDate?: string; endDate?: string; action?: 'BUY' | 'SELL'; search?: string; } /** * Database Adapter Interface * Provides a unified interface for different database implementations (MongoDB, etc.) */ export interface IDatabaseAdapter { initialize(): Promise<void> | void; close(): Promise<void> | void; isConnected(): boolean; createUser(userData: CreateUserData): Promise<User> | User; findUserById(id: number | string): Promise<User | null> | User | null; findUserByEmail(email: string): Promise<User | null> | User | null; updateUser(id: number | string, userData: UpdateUserData): Promise<User | null> | User | null; deleteUser(id: number | string): Promise<boolean> | boolean; getUserCount(): Promise<number> | number; searchUsers(query: string): Promise<User[]> | User[]; createConnectedAccount(accountData: CreateConnectedAccountData): Promise<ConnectedAccount> | ConnectedAccount; getConnectedAccountsByUserId(userId: number | string): Promise<ConnectedAccount[]> | ConnectedAccount[]; getConnectedAccountById(id: number | string): Promise<ConnectedAccount | null> | ConnectedAccount | null; updateConnectedAccount(id: number | string, accountData: Partial<CreateConnectedAccountData>): Promise<ConnectedAccount | null> | ConnectedAccount | null; deleteConnectedAccount(id: number | string): Promise<boolean> | boolean; createOrderHistory(orderData: CreateOrderHistoryData): Promise<OrderHistory> | OrderHistory; getOrderHistoryById(id: number | string): Promise<OrderHistory | null> | OrderHistory | null; getOrderHistoryByUserId(userId: number | string, limit?: number, offset?: number): Promise<OrderHistory[]> | OrderHistory[]; getOrderHistoryByUserIdWithFilters(userId: number | string, limit?: number, offset?: number, filters?: OrderFilters): Promise<OrderHistory[]> | OrderHistory[]; updateOrderStatus(id: number | string, status: string): Promise<boolean> | boolean; updateOrderStatusByBrokerOrderId(brokerOrderId: string, status: string): Promise<boolean> | boolean; deleteOrderHistory(id: number | string): Promise<boolean> | boolean; getAllOrderHistory(limit?: number, offset?: number): Promise<OrderHistory[]> | OrderHistory[]; getOrderCountByUserIdWithFilters(userId: number | string, filters?: OrderFilters): Promise<number> | number; saveUserNotificationPreferences(preferences: any): Promise<boolean> | boolean; getUserNotificationPreferences(userId: number | string): Promise<any> | any; } //# sourceMappingURL=IDatabaseAdapter.d.ts.map