import { Column, CreateDateColumn, Entity, OneToMany, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
import { ApplicationForwardUser } from './application-forward-user.entity';

@Entity({ name: 'application_forwards' })
export class ApplicationForward {
  @PrimaryGeneratedColumn('uuid') id!: string;

  @Column({ type: 'varchar', name: 'application_id' }) applicationId!: string;
  @Column({ type: 'varchar', name: 'status_type' }) statusType!: string;
  @Column({ type: 'varchar', nullable: true }) comment?: string;
  @Column({ type: 'varchar', name: 'forwarded_by_id', nullable: true }) forwardedById?: string;
  @Column({ type: 'varchar', name: 'forwarded_by_name', nullable: true }) forwardedByName?: string;
  @Column({ type: 'varchar', name: 'forward_to_type', nullable: true }) forwardToType?: string;
  @Column({ type: 'varchar', name: 'forward_to_id', nullable: true }) forwardToId?: string;
  @Column({ type: 'varchar', name: 'forward_to_name', nullable: true }) forwardToName?: string;

  @OneToMany(() => ApplicationForwardUser, (u) => u.forward, { cascade: true, eager: true })
  users?: ApplicationForwardUser[];

  @CreateDateColumn({ name: 'created_at' }) createdAt!: Date;
  @UpdateDateColumn({ name: 'updated_at' }) updatedAt!: Date;
}
