import {
  Entity,
  PrimaryGeneratedColumn,
  Column,
  CreateDateColumn,
  UpdateDateColumn,
  ManyToOne,
  JoinColumn,
  Index,
} from 'typeorm';
import { NcEntity } from './nc.entity';

/**
 * nc_remarks in scheme_dbs s — a comment/remark on a NEW NC.
 */
@Entity({ name: 'nc_remarks' })
export class NcRemarkEntity {
  @PrimaryGeneratedColumn({ type: 'bigint', unsigned: true })
  id: number;

  @Index()
  @Column({ type: 'bigint', unsigned: true })
  nc_id: number;

  @Column({ type: 'bigint', unsigned: true, nullable: true })
  user_id: number | null;

  @Column({ type: 'text' })
  remark: string;

  @CreateDateColumn({ type: 'datetime' })
  created_at: Date;

  @UpdateDateColumn({ type: 'datetime' })
  updated_at: Date;

  @ManyToOne(() => NcEntity, (nc) => nc.remarks, { onDelete: 'CASCADE' })
  @JoinColumn({ name: 'nc_id' })
  nc: NcEntity;
}
