From 1ae0911847f24f2d1dd7e095d3769ede0bdeb0bb Mon Sep 17 00:00:00 2001 From: IO420 <320154041@pcpuma.acatlan.unam.mx> Date: Fri, 23 Jan 2026 16:22:41 -0600 Subject: [PATCH] Genero --- src/alumno/dto/create-student.dto.ts | 25 +++++++++++++++---- src/alumno/entities/student.entity.ts | 14 +++++++++++ src/alumno/student.controller.ts | 5 ++++ src/alumno/student.service.ts | 6 +++++ .../alumno_inscrito.service.ts | 2 +- 5 files changed, 46 insertions(+), 6 deletions(-) diff --git a/src/alumno/dto/create-student.dto.ts b/src/alumno/dto/create-student.dto.ts index d9afcbe..3e5632e 100644 --- a/src/alumno/dto/create-student.dto.ts +++ b/src/alumno/dto/create-student.dto.ts @@ -1,4 +1,12 @@ -import { IsEmail, IsNotEmpty, IsNumber, IsString } from 'class-validator'; +import { + IsEmail, + IsNotEmpty, + IsNumber, + IsString, + IsEnum, + IsOptional, +} from 'class-validator'; +import { Genero } from '../entities/student.entity'; export class CreateStudentDto { @IsNotEmpty() @@ -9,14 +17,21 @@ export class CreateStudentDto { @IsString() nombre: string; + @IsOptional() @IsString() - fecha_nacimiento: string; + fecha_nacimiento?: string; @IsNotEmpty() @IsNumber() id_carrera: number; + @IsOptional() @IsEmail() - @IsString() - correo: string; -} \ No newline at end of file + correo?: string; + + @IsOptional() + @IsEnum(Genero, { + message: 'genero debe ser Femenino, Masculino u Otro', + }) + genero?: Genero; +} diff --git a/src/alumno/entities/student.entity.ts b/src/alumno/entities/student.entity.ts index 942fe16..2016bd0 100644 --- a/src/alumno/entities/student.entity.ts +++ b/src/alumno/entities/student.entity.ts @@ -11,6 +11,12 @@ import { PrimaryGeneratedColumn, } from 'typeorm'; +export enum Genero { + FEMENINO = 'Femenino', + MASCULINO = 'Masculino', + OTRO = 'Otro', +} + @Entity({ name: 'alumno' }) export class Alumno { @PrimaryGeneratedColumn({ name: 'id_cuenta', type: 'int', unsigned: true }) @@ -68,6 +74,14 @@ export class Alumno { @Column({ name: 'generacion', type: 'int', width: 4, nullable: true }) generacion: number | null; + @Column({ + name: 'genero', + type: 'enum', + enum: Genero, + nullable: true, + }) + genero: Genero | null; + @ManyToOne(() => Carrera, (carrera) => carrera.estudiantes, { eager: true, nullable: true, diff --git a/src/alumno/student.controller.ts b/src/alumno/student.controller.ts index 16af366..74ef94c 100644 --- a/src/alumno/student.controller.ts +++ b/src/alumno/student.controller.ts @@ -11,6 +11,11 @@ import { Role } from 'src/role.enum'; export class AlumnoController { constructor(private readonly alumnoService: AlumnoService) {} + @Get() + async find(){ + return this.alumnoService.findAll() + } + @Post() async create(@Body() createStudentDto: CreateStudentDto): Promise { return this.alumnoService.create(createStudentDto); diff --git a/src/alumno/student.service.ts b/src/alumno/student.service.ts index 65028ab..c106f24 100644 --- a/src/alumno/student.service.ts +++ b/src/alumno/student.service.ts @@ -14,6 +14,12 @@ export class AlumnoService { private readonly carreraRepository: Repository, ) {} + async findAll(): Promise { + return this.studentRepository.find({ + take: 100, + }); + } + async create(data: CreateStudentDto): Promise { const { id_carrera, ...rest } = data; const carrera = await this.carreraRepository.findOne({ diff --git a/src/alumno_inscrito/alumno_inscrito.service.ts b/src/alumno_inscrito/alumno_inscrito.service.ts index 0afb41e..81ed139 100644 --- a/src/alumno_inscrito/alumno_inscrito.service.ts +++ b/src/alumno_inscrito/alumno_inscrito.service.ts @@ -74,7 +74,7 @@ export class AlumnoInscritoService { .getMany(); if (students.length === 0) { - throw new NotFoundException('unregistered student'); + throw new NotFoundException('Estudiante no Registrado'); } return students;