diff --git a/src/app.module.ts b/src/app.module.ts index 392bb93..766b35a 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -16,14 +16,22 @@ import { MotivoModule } from './motivo/motivo.module'; import { MultaModule } from './multa/multa.module'; import { OperadorModule } from './operador/operador.module'; import { PrestamoModule } from './prestamo/prestamo.module'; +import { ProgramaModule } from './programa/programa.module'; import { StatusModule } from './status/status.module'; import { TipoCarritoModule } from './tipo-carrito/tipo-carrito.module'; import { TipoUsuarioModule } from './tipo-usuario/tipo-usuario.module'; import { UsuarioModule } from './usuario/usuario.module'; +import { CarreraModule } from './carrera/carrera.module'; +import { TipoEntradaModule } from './tipo-entrada/tipo-entrada.module'; +import { EquipoTipoEntradaModule } from './equipo-tipo-entrada/equipo-tipo-entrada.module'; +import { CarreraProgramaModule } from './carrera-programa/carrera-programa.module'; +import { Carrera } from './carrera/carrera.entity'; +import { CarreraPrograma } from './carrera-programa/carrera-programa.entity'; import { Carrito } from './carrito/carrito.entity'; import { Dia } from './dia/dia.entity'; import { Equipo } from './equipo/equipo.entity'; +import { EquipoTipoEntrada } from './equipo-tipo-entrada/equipo-tipo-entrada.entity'; import { HoraExcepcion } from './hora-excepcion/hora-excepcion.entity'; import { Infraccion } from './infraccion/infraccion.entity'; import { Institucion } from './institucion/institucion.entity'; @@ -34,8 +42,10 @@ import { Motivo } from './motivo/motivo.entity'; import { Multa } from './multa/multa.entity'; import { Operador } from './operador/operador.entity'; import { Prestamo } from './prestamo/prestamo.entity'; +import { Programa } from './programa/programa.entity'; import { Status } from './status/status.entity'; import { TipoCarrito } from './tipo-carrito/tipo-carrito.entity'; +import { TipoEntrada } from './tipo-entrada/tipo-entrada.entity'; import { TipoUsuario } from './tipo-usuario/tipo-usuario.entity'; import { Usuario } from './usuario/usuario.entity'; @@ -53,9 +63,12 @@ import { Usuario } from './usuario/usuario.entity'; password: config.get('PASSWORD_DB'), synchronize: true, entities: [ + Carrera, + CarreraPrograma, Carrito, Dia, Equipo, + EquipoTipoEntrada, HoraExcepcion, Infraccion, Institucion, @@ -66,17 +79,22 @@ import { Usuario } from './usuario/usuario.entity'; Multa, Operador, Prestamo, + Programa, Status, TipoCarrito, + TipoEntrada, TipoUsuario, Usuario, ], }; }, }), + CarreraModule, + CarreraProgramaModule, CarritoModule, DiaModule, EquipoModule, + EquipoTipoEntradaModule, HoraExcepcionModule, InfraccionModule, InstitucionModule, @@ -87,8 +105,10 @@ import { Usuario } from './usuario/usuario.entity'; MultaModule, OperadorModule, PrestamoModule, + ProgramaModule, StatusModule, TipoCarritoModule, + TipoEntradaModule, TipoUsuarioModule, UsuarioModule, ], diff --git a/src/carrera-programa/carrera-programa.controller.spec.ts b/src/carrera-programa/carrera-programa.controller.spec.ts new file mode 100644 index 0000000..ffd415d --- /dev/null +++ b/src/carrera-programa/carrera-programa.controller.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { CarreraProgramaController } from './carrera-programa.controller'; + +describe('CarreraProgramaController', () => { + let controller: CarreraProgramaController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [CarreraProgramaController], + }).compile(); + + controller = module.get(CarreraProgramaController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/carrera-programa/carrera-programa.controller.ts b/src/carrera-programa/carrera-programa.controller.ts new file mode 100644 index 0000000..bc46c19 --- /dev/null +++ b/src/carrera-programa/carrera-programa.controller.ts @@ -0,0 +1,4 @@ +import { Controller } from '@nestjs/common'; + +@Controller('carrera-programa') +export class CarreraProgramaController {} diff --git a/src/carrera-programa/carrera-programa.entity.ts b/src/carrera-programa/carrera-programa.entity.ts new file mode 100644 index 0000000..f3d4608 --- /dev/null +++ b/src/carrera-programa/carrera-programa.entity.ts @@ -0,0 +1,23 @@ +import { + Entity, + Column, + PrimaryGeneratedColumn, + ManyToOne, + JoinColumn, +} from 'typeorm'; +import { Carrera } from '../carrera/carrera.entity'; +import { Programa } from '../programa/programa.entity'; + +@Entity() +export class CarreraPrograma { + @PrimaryGeneratedColumn() + id_carrera_programa: number; + + @ManyToOne(() => Programa, (programa) => programa.carrerasPrograma) + @JoinColumn({ name: 'id_programa' }) + programa: Programa; + + @ManyToOne(() => Carrera, (carrera) => carrera.carreraProgramas) + @JoinColumn({ name: 'id_carrera' }) + carrera: Carrera; +} diff --git a/src/carrera-programa/carrera-programa.module.ts b/src/carrera-programa/carrera-programa.module.ts new file mode 100644 index 0000000..3b5cc10 --- /dev/null +++ b/src/carrera-programa/carrera-programa.module.ts @@ -0,0 +1,10 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { CarreraProgramaController } from './carrera-programa.controller'; +import { CarreraPrograma } from './carrera-programa.entity'; + +@Module({ + imports: [TypeOrmModule.forFeature([CarreraPrograma])], + controllers: [CarreraProgramaController], +}) +export class CarreraProgramaModule {} diff --git a/src/carrera/carrera.controller.spec.ts b/src/carrera/carrera.controller.spec.ts new file mode 100644 index 0000000..5b47e2a --- /dev/null +++ b/src/carrera/carrera.controller.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { CarreraController } from './carrera.controller'; + +describe('CarreraController', () => { + let controller: CarreraController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [CarreraController], + }).compile(); + + controller = module.get(CarreraController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/carrera/carrera.controller.ts b/src/carrera/carrera.controller.ts new file mode 100644 index 0000000..e122a69 --- /dev/null +++ b/src/carrera/carrera.controller.ts @@ -0,0 +1,4 @@ +import { Controller } from '@nestjs/common'; + +@Controller('carrera') +export class CarreraController {} diff --git a/src/carrera/carrera.entity.ts b/src/carrera/carrera.entity.ts new file mode 100644 index 0000000..7abe1f7 --- /dev/null +++ b/src/carrera/carrera.entity.ts @@ -0,0 +1,33 @@ +import { + Entity, + Column, + PrimaryGeneratedColumn, + OneToMany, + ManyToOne, + JoinColumn, +} from 'typeorm'; +import { Institucion } from '../institucion/institucion.entity'; +import { Usuario } from '../usuario/usuario.entity'; +import { CarreraPrograma } from '../carrera-programa/carrera-programa.entity'; + +@Entity() +export class Carrera { + @PrimaryGeneratedColumn() + id_carrera: number; + + @Column() + carrera: string; + + @ManyToOne(() => Institucion, (institucion) => institucion.carreras) + @JoinColumn({ name: 'id_institucion' }) + institucion: Institucion; + + @OneToMany(() => Usuario, (usuario) => usuario.carrera) + usuarios: Usuario[]; + + @OneToMany( + () => CarreraPrograma, + (carreraPrograma) => carreraPrograma.carrera, + ) + carreraProgramas: CarreraPrograma[]; +} diff --git a/src/carrera/carrera.module.ts b/src/carrera/carrera.module.ts new file mode 100644 index 0000000..3e28b9a --- /dev/null +++ b/src/carrera/carrera.module.ts @@ -0,0 +1,10 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { CarreraController } from './carrera.controller'; +import { Carrera } from './carrera.entity'; + +@Module({ + imports: [TypeOrmModule.forFeature([Carrera])], + controllers: [CarreraController], +}) +export class CarreraModule {} diff --git a/src/equipo-tipo-entrada/equipo-tipo-entrada.controller.spec.ts b/src/equipo-tipo-entrada/equipo-tipo-entrada.controller.spec.ts new file mode 100644 index 0000000..785785a --- /dev/null +++ b/src/equipo-tipo-entrada/equipo-tipo-entrada.controller.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { EquipoTipoEntradaController } from './equipo-tipo-entrada.controller'; + +describe('EquipoTipoEntradaController', () => { + let controller: EquipoTipoEntradaController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [EquipoTipoEntradaController], + }).compile(); + + controller = module.get(EquipoTipoEntradaController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/equipo-tipo-entrada/equipo-tipo-entrada.controller.ts b/src/equipo-tipo-entrada/equipo-tipo-entrada.controller.ts new file mode 100644 index 0000000..8f17136 --- /dev/null +++ b/src/equipo-tipo-entrada/equipo-tipo-entrada.controller.ts @@ -0,0 +1,4 @@ +import { Controller } from '@nestjs/common'; + +@Controller('equipo-tipo-entrada') +export class EquipoTipoEntradaController {} diff --git a/src/equipo-tipo-entrada/equipo-tipo-entrada.entity.ts b/src/equipo-tipo-entrada/equipo-tipo-entrada.entity.ts new file mode 100644 index 0000000..acae9d4 --- /dev/null +++ b/src/equipo-tipo-entrada/equipo-tipo-entrada.entity.ts @@ -0,0 +1,23 @@ +import { + Entity, + Column, + PrimaryGeneratedColumn, + ManyToOne, + JoinColumn, +} from 'typeorm'; +import { Equipo } from '../equipo/equipo.entity'; +import { TipoEntrada } from '../tipo-entrada/tipo-entrada.entity'; + +@Entity() +export class EquipoTipoEntrada { + @PrimaryGeneratedColumn() + id_equipo_entrada: number; + + @ManyToOne(() => Equipo, (equipo) => equipo.equipoTipoEntradas) + @JoinColumn({ name: 'id_equipo' }) + equipo: Equipo; + + @ManyToOne(() => TipoEntrada, (tipoEntrada) => tipoEntrada.equiposTipoEntrada) + @JoinColumn({ name: 'id_tipo_entrada' }) + tipoEntrada: TipoEntrada; +} diff --git a/src/equipo-tipo-entrada/equipo-tipo-entrada.module.ts b/src/equipo-tipo-entrada/equipo-tipo-entrada.module.ts new file mode 100644 index 0000000..9f817c6 --- /dev/null +++ b/src/equipo-tipo-entrada/equipo-tipo-entrada.module.ts @@ -0,0 +1,10 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { EquipoTipoEntradaController } from './equipo-tipo-entrada.controller'; +import { EquipoTipoEntrada } from './equipo-tipo-entrada.entity'; + +@Module({ + imports: [TypeOrmModule.forFeature([EquipoTipoEntrada])], + controllers: [EquipoTipoEntradaController], +}) +export class EquipoTipoEntradaModule {} diff --git a/src/equipo/equipo.entity.ts b/src/equipo/equipo.entity.ts index 0c95600..da61ff8 100644 --- a/src/equipo/equipo.entity.ts +++ b/src/equipo/equipo.entity.ts @@ -7,9 +7,11 @@ import { JoinColumn, } from 'typeorm'; import { Carrito } from '../carrito/carrito.entity'; -import { Prestamo } from '../prestamo/prestamo.entity'; import { Motivo } from '../motivo/motivo.entity'; +import { Prestamo } from '../prestamo/prestamo.entity'; +import { Programa } from '../programa/programa.entity'; import { Status } from '../status/status.entity'; +import { EquipoTipoEntrada } from '../equipo-tipo-entrada/equipo-tipo-entrada.entity'; @Entity() export class Equipo { @@ -36,9 +38,19 @@ export class Equipo { @JoinColumn({ name: 'id_status' }) status: Status; + @ManyToOne(() => Programa, (programa) => programa.equipos) + @JoinColumn({ name: 'id_programa' }) + programa: Programa; + @OneToMany(() => Motivo, (motivo) => motivo.equipo) motivos: Motivo[]; @OneToMany(() => Prestamo, (prestamo) => prestamo.equipo) prestamos: Prestamo[]; + + @OneToMany( + () => EquipoTipoEntrada, + (equipoTipoEntrada) => equipoTipoEntrada.tipoEntrada, + ) + equipoTipoEntradas: EquipoTipoEntrada[]; } diff --git a/src/institucion/institucion.entity.ts b/src/institucion/institucion.entity.ts index 97dd427..2f0428d 100644 --- a/src/institucion/institucion.entity.ts +++ b/src/institucion/institucion.entity.ts @@ -1,6 +1,7 @@ import { Entity, Column, PrimaryGeneratedColumn, OneToMany } from 'typeorm'; import { InstitucionDia } from '../institucion-dia/institucion-dia.entity'; import { InstitucionInfraccion } from '../institucion-infraccion/institucion-infraccion.entity'; +import { Carrera } from '../carrera/carrera.entity'; import { Modulo } from '../modulo/modulo.entity'; import { Operador } from '../operador/operador.entity'; import { Usuario } from '../usuario/usuario.entity'; @@ -40,6 +41,9 @@ export class Institucion { @OneToMany(() => Modulo, (modulo) => modulo.institucion) modulos: Modulo[]; + @OneToMany(() => Carrera, (carrera) => carrera.institucion) + carreras: Carrera[]; + @OneToMany(() => Operador, (operador) => operador.institucion) operadores: Operador[]; diff --git a/src/programa/programa.controller.spec.ts b/src/programa/programa.controller.spec.ts new file mode 100644 index 0000000..4b24858 --- /dev/null +++ b/src/programa/programa.controller.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { ProgramaController } from './programa.controller'; + +describe('ProgramaController', () => { + let controller: ProgramaController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [ProgramaController], + }).compile(); + + controller = module.get(ProgramaController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/programa/programa.controller.ts b/src/programa/programa.controller.ts new file mode 100644 index 0000000..2230321 --- /dev/null +++ b/src/programa/programa.controller.ts @@ -0,0 +1,4 @@ +import { Controller } from '@nestjs/common'; + +@Controller('programa') +export class ProgramaController {} diff --git a/src/programa/programa.entity.ts b/src/programa/programa.entity.ts new file mode 100644 index 0000000..fd86cd3 --- /dev/null +++ b/src/programa/programa.entity.ts @@ -0,0 +1,21 @@ +import { Entity, Column, PrimaryGeneratedColumn, OneToMany } from 'typeorm'; +import { Equipo } from '../equipo/equipo.entity'; +import { CarreraPrograma } from '../carrera-programa/carrera-programa.entity'; + +@Entity() +export class Programa { + @PrimaryGeneratedColumn() + id_programa: number; + + @Column() + programa: string; + + @OneToMany(() => Equipo, (equipo) => equipo.programa) + equipos: Equipo[]; + + @OneToMany( + () => CarreraPrograma, + (carreraPrograma) => carreraPrograma.programa, + ) + carrerasPrograma: CarreraPrograma[]; +} diff --git a/src/programa/programa.module.ts b/src/programa/programa.module.ts new file mode 100644 index 0000000..acc47d5 --- /dev/null +++ b/src/programa/programa.module.ts @@ -0,0 +1,10 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { ProgramaController } from './programa.controller'; +import { Programa } from './programa.entity'; + +@Module({ + imports: [TypeOrmModule.forFeature([Programa])], + controllers: [ProgramaController], +}) +export class ProgramaModule {} diff --git a/src/tipo-entrada/tipo-entrada.controller.spec.ts b/src/tipo-entrada/tipo-entrada.controller.spec.ts new file mode 100644 index 0000000..c06a398 --- /dev/null +++ b/src/tipo-entrada/tipo-entrada.controller.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { TipoEntradaController } from './tipo-entrada.controller'; + +describe('TipoEntradaController', () => { + let controller: TipoEntradaController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [TipoEntradaController], + }).compile(); + + controller = module.get(TipoEntradaController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/tipo-entrada/tipo-entrada.controller.ts b/src/tipo-entrada/tipo-entrada.controller.ts new file mode 100644 index 0000000..d562265 --- /dev/null +++ b/src/tipo-entrada/tipo-entrada.controller.ts @@ -0,0 +1,4 @@ +import { Controller } from '@nestjs/common'; + +@Controller('tipo-entrada') +export class TipoEntradaController {} diff --git a/src/tipo-entrada/tipo-entrada.entity.ts b/src/tipo-entrada/tipo-entrada.entity.ts new file mode 100644 index 0000000..c7d7dba --- /dev/null +++ b/src/tipo-entrada/tipo-entrada.entity.ts @@ -0,0 +1,17 @@ +import { Entity, Column, PrimaryGeneratedColumn, OneToMany } from 'typeorm'; +import { EquipoTipoEntrada } from '../equipo-tipo-entrada/equipo-tipo-entrada.entity'; + +@Entity() +export class TipoEntrada { + @PrimaryGeneratedColumn() + id_tipo_entrada: number; + + @Column() + tipo_entrada: string; + + @OneToMany( + () => EquipoTipoEntrada, + (equipoTipoEntrada) => equipoTipoEntrada.tipoEntrada, + ) + equiposTipoEntrada: EquipoTipoEntrada[]; +} diff --git a/src/tipo-entrada/tipo-entrada.module.ts b/src/tipo-entrada/tipo-entrada.module.ts new file mode 100644 index 0000000..47525ae --- /dev/null +++ b/src/tipo-entrada/tipo-entrada.module.ts @@ -0,0 +1,10 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { TipoEntradaController } from './tipo-entrada.controller'; +import { TipoEntrada } from './tipo-entrada.entity'; + +@Module({ + imports: [TypeOrmModule.forFeature([TipoEntrada])], + controllers: [TipoEntradaController], +}) +export class TipoEntradaModule {} diff --git a/src/usuario/usuario.entity.ts b/src/usuario/usuario.entity.ts index 58ac470..42956c1 100644 --- a/src/usuario/usuario.entity.ts +++ b/src/usuario/usuario.entity.ts @@ -6,6 +6,7 @@ import { ManyToOne, JoinColumn, } from 'typeorm'; +import { Carrera } from '../carrera/carrera.entity'; import { Institucion } from '../institucion/institucion.entity'; import { Prestamo } from '../prestamo/prestamo.entity'; import { TipoUsuario } from '../tipo-usuario/tipo-usuario.entity'; @@ -31,6 +32,10 @@ export class Usuario { @JoinColumn({ name: 'id_institucion' }) institucion: Institucion; + @ManyToOne(() => Carrera, (carrera) => carrera.usuarios) + @JoinColumn({ name: 'id_carrera' }) + carrera: Carrera; + @ManyToOne(() => TipoUsuario, (tipoUsuario) => tipoUsuario.usuarios) @JoinColumn({ name: 'id_tipo_usuario' }) tipoUsuario: TipoUsuario;