primera instancia de validador y carga del excel de usuarios, falta agregar las relaciones con las carreras y verificar los validadores

This commit is contained in:
Your Name
2025-06-13 17:54:38 -06:00
parent 8660c85b79
commit 4deb5ecf34
11 changed files with 2083 additions and 93 deletions
+177
View File
@@ -0,0 +1,177 @@
import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, OneToMany, JoinColumn, PrimaryColumn } from 'typeorm';
@Entity({ name: 'origen' })
export class Origen {
@PrimaryGeneratedColumn({ name: 'id_origen', type: 'int' })
id_origen: number;
@Column({ type: 'varchar', length: 30 })
fuente: string;
@OneToMany(() => Movimiento, movimiento => movimiento.origen)
movimientos: Movimiento[];
@OneToMany(() => UsuariosDelSistema, uds => uds.origen)
usuariosDelSistema: UsuariosDelSistema[];
}
@Entity({ name: 'genero' })
export class Genero {
@PrimaryGeneratedColumn({ name: 'id_genero', type: 'int', })
id_genero: number;
@Column({ type: 'varchar', length: 20, nullable: true })
genero: string;
@OneToMany(() => Usuario, usuario => usuario.genero)
usuarios: Usuario[];
}
@Entity({ name: 'carrera' })
export class Carrera {
@PrimaryGeneratedColumn({ name: 'id_carrera', type: 'int' })
id_carrera: number;
@Column({ type: 'varchar', length: 100 })
carrera: string;
@Column({ type: 'varchar', length: 6 })
clave: string;
@OneToMany(() => CarreraUsuario, cu => cu.carrera)
carreraUsuarios: CarreraUsuario[];
}
@Entity({ name: 'usuario' })
export class Usuario {
@PrimaryGeneratedColumn({ name: 'id_usuario', type: 'int' })
id_usuario: number;
@Column({ type: 'varchar', length: 9 })
num_cuenta: string;
@Column({ type: 'varchar', length: 60 })
nombre: string;
@Column({ name: 'a_paterno', type: 'varchar', length: 60 })
a_paterno: string;
@Column({ name: 'a_materno', type: 'varchar', length: 60 })
a_materno: string;
@Column({ type: 'varchar', length: 15 })
rfc: string;
@Column({ name: 'fecha_nacimiento', type: 'varchar', length: 8 })
fecha_nacimiento: string;
@Column({ type: 'int' })
generacion: number;
@ManyToOne(() => Genero, genero => genero.usuarios)
@JoinColumn({ name: 'id_genero' })
genero: Genero;
@OneToMany(() => Movimiento, mov => mov.usuario)
movimientos: Movimiento[];
@OneToMany(() => CarreraUsuario, cu => cu.usuario)
carreraUsuarios: CarreraUsuario[];
@OneToMany(() => UsuarioTipoUsuario, utu => utu.usuario)
usuarioTipos: UsuarioTipoUsuario[];
}
@Entity({ name: 'usuariosDelSistema' })
export class UsuariosDelSistema {
@PrimaryColumn({ type: 'varchar', length: 60 })
usuario: string;
@Column({ type: 'varchar', length: 60 })
contraseña: string;
@ManyToOne(() => Origen, origen => origen.usuariosDelSistema)
@JoinColumn({ name: 'id_origen' })
origen: Origen;
}
@Entity({ name: 'carrera_usuario' })
export class CarreraUsuario {
@PrimaryGeneratedColumn({ name: 'id_carrera_usuario', type: 'int' })
id_carrera_usuario: number;
@ManyToOne(() => Carrera, carrera => carrera.carreraUsuarios)
@JoinColumn({ name: 'id_carrera' })
carrera: Carrera;
@ManyToOne(() => Usuario, usuario => usuario.carreraUsuarios)
@JoinColumn({ name: 'id_usuario' })
usuario: Usuario;
}
@Entity({ name: 'equipo' })
export class Equipo {
@PrimaryGeneratedColumn({ name: 'id_equipo', type: 'int' })
id_equipo: number;
@Column({ type: 'varchar', length: 10 })
equipo: string;
@Column({ name: 'numero_serie', type: 'varchar', length: 30 })
numero_serie: string;
}
@Entity({ name: 'tipo_usuario' })
export class TipoUsuario {
@PrimaryGeneratedColumn({ name: 'id_tipo_usuario', type: 'int' })
id_tipo_usuario: number;
@Column({ name: 'tipo_usuario', type: 'varchar', length: 20 })
tipo_usuario: string;
@OneToMany(() => UsuarioTipoUsuario, utu => utu.tipoUsuario)
usuariosTipos: UsuarioTipoUsuario[];
}
@Entity({ name: 'usuario_tipo_usuario' })
export class UsuarioTipoUsuario {
@PrimaryGeneratedColumn({ name: 'id_user_tipo_usuario', type: 'int' })
id_user_tipo_usuario: number;
@ManyToOne(() => TipoUsuario, tipo => tipo.usuariosTipos)
@JoinColumn({ name: 'id_tipo_usuario' })
tipoUsuario: TipoUsuario;
@ManyToOne(() => Usuario, usuario => usuario.usuarioTipos)
@JoinColumn({ name: 'id_usuario' })
usuario: Usuario;
}
@Entity({ name: 'movimiento' })
export class Movimiento {
@PrimaryGeneratedColumn({ name: 'id_mov', type: 'int' })
id_mov: number;
@Column({ name: 'fecha_mov', type: 'datetime' })
fecha_mov: Date;
@Column({ type: 'varchar', length: 100 })
status: string;
@Column({ type: 'varchar', length: 200 })
observaciones: string;
@Column({ type: 'bit' })
flag: boolean;
@Column({ type: 'varchar', length: 200 })
reporte: string;
@ManyToOne(() => Usuario, usuario => usuario.movimientos)
@JoinColumn({ name: 'id_usuario' })
usuario: Usuario;
@ManyToOne(() => Origen, origen => origen.movimientos)
@JoinColumn({ name: 'id_origen' })
origen: Origen;
}