From 519dba72fe85dea1b1909bf6920ff49d48dd0e16 Mon Sep 17 00:00:00 2001 From: Emilio Date: Thu, 20 Nov 2025 10:50:13 -0600 Subject: [PATCH] se agregaron nuevas tablas --- mariadb/aria_log.00000001 | Bin 5144576 -> 5144576 bytes mariadb/aria_log_control | Bin 52 -> 52 bytes src/equipo/dto/create-equipo.dto.ts | 11 ++++++++++- src/equipo/dto/update-equipo.dto.ts | 8 ++++++++ src/equipo/entities/catalogo.entities.ts | 24 +++++++++++++++++++++++ src/equipo/entities/equipo.entity.ts | 14 +++++++++++++ src/equipo/equipo.controller.ts | 12 ++++++++++++ src/equipo/equipo.module.ts | 4 ++++ src/equipo/equipo.service.ts | 24 +++++++++++++++++++++++ 9 files changed, 96 insertions(+), 1 deletion(-) diff --git a/mariadb/aria_log.00000001 b/mariadb/aria_log.00000001 index 6896a6cf558e9cb03304707ff1b236f3f4122aea..c6f62a48a5da79214bd7fd5fccfea1c74abc9c7f 100644 GIT binary patch delta 2326 zcmYk$Jxmh-6h+|*Dqt1Rim2tkK!E}US}0JUg#v{Zii(O_6}6TE1qya>aIlFtVQ^q@ z=-|NM;NV~kCMGgCFgTFt;NakZ#(}{B69;1)Fs93S$(z36o>b~>R_g!jfU=aWgF2+c z%2BTJbVNoS)iLF(K!rN46Ef+figZfFI;}H0E3-;esxp?XghqgQ7FA6EKcN|rB-jD#gciUyp%w6(&<3!~ zp~?Z6AUFXJ2=14Nj4P+wh03O0DAWoPAqzUtYEkYcyM_2%ulc-t*_z6pZBq0GB%j8<^5y) E2X|4T?*IS* delta 176 zcmWl|X)=NV007V_rLvX?S&BloR!do0ge>J2?(zM2cW@3f{pz0^bp+F!c|kA<2eU%L z=0rrzi-}8EuxQD$6|0g`)}*c5kg;jYwyYhy_Uy~aJ8-C==*Y1XC8y4uyKt$jqN=8@ t;mWlex0+h++hJg5Kw diff --git a/mariadb/aria_log_control b/mariadb/aria_log_control index 96aa353ef4440f2310cdd3a5ea461fa36c8779d0..401f3dacf03cf14f6196ff3148b22d69c2ec90f7 100644 GIT binary patch delta 27 gcmXppnII>2V%M%%Mh1q{#eNJxilI;pNH8z}0Bv^#+W-In delta 27 gcmXppnII?jW9HB0j0_CSseTMVia}ZoNH8z}0BUvxM*si- diff --git a/src/equipo/dto/create-equipo.dto.ts b/src/equipo/dto/create-equipo.dto.ts index 6b76feb..0a27b1c 100644 --- a/src/equipo/dto/create-equipo.dto.ts +++ b/src/equipo/dto/create-equipo.dto.ts @@ -51,6 +51,15 @@ export class CreateEquipoDto { @IsInt() id_periferico: number; + @IsInt() + @IsOptional() + id_laboratorio?: number; + + @IsInt() + @IsOptional() + id_proyecto?: number; + @IsNotEmpty() - isImpresora: Boolean; + @IsOptional() + isImpresora?: Boolean; } diff --git a/src/equipo/dto/update-equipo.dto.ts b/src/equipo/dto/update-equipo.dto.ts index 348432c..f3e6633 100644 --- a/src/equipo/dto/update-equipo.dto.ts +++ b/src/equipo/dto/update-equipo.dto.ts @@ -45,4 +45,12 @@ export class UpdateEquipoDto extends PartialType(CreateEquipoDto) { @IsInt() @IsOptional() id_periferico?: number; + + @IsInt() + @IsOptional() + id_proyecto?: number; + + @IsInt() + @IsOptional() + id_laboratorio?: number; } diff --git a/src/equipo/entities/catalogo.entities.ts b/src/equipo/entities/catalogo.entities.ts index 984ef33..5b81d35 100644 --- a/src/equipo/entities/catalogo.entities.ts +++ b/src/equipo/entities/catalogo.entities.ts @@ -18,6 +18,30 @@ export class Uso { equipo: Equipo[]; } +@Entity() +export class Laboratorio { + @PrimaryGeneratedColumn() + id_laboratorio: number; + + @Column({ type: 'varchar', length: 20 }) + laboratorio: string; + + @OneToMany(() => Equipo, (equipo) => equipo.laboratorio) + equipo: Equipo[]; +} + +@Entity() +export class Proyecto { + @PrimaryGeneratedColumn() + id_proyecto: number; + + @Column({ type: 'varchar', length: 10 }) + proyecto: string; + + @OneToMany(() => Equipo, (equipo) => equipo.proyecto) + equipo: Equipo[]; +} + @Entity() export class Marca { @PrimaryGeneratedColumn() diff --git a/src/equipo/entities/equipo.entity.ts b/src/equipo/entities/equipo.entity.ts index 7db82d5..e23b5ab 100644 --- a/src/equipo/entities/equipo.entity.ts +++ b/src/equipo/entities/equipo.entity.ts @@ -9,9 +9,11 @@ import { import { Adscripcion, Estado, + Laboratorio, Marca, Periferico, Procesador, + Proyecto, SistemaOperativo, TipoEquipo, Uso, @@ -83,4 +85,16 @@ export class Equipo { @JoinColumn({ name: 'id_periferico' }) @ManyToOne(() => Periferico, (Periferico) => Periferico.equipo) periferico: Periferico; + + @JoinColumn({ name: 'id_laboratorio' }) + @ManyToOne(() => Laboratorio, (laboratorio) => laboratorio.equipo, { + nullable: true, + }) + laboratorio?: Laboratorio | null; + + @JoinColumn({ name: 'id_proyecto' }) + @ManyToOne(() => Proyecto, (proyecto) => proyecto.equipo, { + nullable: true, + }) + proyecto?: Proyecto | null; } diff --git a/src/equipo/equipo.controller.ts b/src/equipo/equipo.controller.ts index b56e13f..3290117 100644 --- a/src/equipo/equipo.controller.ts +++ b/src/equipo/equipo.controller.ts @@ -106,6 +106,18 @@ export class EquipoController { return this.equipoService.findAllProcesadores(); } + @UseGuards(AuthGuard('jwt')) + @Get('laboratorios') + findLaboratorios() { + return this.equipoService.findAllLaboratorios(); + } + + @UseGuards(AuthGuard('jwt')) + @Get('proyectos') + findProyectos() { + return this.equipoService.findAllProyectos(); + } + @UseGuards(AuthGuard('jwt')) @Get('perifericos') findPerifericos() { diff --git a/src/equipo/equipo.module.ts b/src/equipo/equipo.module.ts index 21eecfe..30574dd 100644 --- a/src/equipo/equipo.module.ts +++ b/src/equipo/equipo.module.ts @@ -12,6 +12,8 @@ import { SistemaOperativo, Procesador, Periferico, + Proyecto, + Laboratorio, } from './entities/catalogo.entities'; import { MovimientoModule } from 'src/movimiento/movimiento.module'; @@ -27,6 +29,8 @@ import { MovimientoModule } from 'src/movimiento/movimiento.module'; SistemaOperativo, Procesador, Periferico, + Proyecto, + Laboratorio, ]), MovimientoModule, ], diff --git a/src/equipo/equipo.service.ts b/src/equipo/equipo.service.ts index 7888a88..59a75c9 100644 --- a/src/equipo/equipo.service.ts +++ b/src/equipo/equipo.service.ts @@ -13,9 +13,11 @@ import * as ExcelJS from 'exceljs'; import { Adscripcion, Estado, + Laboratorio, Marca, Periferico, Procesador, + Proyecto, SistemaOperativo, TipoEquipo, Uso, @@ -55,6 +57,10 @@ export class EquipoService { @InjectRepository(Periferico) private readonly perifericoRepo: Repository, + @InjectRepository(Laboratorio) + private readonly laboratorioRepo: Repository, + @InjectRepository(Proyecto) + private readonly proyectoRepo: Repository, ) {} async deleteEquipo(inventario: string): Promise<{ message: string }> { @@ -183,6 +189,12 @@ export class EquipoService { periferico: equipoNuevo.id_periferico ? { id_periferico: equipoNuevo.id_periferico } : undefined, + laboratorio: equipoNuevo.id_laboratorio + ? { id_laboratorio: equipoNuevo.id_laboratorio } + : undefined, + proyecto: equipoNuevo.id_proyecto + ? { id_proyecto: equipoNuevo.id_proyecto } + : undefined, }; console.log(updateData); @@ -211,6 +223,8 @@ export class EquipoService { 'procesador', 'tipoUso', 'periferico', + 'proyecto', + 'laboratorio', ], }); @@ -271,6 +285,8 @@ export class EquipoService { tipoUso: { id_uso: equipo.id_uso }, marca: { id_marca: equipo.id_marca }, tipoEquipo: { id_tipo_de_equipo: equipo.id_tipo_equipo }, + proyecto: { id_proyecto: equipo.id_proyecto }, + laboratorio: { id_laboratorio: equipo.id_laboratorio }, }; const nuevoEquipo = this.equipoRepository.create( @@ -310,6 +326,14 @@ export class EquipoService { return await this.estadoRepo.find(); } + async findAllProyectos() { + return await this.proyectoRepo.find(); + } + + async findAllLaboratorios() { + return await this.laboratorioRepo.find(); + } + async findAllAdscripciones() { return await this.adscripcionRepo.find(); }