import { Column, Entity, JoinTable, ManyToMany, OneToMany, PrimaryColumn, } from "typeorm"; import { LocalPaymentMethod, LocalTableReservePayment, RequestLocalPayment, } from ".."; import { Local } from "./Local"; @Entity("payment_method", { comment: "Métodos de pago qué la plataforma tendrá disponible, estos serán visibles cuando un cliente (local) desee agregarlos para que se vean en los pedidos.", }) export class PaymentMethod { @PrimaryColumn({ type: "int", comment: "Número de identificación (ID) único de cada registro.", }) id: number; @Column({ length: 50, type: "varchar", comment: "Nombre del estado, este campo debe tener el id/key de cada lenguaje. \r\n\r\nVer la carpeta locales del proyecto frontend para ver el id de cada tipo de elemento.", }) name: string; @Column({ length: 50, nullable: true, default: null, type: "varchar", comment: "Descripción del estado, este campo debe tener el id/key de cada lenguaje. \r\n\r\nVer la carpeta locales del proyecto frontend para ver el id de cada tipo de elemento.", }) description: string | null; @Column({ type: "json", nullable: true, default: null, comment: "Campo de tipo JSON donde se pueden agregar columnas u otros elementos que sean necesarios.", }) settings: any | null; @Column({ type: "datetime", default: () => "CURRENT_TIMESTAMP", comment: "Fecha de creación del registro.", }) created: Date; @Column({ default: 1, type: "int", width: 1, comment: "Valida si el estado es visible para mostrar al cliente (local/company): \r\n1. Activo. \r\n0. Inactivo.", }) status: number; @ManyToMany(() => Local, (local) => local.payment_methods) @JoinTable({ name: "local_payment_method", joinColumn: { name: "payment_method", referencedColumnName: "id", }, inverseJoinColumn: { name: "local", referencedColumnName: "id", }, }) locals: Local[]; @OneToMany( () => RequestLocalPayment, (requestLocalPayment) => requestLocalPayment.payment_method, ) payment_methods: RequestLocalPayment[]; @OneToMany( () => LocalTableReservePayment, (localTableReservePayment) => localTableReservePayment.payment_method, ) local_table_reserve_payments: LocalTableReservePayment[]; @OneToMany( () => LocalPaymentMethod, (localPaymentMethod) => localPaymentMethod.payment_method, ) payments_method: LocalPaymentMethod[]; }