import {
  Column,
  CreateDateColumn,
  Entity,
  Index,
  JoinColumn,
  ManyToOne,
  PrimaryGeneratedColumn,
} from "typeorm";
import { Cotizacion } from "./cotizacion.entity";

@Entity("taller_cotizacion_lineas")
export class CotizacionLinea {
  @PrimaryGeneratedColumn()
  id: number;

  @Column({ name: "cotizacion_id" })
  @Index()
  cotizacionId: number;

  @ManyToOne(() => Cotizacion, (c) => c.lineas, { onDelete: "CASCADE" })
  @JoinColumn({ name: "cotizacion_id" })
  cotizacion: Cotizacion;

  @Column({ length: 24 })
  plu: string; // Referencia a maeplu

  @Column({ length: 255 })
  descripcion: string; // Snapshot

  @Column({ name: "precio_unitario", type: "decimal", precision: 12, scale: 2 })
  precioUnitario: number; // Snapshot

  @Column({ type: "decimal", precision: 10, scale: 3, default: 1 })
  cantidad: number;

  @Column({ type: "decimal", precision: 12, scale: 2 })
  subtotal: number;

  @Column({ type: "decimal", precision: 12, scale: 2, default: 0 })
  iva: number;

  @Column({ type: "decimal", precision: 12, scale: 2 })
  total: number;

  @Column({ name: "es_servicio", default: false })
  esServicio: boolean; // Snapshot

  @Column({ default: 0 })
  orden: number;

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