import { Column, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn, Unique, } from "typeorm"; import { Product } from "./Product"; import { RequestLocal } from "./RequestLocal"; import { User } from "./User"; @Entity("request_product", { comment: "Productos que están en el pedido.", }) @Unique("unique_request_product", ["request", "product"]) export class RequestProduct { @PrimaryGeneratedColumn({ type: "int", comment: "Número de identificación (ID) único de cada registro.", }) id: number; @ManyToOne( () => RequestLocal, (requestLocal) => requestLocal.request_products, { onDelete: "CASCADE", onUpdate: "NO ACTION", } ) @JoinColumn({ name: "request" }) request: RequestLocal; @ManyToOne(() => Product, (product) => product.request_products, { onDelete: "CASCADE", onUpdate: "NO ACTION", }) @JoinColumn({ name: "product" }) product: Product; @ManyToOne(() => User, (user) => user.request_products, { onDelete: "CASCADE", onUpdate: "NO ACTION", nullable: true, }) @JoinColumn({ name: "user" }) user: User | null; @Column({ type: "int", comment: "Cantidad del producto (product)." }) quantity: number; @Column({ type: "varchar", length: 500, nullable: true, default: null, comment: "Comentarios del producto, si hay alguna sugerencia o solicitud.", }) comments: string; }