import { Column, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn, } from "typeorm"; import { Master } from ".."; import { DateTransformer } from "../transformers/dateTransformer"; import { jsonTransformer } from "../transformers/jsonTransformer"; import { Partner } from "./Partner"; @Entity({ name: "verify_local", comment: "Tabla creada para almacenar la información del local que el administrador (partner) ingrese para su aprobación.", }) export class VerifyLocal { @PrimaryGeneratedColumn({ type: "int", comment: "Número de identificación (ID) único de cada registro.", }) id: number; @ManyToOne(() => Partner, (partner) => partner.verifyLocals, { onDelete: "CASCADE", onUpdate: "NO ACTION", }) @JoinColumn({ name: "partner" }) partner: Partner; @ManyToOne(() => Master, (master) => master.verifyLocals, { onDelete: "RESTRICT", onUpdate: "NO ACTION", }) @JoinColumn({ name: "assigned_master" }) assigned_master: Master; @Column({ type: "longtext", transformer: jsonTransformer, comment: "Campos que el usuario (partner) agrega al nuevo local.", }) local_information: any; @Column({ type: "longtext", transformer: jsonTransformer, comment: "Estructura de paso información básica.", }) basic_information: any; @Column({ type: "longtext", transformer: jsonTransformer, nullable: true, default: null, comment: "Estructura de paso configuración.", }) settings: any | null; @Column({ type: "longtext", transformer: jsonTransformer, nullable: true, default: null, comment: "Estructura de paso horarios de atención.", }) opening_hours: any | null; @Column({ type: "longtext", transformer: jsonTransformer, comment: "Estructura de paso terminales y usuarios.", }) terminal_users: any; @Column({ type: "longtext", transformer: jsonTransformer, comment: "Estructura de paso terminales y usuarios.", }) terminals: any; @Column({ type: "text", nullable: true, default: null, transformer: jsonTransformer, comment: "Información adicional del local para su verificación.", }) details: any | null; @Column({ type: "datetime", transformer: new DateTransformer(), comment: "Fecha de creación del registro.", }) created: Date; @Column({ type: "datetime", nullable: true, default: null, transformer: new DateTransformer(), comment: "Fecha de verificación del registro.", }) verification_date: Date | null; @Column({ type: "datetime", transformer: new DateTransformer(), comment: "Fecha de actualización de los nuevos cambios del registro.", }) update_partner: Date; @Column({ default: 1, type: "int", width: 1, comment: "Este campo hace referencia al estado que tiene la verificación del local, es decir:\r\n1. Pendiente de verificación (Pending verification): Este estado hace referencia a que el usuario ya creó el local y lo mandó a verificación, entonces, le queda al master validar y aprobar o rechazar.\r\n\r\n2. Rechazado (Rejected): Hace referencia a que el master verificó y por alguna razón rechazó la información de la creación del local.\r\n\r\n3. Aprobado (approved): Hace referencia a que la información y se procede a la realización del pago (Si hay un plan, no debería hacer el pago, eso es automático).", }) status: number; @Column({ default: 1, type: "int", width: 1, comment: "Visible al usuario: 1 El registro es visto por el administrador en los locales verificados.0 El registro no es visto para el administrador y pasa a la papelera de reciclaje", }) visible: number; }