// ============================================================
// 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;
}
