import { Column, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn, } from "typeorm"; import { Local, Plan } from ".."; @Entity({ name: "local_plan", comment: "Tabla para el manejo de los planes de los locales.", }) export class LocalPlan { @PrimaryGeneratedColumn({ type: "int", comment: "Número de identificación (ID) único de cada registro.", }) id: number; @ManyToOne(() => Plan, (plan) => plan.local_plans, { onDelete: "CASCADE", onUpdate: "NO ACTION", }) @JoinColumn({ name: "plan" }) plan: Plan; @ManyToOne(() => Local, (local) => local.locals_plan, { onDelete: "CASCADE", onUpdate: "NO ACTION", }) @JoinColumn({ name: "local" }) local: Local; @Column({ default: 0, type: "int", width: 1, comment: "Valor de tipo numérico para saber sí el local tiene el plan mensual o anual:\n\n 1. Mensual. \n\n2. Anual.", }) type: number; @Column({ type: "decimal", precision: 10, scale: 2, comment: "Precio por el plan del local.", }) price: number; @Column({ type: "json", nullable: true, default: null, comment: "Por si necesitamos agregar más elementos a la tabla. \n\nEsto se comporta como un Objeto guardado en la columna.", }) settings: any | null; @Column({ type: "datetime", default: () => "CURRENT_TIMESTAMP", comment: "Fecha de inicio del registro.", }) start_date: Date; @Column({ type: "datetime", comment: "Fecha de finalización del registro.", }) end_date: Date; @Column({ default: 1, type: "int", width: 1, comment: "Estado del plan del local, es decir: \n\n1. Activo: El plan está vigente. \n\n0. Inactivo: El plan ha caducado.", }) status: number; }