diff --git a/src/modules/AT/alumno/student.service.ts b/src/modules/AT/alumno/student.service.ts index a82ffb1..51dfc17 100644 --- a/src/modules/AT/alumno/student.service.ts +++ b/src/modules/AT/alumno/student.service.ts @@ -8,7 +8,7 @@ export class AlumnoService { constructor( @InjectRepository(Alumno, 'dbAT') private readonly studentRepository: Repository, - // @InjectRepository(Carrera) + // @InjectRepository(Carrera, 'dbAT') // private readonly carreraRepository: Repository, ) {} diff --git a/src/modules/AT/alumno_inscrito/alumno_inscrito.controller.ts b/src/modules/AT/alumno_inscrito/alumno_inscrito.controller.ts new file mode 100644 index 0000000..336bbb7 --- /dev/null +++ b/src/modules/AT/alumno_inscrito/alumno_inscrito.controller.ts @@ -0,0 +1,26 @@ +import { Controller, Get, Post, Body, Param } from '@nestjs/common'; +import { AlumnoInscritoService } from './alumno_inscrito.service'; +import { CreateAlumnoInscritoDto } from './dto/create-alumno_inscrito.dto'; +import { AlumnoInscrito } from 'src/database/AT/entities/alumno_inscrito.entity'; + +@Controller('alumno-inscrito') +export class AlumnoInscritoController { + constructor(private readonly alumnoInscritoService: AlumnoInscritoService) {} + + @Post() + async create(@Body() dto: CreateAlumnoInscritoDto): Promise { + return this.alumnoInscritoService.create(dto); + } + + @Get() + async findAll(): Promise { + return this.alumnoInscritoService.findAll(); + } + + @Get(':id_cuenta') + async findByAlumno( + @Param('id_cuenta') id_cuenta: number, + ): Promise { + return this.alumnoInscritoService.findByAlumno(id_cuenta); + } +} diff --git a/src/modules/AT/alumno_inscrito/alumno_inscrito.module.ts b/src/modules/AT/alumno_inscrito/alumno_inscrito.module.ts new file mode 100644 index 0000000..4920a65 --- /dev/null +++ b/src/modules/AT/alumno_inscrito/alumno_inscrito.module.ts @@ -0,0 +1,12 @@ +import { Module } from '@nestjs/common'; +import { AlumnoInscritoService } from './alumno_inscrito.service'; +import { AlumnoInscritoController } from './alumno_inscrito.controller'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { AlumnoInscrito } from 'src/database/AT/entities/alumno_inscrito.entity'; + +@Module({ + imports: [TypeOrmModule.forFeature([AlumnoInscrito], 'dbAT')], + controllers: [AlumnoInscritoController], + providers: [AlumnoInscritoService], +}) +export class AlumnoInscritoModule {} diff --git a/src/modules/AT/alumno_inscrito/alumno_inscrito.service.ts b/src/modules/AT/alumno_inscrito/alumno_inscrito.service.ts new file mode 100644 index 0000000..b16c4c2 --- /dev/null +++ b/src/modules/AT/alumno_inscrito/alumno_inscrito.service.ts @@ -0,0 +1,44 @@ +import { BadRequestException, Injectable } from '@nestjs/common'; +import { CreateAlumnoInscritoDto } from './dto/create-alumno_inscrito.dto'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { AlumnoInscrito } from 'src/database/AT/entities/alumno_inscrito.entity'; + +@Injectable() +export class AlumnoInscritoService { + constructor( + @InjectRepository(AlumnoInscrito, 'dbAT') + private readonly alumnoInscritoRepo: Repository, + ) {} + + async create(dto: CreateAlumnoInscritoDto): Promise { + const existing = await this.alumnoInscritoRepo.findOne({ + where: { + alumno: { id_cuenta: dto.id_cuenta }, + periodo: { id_periodo: dto.id_periodo }, + }, + }); + + if (existing) { + throw new BadRequestException( + 'El alumno ya está inscrito en este periodo y plataforma', + ); + } + + const alumnoInscrito = this.alumnoInscritoRepo.create(dto); + return this.alumnoInscritoRepo.save(alumnoInscrito); + } + + async findAll(): Promise { + return this.alumnoInscritoRepo.find({ + relations: ['alumno', 'periodo', 'plataforma'], + }); + } + + async findByAlumno(id_cuenta: number): Promise { + return this.alumnoInscritoRepo.find({ + where: { alumno: { id_cuenta }, periodo: { id_periodo: 27 } }, + relations: ['alumno', 'periodo', 'plataforma'], + }); + } +} diff --git a/src/modules/AT/alumno_inscrito/dto/create-alumno_inscrito.dto.ts b/src/modules/AT/alumno_inscrito/dto/create-alumno_inscrito.dto.ts new file mode 100644 index 0000000..08588a6 --- /dev/null +++ b/src/modules/AT/alumno_inscrito/dto/create-alumno_inscrito.dto.ts @@ -0,0 +1,27 @@ +import { IsNotEmpty, IsNumber, IsBoolean } from 'class-validator'; + +export class CreateAlumnoInscritoDto { + @IsNotEmpty() + @IsNumber() + id_cuenta: number; + + @IsNotEmpty() + @IsNumber() + id_periodo: number; + + @IsNotEmpty() + @IsNumber() + id_plataforma: number; + + @IsBoolean() + realizo_pago?: boolean; + + @IsBoolean() + platica?: boolean; + + @IsNumber() + tiempo_disponible?: number; + + @IsBoolean() + ad?: boolean; +}