added new file alumno inscrito with, controllers and services

This commit is contained in:
2025-10-23 10:04:03 -06:00
parent 3bdfac1f66
commit 8baec559a8
5 changed files with 110 additions and 1 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ export class AlumnoService {
constructor(
@InjectRepository(Alumno, 'dbAT')
private readonly studentRepository: Repository<Alumno>,
// @InjectRepository(Carrera)
// @InjectRepository(Carrera, 'dbAT')
// private readonly carreraRepository: Repository<Carrera>,
) {}
@@ -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<AlumnoInscrito> {
return this.alumnoInscritoService.create(dto);
}
@Get()
async findAll(): Promise<AlumnoInscrito[]> {
return this.alumnoInscritoService.findAll();
}
@Get(':id_cuenta')
async findByAlumno(
@Param('id_cuenta') id_cuenta: number,
): Promise<AlumnoInscrito[]> {
return this.alumnoInscritoService.findByAlumno(id_cuenta);
}
}
@@ -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 {}
@@ -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<AlumnoInscrito>,
) {}
async create(dto: CreateAlumnoInscritoDto): Promise<AlumnoInscrito> {
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<AlumnoInscrito[]> {
return this.alumnoInscritoRepo.find({
relations: ['alumno', 'periodo', 'plataforma'],
});
}
async findByAlumno(id_cuenta: number): Promise<AlumnoInscrito[]> {
return this.alumnoInscritoRepo.find({
where: { alumno: { id_cuenta }, periodo: { id_periodo: 27 } },
relations: ['alumno', 'periodo', 'plataforma'],
});
}
}
@@ -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;
}