import {
  Column,
  CreateDateColumn,
  Entity,
  Index,
  JoinColumn,
  ManyToOne,
  PrimaryGeneratedColumn,
} from "typeorm";
import { TipoDano } from "../../catalogos/entities/tipo-dano.entity";
import { OrdenTrabajo } from "./orden-trabajo.entity";

@Entity("taller_ot_danos")
export class OtDano {
  @PrimaryGeneratedColumn()
  id: number;

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

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

  @Column({ length: 50 })
  zona: string; // 'frontal', 'lateral_izq', 'lateral_der', 'trasero', 'techo', etc.

  @Column({ name: "tipo_dano_id" })
  tipoDanoId: number;

  @ManyToOne(() => TipoDano)
  @JoinColumn({ name: "tipo_dano_id" })
  tipoDano: TipoDano;

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

  @Column({
    name: "posicion_x",
    type: "decimal",
    precision: 5,
    scale: 2,
    nullable: true,
  })
  posicionX: number; // Posición en el SVG (%)

  @Column({
    name: "posicion_y",
    type: "decimal",
    precision: 5,
    scale: 2,
    nullable: true,
  })
  posicionY: number;

  @Column({ name: "foto_url", length: 500, nullable: true })
  fotoUrl: string;

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