diff --git a/src/app.module.ts b/src/app.module.ts index d707cd9..cc8d160 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -10,6 +10,7 @@ import { CarreraProgramaModule } from './carrera-programa/carrera-programa.modul import { CarritoModule } from './carrito/carrito.module'; import { CronModule } from './cron/cron.module'; import { EquipoModule } from './equipo/equipo.module'; +import { EquipoProgramaModule } from './equipo-programa/equipo-programa.module'; import { HoraExcepcionModule } from './hora-excepcion/hora-excepcion.module'; import { InstitucionModule } from './institucion/institucion.module'; import { InstitucionCarreraModule } from './institucion-carrera/institucion-carrera.module'; @@ -36,6 +37,7 @@ import { CarreraPrograma } from './carrera-programa/entity/carrera-programa.enti import { Carrito } from './carrito/entity/carrito.entity'; import { Dia } from './institucion-dia/entity/dia.entity'; import { Equipo } from './equipo/entity/equipo.entity'; +import { EquipoPrograma } from './equipo-programa/entity/equipo-programa.entity'; import { EquipoTipoEntrada } from './equipo/entity/equipo-tipo-entrada.entity'; import { HoraExcepcion } from './hora-excepcion/entity/hora-excepcion.entity'; import { Infraccion } from './institucion-infraccion/entity/infraccion.entity'; @@ -80,6 +82,7 @@ import { SoapClientModule } from './soap-client/soap-client.module'; Carrito, Dia, Equipo, + EquipoPrograma, EquipoTipoEntrada, HoraExcepcion, Infraccion, @@ -113,6 +116,7 @@ import { SoapClientModule } from './soap-client/soap-client.module'; CarritoModule, CronModule, EquipoModule, + EquipoProgramaModule, HoraExcepcionModule, InstitucionModule, InstitucionCarreraModule, diff --git a/src/equipo-programa/entity/equipo-programa.entity.ts b/src/equipo-programa/entity/equipo-programa.entity.ts new file mode 100644 index 0000000..ecbc21c --- /dev/null +++ b/src/equipo-programa/entity/equipo-programa.entity.ts @@ -0,0 +1,20 @@ +import { Entity, PrimaryGeneratedColumn, ManyToOne, JoinColumn } from 'typeorm'; +import { Equipo } from '../../equipo/entity/equipo.entity'; +import { Programa } from '../../programa/entity/programa.entity'; + +@Entity() +export class EquipoPrograma { + @PrimaryGeneratedColumn() + id_equipo_programa: number; + + @ManyToOne( + () => Equipo, + (equipo) => equipo.programas, + ) + @JoinColumn({ name: 'id_equipo' }) + equipo: Equipo; + + @ManyToOne(() => Programa, (programa) => programa.equipos) + @JoinColumn({ name: 'id_programa' }) + programa: Programa; +} diff --git a/src/equipo-programa/equipo-programa.controller.spec.ts b/src/equipo-programa/equipo-programa.controller.spec.ts new file mode 100644 index 0000000..96dd9a7 --- /dev/null +++ b/src/equipo-programa/equipo-programa.controller.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { EquipoProgramaController } from './equipo-programa.controller'; + +describe('EquipoProgramaController', () => { + let controller: EquipoProgramaController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [EquipoProgramaController], + }).compile(); + + controller = module.get(EquipoProgramaController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/equipo-programa/equipo-programa.controller.ts b/src/equipo-programa/equipo-programa.controller.ts new file mode 100644 index 0000000..292f2aa --- /dev/null +++ b/src/equipo-programa/equipo-programa.controller.ts @@ -0,0 +1,4 @@ +import { Controller } from '@nestjs/common'; + +@Controller('equipo-programa') +export class EquipoProgramaController {} diff --git a/src/equipo-programa/equipo-programa.module.ts b/src/equipo-programa/equipo-programa.module.ts new file mode 100644 index 0000000..7f54f01 --- /dev/null +++ b/src/equipo-programa/equipo-programa.module.ts @@ -0,0 +1,12 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { EquipoProgramaController } from './equipo-programa.controller'; +import { EquipoProgramaService } from './equipo-programa.service'; +import { EquipoPrograma } from './entity/equipo-programa.entity'; + +@Module({ + imports: [TypeOrmModule.forFeature([EquipoPrograma])], + controllers: [EquipoProgramaController], + providers: [EquipoProgramaService], +}) +export class EquipoProgramaModule {} diff --git a/src/equipo-programa/equipo-programa.service.spec.ts b/src/equipo-programa/equipo-programa.service.spec.ts new file mode 100644 index 0000000..b3a172b --- /dev/null +++ b/src/equipo-programa/equipo-programa.service.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { EquipoProgramaService } from './equipo-programa.service'; + +describe('EquipoProgramaService', () => { + let service: EquipoProgramaService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [EquipoProgramaService], + }).compile(); + + service = module.get(EquipoProgramaService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/src/equipo-programa/equipo-programa.service.ts b/src/equipo-programa/equipo-programa.service.ts new file mode 100644 index 0000000..ca5ae1e --- /dev/null +++ b/src/equipo-programa/equipo-programa.service.ts @@ -0,0 +1,12 @@ +import { Injectable } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { EquipoPrograma } from './entity/equipo-programa.entity'; + +@Injectable() +export class EquipoProgramaService { + constructor( + @InjectRepository(EquipoPrograma) + private repository: Repository, + ) {} +} diff --git a/src/equipo/entity/equipo.entity.ts b/src/equipo/entity/equipo.entity.ts index 44e4beb..c53fbbd 100644 --- a/src/equipo/entity/equipo.entity.ts +++ b/src/equipo/entity/equipo.entity.ts @@ -10,7 +10,7 @@ import { Carrito } from '../../carrito/entity/carrito.entity'; import { EquipoTipoEntrada } from './equipo-tipo-entrada.entity'; import { Motivo } from '../../motivo/entity/motivo.entity'; import { Prestamo } from '../../prestamo/entity/prestamo.entity'; -import { Programa } from '../../programa/entity/programa.entity'; +import { EquipoPrograma } from '../../equipo-programa/entity/equipo-programa.entity'; import { Status } from '../../status/entity/status.entity'; @Entity() @@ -40,10 +40,6 @@ export class Equipo { @JoinColumn({ name: 'id_carrito' }) carrito: Carrito; - @ManyToOne(() => Programa, (programa) => programa.equipos) - @JoinColumn({ name: 'id_programa' }) - programa: Programa; - @ManyToOne(() => Status, (status) => status.equipos) @JoinColumn({ name: 'id_status' }) status: Status; @@ -54,6 +50,9 @@ export class Equipo { ) equipoTipoEntradas: EquipoTipoEntrada[]; + @OneToMany(() => EquipoPrograma, (equipoPrograma) => equipoPrograma.equipo) + programas: EquipoPrograma[]; + @OneToMany(() => Motivo, (motivo) => motivo.equipo) motivos: Motivo[]; diff --git a/src/programa/entity/programa.entity.ts b/src/programa/entity/programa.entity.ts index 8aacf6b..bdbe6f2 100644 --- a/src/programa/entity/programa.entity.ts +++ b/src/programa/entity/programa.entity.ts @@ -1,6 +1,6 @@ import { Column, Entity, OneToMany, PrimaryGeneratedColumn } from 'typeorm'; import { CarreraPrograma } from '../../carrera-programa/entity/carrera-programa.entity'; -import { Equipo } from '../../equipo/entity/equipo.entity'; +import { EquipoPrograma } from '../../equipo-programa/entity/equipo-programa.entity'; import { InstitucionPrograma } from '../../institucion-programa/entity/institucion-programa.entity'; @Entity() @@ -17,8 +17,8 @@ export class Programa { ) carrerasPrograma: CarreraPrograma[]; - @OneToMany(() => Equipo, (equipo) => equipo.programa) - equipos: Equipo[]; + @OneToMany(() => EquipoPrograma, (equipoPrograma) => equipoPrograma.programa) + equipos: EquipoPrograma[]; @OneToMany( () => InstitucionPrograma,