import { Column, Entity, JoinColumn, ManyToOne, OneToMany, PrimaryGeneratedColumn, } from "typeorm"; import { LocalPlan } from ".."; import { Company } from "./Company"; @Entity({ comment: "Planes que tendrá la plataforma para las empresas (company)", }) export class Plan { @PrimaryGeneratedColumn({ type: "int", comment: "Número de identificación (ID) único de cada registro.", }) id: number; @Column({ length: 20, type: "varchar", unique: true, comment: "Código del plan.", }) code: string; @ManyToOne(() => Company, (company) => company.plans_company, { onDelete: "CASCADE", onUpdate: "NO ACTION", }) @JoinColumn({ name: "company" }) company: Company; @Column({ length: 50, type: "varchar", comment: "Id de la variable que se encuentra en los archivos `locale` para el multilenguaje.", }) name: string; @Column({ type: "json", nullable: true, default: null, comment: "Campo de tipo JSON donde se guarda información necesaria para el plan", }) description: any | null; @Column({ type: "int", comment: "Cantidad de locales a los que está el plan.", }) quantity_locals: number; @Column({ type: "datetime", default: () => "CURRENT_TIMESTAMP", comment: "Fecha de creación del registro.", }) created: Date; @Column({ type: "datetime", comment: "Fecha de expiración del registro." }) expiration: Date; @Column({ default: 1, type: "int", width: 1, comment: "Estado del registro, es decir:\r\n1. Activo: Es visible en la plataforma.\r\n0. Inactivo: No será visible en la plataforma.", }) status: number; @OneToMany(() => LocalPlan, (localPlan) => localPlan.plan) local_plans: LocalPlan[]; }