import {
  Column,
  CreateDateColumn,
  Entity,
  JoinColumn,
  ManyToOne,
  PrimaryGeneratedColumn,
} from "typeorm";
import { OrdenTrabajo } from "./orden-trabajo.entity";

export enum TipoEventoOT {
  CREACION = "creacion",
  CAMBIO_ESTADO = "cambio_estado",
  EVIDENCIA_AGREGADA = "evidencia_agregada",
  PRODUCTO_AGREGADO = "producto_agregado",
  COTIZACION_APROBADA = "cotizacion_aprobada",
  FIRMA_CAPTURADA = "firma_capturada",
  OTRO = "otro",
}

@Entity("taller_ot_eventos")
export class OtEvento {
  @PrimaryGeneratedColumn()
  id: number;

  @Column({ name: "ot_id" })
  otId: number;

  @Column({
    type: "enum",
    enum: TipoEventoOT,
    default: TipoEventoOT.OTRO,
  })
  tipo: TipoEventoOT;

  @Column({ type: "text" })
  descripcion: string;

  @Column({ name: "usuario_id", type: "int", nullable: true })
  usuarioId: number | null;

  @CreateDateColumn({ name: "created_at" })
  createdAt: Date;

  @ManyToOne(() => OrdenTrabajo, (ot) => ot.eventos, { onDelete: "CASCADE" })
  @JoinColumn({ name: "ot_id" })
  ordenTrabajo: OrdenTrabajo;
}
