// ============================================================ // exchange.entity.ts — 交易所配置实体 // ============================================================ // 映射到 PostgreSQL exchanges 表,存储已接入的交易所元信息。 // 由 TypeORM 管理(关系数据),不与 TimescaleDB 耦合。 // // 继承 CommonBaseEntity:id (UUID) / created_at / updated_at // ============================================================ import { Entity, Column, OneToMany, } from "typeorm"; import { CommonBaseEntity } from "./common.entity"; @Entity("exchanges") export class Exchange extends CommonBaseEntity { /** 交易所唯一标识(如 binance / okx / bybit) */ @Column("varchar", { length: 50, unique: true }) name!: string; /** 交易所显示名称(如 Binance / OKX / Bybit) */ @Column("varchar", { length: 100 }) label!: string; /** 是否启用该交易所的数据采集 */ @Column("boolean", { default: true }) enabled!: boolean; /** 交易所特定配置(JSON:费率、最小下单量、API 限频等) */ @Column("jsonb", { nullable: true }) config?: Record; /** * 该交易所下的所有交易对。 * 使用字符串引用避免循环依赖(TradingPair 也引用 Exchange)。 */ @OneToMany("TradingPair", "exchange") tradingPairs!: unknown[]; }