import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn } from 'typeorm'; @Entity() export class Paquete { @PrimaryGeneratedColumn('uuid') idPaquete: string; @Column() idSucursal: string; @Column({ nullable: true }) idLote: string; @Column({ nullable: true }) idCategoria: string; @Column({ nullable: true }) idZonaAlmacenamiento: string; @Column({ nullable: true }) idEmprendimiento: string; // Datos del cliente (receptor) @Column() nombreCliente: string; @Column() codigoPaisCliente: string; @Column() whatsappCliente: string; // Campos de identificación @Column() prefijoSucursal: string; @Column({ type: 'int' }) numeroCorrelativo: number; @Column() letraCorrelativo: string; @Column() color: string; @Column() codigoCompleto: string; // Imágenes @Column() fotoUrl: string; @Column({ unique: true }) tokenRetiro: string; @Column() urlQR: string; // Estado @Column({ type: 'enum', enum: ['RECIBIDO', 'ALMACENADO', 'ENTREGADO', 'DEVUELTO'], default: 'RECIBIDO', }) estado: string; // Recepción @CreateDateColumn() fechaRecepcion: Date; @Column({ type: 'timestamp' }) fechaLimite: Date; @Column() idUsuarioRecepcion: string; // Pago @Column({ default: false }) paquetePagado: boolean; // Cobro Paquetería @Column({ type: 'int', default: 0 }) diasAdicionales: number; @Column({ type: 'decimal', precision: 10, scale: 2, default: 0 }) montoCalculadoPaquete: number; @Column({ type: 'decimal', precision: 10, scale: 2, default: 0 }) montoCobrarPaquete: number; // Saldo del Paquete @Column({ default: false }) saldo: boolean; @Column({ type: 'decimal', precision: 10, scale: 2, default: 0 }) saldoPendiente: number; // Total @Column({ type: 'decimal', precision: 10, scale: 2 }) montoFinal: number; // Entrega @Column({ type: 'timestamp', nullable: true }) fechaEntrega: Date; @Column({ nullable: true }) idUsuarioEntrega: string; }