import { Column, Entity, JoinColumn, ManyToOne, OneToMany, PrimaryGeneratedColumn, } from "typeorm"; import { LocalTableReservePayment, RequestLocalPayment } from ".."; import { User } from "./User"; @Entity("user_payment_method", { comment: "Tabla creada para almacenar la información de las tarjetas.", }) export class UserPaymentMethod { @PrimaryGeneratedColumn({ type: "int", comment: "ID único de cada registro.", }) id: number; @ManyToOne(() => User, (user) => user.payment_methods, { onDelete: "NO ACTION", onUpdate: "NO ACTION", }) @JoinColumn({ name: "user" }) user: User; @Column({ length: 255, type: "varchar", comment: "Token devuelto por la pasarela de pagos que estemos usando.", }) card_token: string; @Column({ length: 50, type: "varchar", comment: "Ej. Visa, MasterCard, Amex...", }) card_network: string; @Column({ length: 50, type: "varchar", comment: "Ej. Crédito, Débito, Prepago...", }) card_type: string; @Column({ length: 4, type: "varchar", comment: "Últimos 4 dígitos de la tarjeta/método de pago.", }) last_four_digits: string; @Column({ length: 2, type: "varchar", comment: "Mes de expiración de la tarjeta/método de pago.", }) expiration_month: string; @Column({ length: 2, type: "varchar", comment: "Año de expiración de la tarjeta/método de pago.", }) expiration_year: string; @Column({ default: 1, type: "int", width: 1, comment: "Me indica sí la tarjeta/método de pago está o no activa.\r\n1: Activa.\r\n0: Inactiva.", }) status: number; @Column({ default: 0, type: "int", width: 1, comment: "Me indica sí la tarjeta/método de pago está o no eliminada.\r\n0: No eliminado.\r\n1: Eliminado.", }) deleted: number; @Column({ type: "datetime", default: () => "CURRENT_TIMESTAMP", comment: "Fecha de creación del registro.", }) created: Date; @Column({ type: "datetime", nullable: true, default: null, onUpdate: "CURRENT_TIMESTAMP", comment: "Fecha de actualización del registro.", }) updated: Date | null; @OneToMany( () => RequestLocalPayment, (requestLocalPayment) => requestLocalPayment.card, ) cards: RequestLocalPayment[]; @OneToMany( () => LocalTableReservePayment, (localTableReservePayment) => localTableReservePayment.card, ) local_table_reserve_payments: LocalTableReservePayment[]; }