import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, JoinColumn } from 'typeorm';
import { DecisionTree } from '../decision-trees/decision-tree.entity';

@Entity({ name: 'decision_tree_nodes' })
export class DecisionTreeNode {
  @PrimaryGeneratedColumn({ type: 'bigint' })
  id!: number;

  @Column({ type: 'bigint', name: 'tree_id' })
  treeId!: number;

  @ManyToOne(() => DecisionTree, (tree) => tree.nodes, { onDelete: 'CASCADE' })
  @JoinColumn({ name: 'tree_id' })
  tree?: DecisionTree;

  @Column({ type: 'varchar', length: 64 })
  nodeType!: string;

  @Column({ type: 'json', nullable: true })
  payload?: Record<string, any>;

  @Column({ name: 'order_index', type: 'int', default: 0 })
  orderIndex!: number;
}
