108 lines
2 KiB
TypeScript
108 lines
2 KiB
TypeScript
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;
|
|
}
|