import { Column, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn, } from "typeorm"; import { Partner } from ".."; @Entity({ comment: "Tabla creada para llevar el control de las sesiones (partner)", name: "partner_session", }) export class PartnerSession { @PrimaryGeneratedColumn({ type: "int", comment: "Número de identificación (ID) único de cada registro.", }) id: number; @ManyToOne(() => Partner, (partner) => partner.partners_session, { onDelete: "CASCADE", onUpdate: "NO ACTION", }) @JoinColumn({ name: "partner" }) partner: Partner; @Column({ type: "int", default: 1, comment: "Plataforma a la que está inciando sesión:\r\n1. Administrador.\r\n2. Portal - Terminal.", }) platform: number; @Column({ length: 255, type: "varchar", comment: "Token generado para la sesión.", }) token: string; @Column({ length: 255, type: "varchar", comment: "Dirección IP de donde está accediendo.", }) ip_address: string; @Column({ type: "datetime", comment: "Fecha de inicio de la sesión.", }) start_time: Date; @Column({ type: "datetime", nullable: true, default: null, comment: "Fecha de finalización de la sesión.", }) finish_time: Date | null; @Column({ default: 1, type: "int", width: 1, comment: "Estado de la sesión:\r\n1. Activa.\r\n2. Expirada.\r\n3. Revocada.", }) status: number; @Column({ type: "datetime", comment: "Fecha de creación del registro.", default: () => "CURRENT_TIMESTAMP", }) created: Date; @Column({ type: "datetime", nullable: true, comment: "Fecha de actualización del registro.", default: null, onUpdate: "CURRENT_TIMESTAMP", }) updated: Date | null; }