add entities for db

This commit is contained in:
TheManus88
2024-09-10 22:57:31 -06:00
parent 6829f044d3
commit 6c59c341e7
11 changed files with 745 additions and 71 deletions
+6
View File
@@ -0,0 +1,6 @@
DB_HOST: 'localhost'
DB_PORT: 3306
DB_USERNAME: 'root'
DB_PASSWORD: 'Test2024'
DB_NAME: 'pdi'
DB_SYNCHRONIZE: true
+535 -67
View File
File diff suppressed because it is too large Load Diff
+6 -1
View File
@@ -21,10 +21,15 @@
},
"dependencies": {
"@nestjs/common": "^10.0.0",
"@nestjs/config": "^3.2.3",
"@nestjs/core": "^10.0.0",
"@nestjs/platform-express": "^10.0.0",
"@nestjs/typeorm": "^10.0.2",
"dotenv": "^16.4.5",
"mysql2": "^3.11.1",
"reflect-metadata": "^0.1.13",
"rxjs": "^7.8.1"
"rxjs": "^7.8.1",
"typeorm": "^0.3.20"
},
"devDependencies": {
"@nestjs/cli": "^10.0.0",
+34 -2
View File
@@ -3,9 +3,41 @@ import { AppController } from './app.controller';
import { AppService } from './app.service';
import { AuthModule } from './auth/auth.module';
import { UsersModule } from './users/users.module';
import { TypeOrmModule } from '@nestjs/typeorm';
import { config } from 'dotenv';
import { ConfigModule } from '@nestjs/config';
import { Carrera } from './entities/carreras.entity';
import { ComentarioEje } from './entities/comentarioEjes.entity';
import { EjeEstrategico } from './entities/ejesEstrategicos.entity';
import { LineaProgramatica } from './entities/LineaProgramatica.entity';
import { TipoUsuarioEntity } from './entities/tipoUsuario.entity';
import { UsuarioEntity } from './entities/usuario.entity';
config({ path: '.env' });
@Module({
imports: [AuthModule, UsersModule],
imports: [
AuthModule,
UsersModule,
ConfigModule.forRoot({
isGlobal: true,
}),
TypeOrmModule.forRoot({
type: 'mysql',
host: process.env.DB_HOST,
port: parseInt(process.env.DB_PORT),
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
synchronize: true,
entities: [
Carrera,
ComentarioEje,
EjeEstrategico,
LineaProgramatica,
TipoUsuarioEntity,
UsuarioEntity,
],
}),
],
controllers: [AppController],
providers: [AppService],
})
+24
View File
@@ -0,0 +1,24 @@
import {
Entity,
Column,
PrimaryGeneratedColumn,
ManyToOne,
JoinColumn,
} from 'typeorm';
import { EjeEstrategico } from './ejesEstrategicos.entity';
@Entity('lineas_programaticas')
export class LineaProgramatica {
@PrimaryGeneratedColumn('increment', { type: 'bigint' })
id: number;
@ManyToOne(
() => EjeEstrategico,
(ejeEstrategico) => ejeEstrategico.lineasProgramaticas,
)
@JoinColumn({ name: 'eje_estrategico_id' })
ejeEstrategico: EjeEstrategico;
@Column('text')
descripcion: string;
}
+14
View File
@@ -0,0 +1,14 @@
import { Entity, Column, PrimaryGeneratedColumn, OneToMany } from 'typeorm';
import { UsuarioEntity } from './usuario.entity';
@Entity('carreras')
export class Carrera {
@PrimaryGeneratedColumn('increment', { type: 'bigint' })
id: number;
@Column('text')
nombre: string;
@OneToMany(() => UsuarioEntity, (usuario) => usuario.carrera)
usuarios: UsuarioEntity[];
}
+39
View File
@@ -0,0 +1,39 @@
import {
Entity,
Column,
PrimaryGeneratedColumn,
ManyToOne,
JoinColumn,
} from 'typeorm';
import { UsuarioEntity } from './usuario.entity';
import { LineaProgramatica } from './LineaProgramatica.entity';
import { EjeEstrategico } from './ejesEstrategicos.entity';
@Entity('comentarios_ejes')
export class ComentarioEje {
@PrimaryGeneratedColumn('increment', { type: 'bigint' })
id: number;
@ManyToOne(() => UsuarioEntity, (usuario) => usuario.comentarios)
@JoinColumn({ name: 'usuario_id' })
usuario: UsuarioEntity;
@ManyToOne(
() => LineaProgramatica,
(lineaProgramatica) => lineaProgramatica.descripcion,
{ nullable: true },
)
@JoinColumn({ name: 'linea_programatica_id' })
lineaProgramatica: LineaProgramatica;
@ManyToOne(
() => EjeEstrategico,
(ejeEstrategico) => ejeEstrategico.comentarios,
{ nullable: true },
)
@JoinColumn({ name: 'eje_estrategico_id' })
ejeEstrategico: EjeEstrategico;
@Column('text')
comentario: string;
}
+30
View File
@@ -0,0 +1,30 @@
import { Entity, Column, PrimaryGeneratedColumn, OneToMany } from 'typeorm';
import { ComentarioEje } from './comentarioEjes.entity';
import { LineaProgramatica } from './LineaProgramatica.entity';
@Entity('ejes_estrategicos')
export class EjeEstrategico {
@PrimaryGeneratedColumn('increment', { type: 'bigint' })
id: number;
@Column('text')
nombre: string;
@Column('text')
objetivo: string;
@Column('text')
lineas_programaticas: string;
@OneToMany(
() => ComentarioEje,
(comentarioEje) => comentarioEje.ejeEstrategico,
)
comentarios: ComentarioEje[];
@OneToMany(
() => LineaProgramatica,
(lineaProgramatica) => lineaProgramatica.ejeEstrategico,
)
lineasProgramaticas: LineaProgramatica[];
}
+14
View File
@@ -0,0 +1,14 @@
import { Entity, Column, PrimaryGeneratedColumn, OneToMany } from 'typeorm';
import { UsuarioEntity } from './usuario.entity';
@Entity('tipos_usuarios')
export class TipoUsuarioEntity {
@PrimaryGeneratedColumn('increment', { type: 'bigint' })
id: number;
@Column('text')
tipo: string;
@OneToMany(() => UsuarioEntity, (usuario) => usuario.tipoUsuario)
usuarios: UsuarioEntity[];
}
+39
View File
@@ -0,0 +1,39 @@
import {
Entity,
Column,
PrimaryGeneratedColumn,
ManyToOne,
JoinColumn,
OneToMany,
} from 'typeorm';
import { Carrera } from './carreras.entity';
import { TipoUsuarioEntity } from './tipoUsuario.entity';
import { ComentarioEje } from './comentarioEjes.entity';
@Entity('usuarios')
export class UsuarioEntity {
@PrimaryGeneratedColumn('increment', { type: 'bigint' })
id: number;
@Column('text')
numero_identificacion: string;
@Column('date', { nullable: true })
fecha_nacimiento: Date;
@Column('text', { nullable: true })
rfc: string;
@ManyToOne(() => Carrera, (carrera) => carrera.usuarios, { nullable: true })
@JoinColumn({ name: 'carrera_id' })
carrera: Carrera;
@ManyToOne(() => TipoUsuarioEntity, (tipoUsuario) => tipoUsuario.usuarios, {
nullable: true,
})
@JoinColumn({ name: 'tipo_usuario_id' })
tipoUsuario: TipoUsuarioEntity;
@OneToMany(() => ComentarioEje, (comentarioEje) => comentarioEje.usuario)
comentarios: ComentarioEje[];
}
+4 -1
View File
@@ -1,4 +1,7 @@
import { Injectable } from '@nestjs/common';
export type User = any;
@Injectable()
export class UsersService {}
export class UsersService {
}