85a0031a78
- 新增 exchanges/ 模块:MarketDataFeed 统一接口、BaseExchangeAdapter 抽象基类、 BinanceAdapter 完整实现(WebSocket + REST) - WebSocket 层基于 binance 官方 SDK 的 WebsocketClient,自动多路复用与断线重连 - REST 层使用 MainClient(Spot),实现 fetchKlines 自动分页补拉 + fetchMarkets 元数据解析 - 数据标准化:Ticker/Trade/OrderBook/Kline 类型定义与 Binance 原生格式互转 - 引入 RxJS Subject 作为统一事件流管道,按 eventType 运行时路由分发 - 重构 config/:YAML 驱动配置加载 + 零依赖运行时校验(fail-fast) - 重构 db/:TypeORM DataSource 配置 + TimescaleDB K 线 Hypertable 实体 - 新增 utils/logger.ts:Pino 结构化日志(开发环境 pino-pretty 彩色输出) - 新增 env.yaml 作为 TS/Python 共享的统一环境配置源 - 删除旧版手写 SQL schema 与散落配置文件,收敛到 TypeORM 实体管理 - 安装 rxjs@7.8.2 依赖
33 lines
1.1 KiB
TypeScript
33 lines
1.1 KiB
TypeScript
// ============================================================
|
|
// common.entity.ts — 实体公共基类
|
|
// ============================================================
|
|
// 所有关系实体(TypeORM 管理域)继承此类,统一:
|
|
// - id: UUID 主键
|
|
// - created_at: 记录创建时间(自动填充)
|
|
// - updated_at: 最后更新时间(自动填充)
|
|
//
|
|
// TimescaleDB K 线实体(@timescaledb/typeorm 管理域)不继承此类,
|
|
// 因为它们需要 @TimeColumn() 等特定装饰器。
|
|
// ============================================================
|
|
|
|
import {
|
|
BaseEntity,
|
|
PrimaryGeneratedColumn,
|
|
CreateDateColumn,
|
|
UpdateDateColumn,
|
|
} from "typeorm";
|
|
|
|
export abstract class CommonBaseEntity extends BaseEntity {
|
|
/** UUID 主键(非自增整数,便于分布式场景) */
|
|
@PrimaryGeneratedColumn("uuid")
|
|
id!: string;
|
|
|
|
/** 记录创建时间 */
|
|
@CreateDateColumn({ type: "timestamptz", name: "created_at" })
|
|
createdAt!: Date;
|
|
|
|
/** 最后更新时间(每次 UPDATE 自动刷新) */
|
|
@UpdateDateColumn({ type: "timestamptz", name: "updated_at" })
|
|
updatedAt!: Date;
|
|
}
|