import { Column, Entity, OneToMany, PrimaryGeneratedColumn } from "typeorm"; import { Bank, CountryHoliday } from ".."; import { Region } from "./Region"; @Entity({ comment: "Países donde está disponible la plataforma." }) export class Country { @PrimaryGeneratedColumn({ type: "int", comment: "Número de identificación (ID) único de cada registro.", }) id: number; @Column({ length: 10, type: "varchar", comment: "Código del país." }) code: string; @Column({ length: 50, type: "varchar", comment: "Nombre del país." }) name: string; @Column({ length: 10, type: "varchar", comment: "Usamos esta columna para saber la moneda del país y sugerírsela al usuario o al local.", }) currency: string; @Column({ length: 10, type: "varchar", comment: "Prefijo para los números de teléfono.", }) prefix: string; @Column({ type: "varchar", length: 15, comment: "Estructura que tiene el teléfono en ese país.", }) structure_phone: string; @Column({ type: "json", nullable: true, default: null, comment: "Esta columna de tipo JSON nos sirve para agregar toda la información que se necesita a nivel de información legal de la empresa que se registre, ya que para cada país cambia la información.", }) legal_information: any | null; @Column({ type: "json", nullable: true, default: null, comment: "Columna de tipo JSON para almacenar la información que se necesita para la información del representante legal de la empresa.", }) legal_agent: any | null; @Column({ type: "json", nullable: true, default: null, comment: "Columna de tipo JSON para almacenar información adicional sobre el país.", }) details: any | null; @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(() => Region, (region) => region.country) regions: Region[]; @OneToMany(() => Bank, (bank) => bank.country) banks: Bank[]; @OneToMany(() => CountryHoliday, (countryHoliday) => countryHoliday.country) country_holidays: CountryHoliday[]; }