import { Column, Entity, JoinColumn, ManyToOne, OneToMany, PrimaryGeneratedColumn, } from "typeorm"; import { Request } from ".."; import { City } from "./City"; import { User } from "./User"; @Entity("user_address", { comment: "Tabla creada para agregar las direcciones del usuario.\r\n\r\nEsta tabla es util para cuando se tenga la opción de domicilios.", }) export class UserAddress { @PrimaryGeneratedColumn({ type: "int", comment: "Número de identificación (ID) único de cada registro.", }) id: number; @ManyToOne(() => User, (user) => user.addresses, { onDelete: "CASCADE", onUpdate: "NO ACTION", }) @JoinColumn({ name: "user" }) user: User; @ManyToOne(() => City, (city) => city.user_addresses, { onDelete: "RESTRICT", onUpdate: "NO ACTION", }) @JoinColumn({ name: "city" }) city: City; @Column({ length: 120, type: "varchar", comment: "Dirección." }) address: string; @Column({ type: "decimal", precision: 10, scale: 8, comment: "Latitud de la dirección.", }) latitude: number; @Column({ type: "decimal", precision: 10, scale: 8, comment: "Longitud de la dirección.", }) longitude: number; @Column({ type: "varchar", length: 400, nullable: true, default: null, comment: "Detalles de la dirección, si es una casa, un conjunto, el apartamento.", }) details: string | null; @Column({ length: 20, type: "varchar", comment: "Tipo de ubicación:\r\n1. Casa.\r\n2. Oficina.\r\n3. Pareja.\r\n4. Otro.\r\n\r\nEsto me agrega un campo de tipo texto con el tag.", }) tag: string; @Column({ type: "int", width: 1, comment: "Campo que me dice si:\r\n1. Personal: Lo recibo yo.\r\n2. Portería: Lo recibe la portería.", }) delivery_details: number; @Column({ length: 400, type: "varchar", nullable: true, default: null, comment: "Campo para agregar una descripción más detallada de cómo llegar, o donde es la ubicación.", }) description: string; @Column({ comment: "Columna para saber el el registro se eliminó o no:\r\n0. No eliminado.\r\n1. Eliminado.", default: 0, type: "int", width: 1, }) selected: number; @Column({ comment: "CColumna para saber sí la dirección está seleccionada por defecto:\r\n1. Por defecto.\r\n0. No está por defecto.", default: 0, type: "int", width: 1, }) deleted: number; @OneToMany(() => Request, (request) => request.address) requests: Request[]; }