diff --git a/src/cuestionario_respondido/entities/cuestionario_respondido.entity.ts b/src/cuestionario_respondido/entities/cuestionario_respondido.entity.ts index 85611b0..b1a3e5f 100644 --- a/src/cuestionario_respondido/entities/cuestionario_respondido.entity.ts +++ b/src/cuestionario_respondido/entities/cuestionario_respondido.entity.ts @@ -1 +1,32 @@ -export class CuestionarioRespondido {} +import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, OneToMany, JoinColumn } from 'typeorm'; + +import { Cuestionario } from 'src/cuestionario/entities/cuestionario.entity'; +import { RespuestaParticipanteCerrada } from 'src/respuesta_participante_cerrada/entities/respuesta_participante_cerrada.entity'; +import { RespuestaParticipanteAbierta } from 'src/respuesta_participante_abierta/entities/respuesta_participante_abierta.entity'; + +@Entity('cuestionario_respondido') +export class CuestionarioRespondido { + @PrimaryGeneratedColumn({ name: 'id_cuestionario_respondido' }) + idCuestionarioRespondido: number; + + @Column({ name: 'fecha_respuesta', type: 'timestamp' }) + fechaRespuesta: Date; + + // Relación con Participante + @ManyToOne(() => Participante, participante => participante.cuestionariosRespondidos) + @JoinColumn({ name: 'id_participante' }) + id_participante: Participante; + + // Relación con Cuestionario + @ManyToOne(() => Cuestionario, cuestionario => cuestionario.id_cuestionario) + @JoinColumn({ name: 'id_cuestionario' }) + id_cuestionario: Cuestionario; + + // Relación con RespuestasCerradas + @OneToMany(() => RespuestaParticipanteCerrada, respuestaCerrada => respuestaCerrada.id_cuestionario_respondido) + respuestasCerradas: RespuestaParticipanteCerrada[]; + + // Relación con RespuestasAbiertas + @OneToMany(() => RespuestaParticipanteAbierta, respuestaAbierta => respuestaAbierta.id_cuestionario_respondido) + respuestasAbiertas: RespuestaParticipanteAbierta[]; +} \ No newline at end of file diff --git a/src/opcion/entities/opcion.entity.ts b/src/opcion/entities/opcion.entity.ts index 9b7a1fc..3e2f2c4 100644 --- a/src/opcion/entities/opcion.entity.ts +++ b/src/opcion/entities/opcion.entity.ts @@ -1,3 +1,4 @@ +import { PreguntaOpcion } from "src/pregunta_opcion/entities/pregunta_opcion.entity"; import { Column, Entity, OneToMany, PrimaryGeneratedColumn } from "typeorm"; @Entity() @@ -8,7 +9,7 @@ export class Opcion { @Column({ type: String, nullable: false, length: 200, default: '' }) opcion: string; - @OneToMany(() => PreguntaOpcion, (preguntaOpcion) => preguntaOpcion.Opcion) + @OneToMany(() => PreguntaOpcion, (preguntaOpcion) => preguntaOpcion.id_opcion) Preguntas: PreguntaOpcion[]; diff --git a/src/pregunta/entities/pregunta.entity.ts b/src/pregunta/entities/pregunta.entity.ts index e69de29..d4c6671 100644 --- a/src/pregunta/entities/pregunta.entity.ts +++ b/src/pregunta/entities/pregunta.entity.ts @@ -0,0 +1,33 @@ +import { PreguntaOpcion } from 'src/pregunta_opcion/entities/pregunta_opcion.entity'; +import { SeccionPregunta } from 'src/seccion_pregunta/entities/seccion_pregunta.entity'; +import { TipoPregunta } from 'src/tipo_pregunta/entities/tipo_pregunta.entity'; +import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, OneToMany, JoinColumn } from 'typeorm'; + + +@Entity() +export class Pregunta { + @PrimaryGeneratedColumn() + id_pregunta: number; + + @Column() + pregunta: string; + + @Column({ default: 0 }) + contador_opcion: number; + + @Column({ default: false }) + obligatoria: boolean; + + @ManyToOne(() => TipoPregunta, tipo => tipo.preguntas) + @JoinColumn({ name: 'id_tipo_pregunta' }) + id_tipo_pregunta: TipoPregunta; + + @Column({ nullable: true }) + id_opcion_dependiente: number; + + @OneToMany(() => SeccionPregunta, seccionPregunta => seccionPregunta.id_pregunta) + seccionPreguntas: SeccionPregunta[]; + + @OneToMany(() => PreguntaOpcion, preguntaOpcion => preguntaOpcion.id_pregunta) + opciones: PreguntaOpcion[]; +} \ No newline at end of file diff --git a/src/pregunta_opcion/entities/pregunta_opcion.entity.ts b/src/pregunta_opcion/entities/pregunta_opcion.entity.ts index e69de29..8cbd89c 100644 --- a/src/pregunta_opcion/entities/pregunta_opcion.entity.ts +++ b/src/pregunta_opcion/entities/pregunta_opcion.entity.ts @@ -0,0 +1,25 @@ +import { Opcion } from 'src/opcion/entities/opcion.entity'; +import { Pregunta } from 'src/pregunta/entities/pregunta.entity'; +import { RespuestaParticipanteCerrada } from 'src/respuesta_participante_cerrada/entities/respuesta_participante_cerrada.entity'; +import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, OneToMany } from 'typeorm'; + + +@Entity() +export class PreguntaOpcion { + @PrimaryGeneratedColumn() + id_pregunta_opcion: number; + + @Column() + posicion: number; + + @ManyToOne(() => Pregunta, pregunta => pregunta.id_pregunta) + @Column() + id_pregunta: Pregunta; + + @ManyToOne(() => Opcion, opcion => opcion.id_opcion) + @Column() + id_opcion: Opcion; + + @OneToMany(()=> RespuestaParticipanteCerrada, respuestaParticipanteCerrada=>respuestaParticipanteCerrada.id_pregunta_opcion) + respuestaParticipanteCerrada:RespuestaParticipanteCerrada[]; +} \ No newline at end of file diff --git a/src/respuesta_participante_cerrada/entities/respuesta_participante_cerrada.entity.ts b/src/respuesta_participante_cerrada/entities/respuesta_participante_cerrada.entity.ts index 1c60109..ba96744 100644 --- a/src/respuesta_participante_cerrada/entities/respuesta_participante_cerrada.entity.ts +++ b/src/respuesta_participante_cerrada/entities/respuesta_participante_cerrada.entity.ts @@ -1 +1,20 @@ -export class RespuestaParticipanteCerrada {} +import { CuestionarioRespondido } from 'src/cuestionario_respondido/entities/cuestionario_respondido.entity'; +import { PreguntaOpcion } from 'src/pregunta_opcion/entities/pregunta_opcion.entity'; +import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, JoinColumn } from 'typeorm'; + + +@Entity('respuesta_participante_cerrada') +export class RespuestaParticipanteCerrada { + @PrimaryGeneratedColumn() + idRespuestaParticipanteCerrada: number; + + @ManyToOne(() => CuestionarioRespondido, cuestionarioRespondido => cuestionarioRespondido.respuestasCerradas) + @JoinColumn({ name: 'id_cuestionario_respondido' }) + id_cuestionario_respondido: CuestionarioRespondido; + + @ManyToOne(() => PreguntaOpcion, preguntaOpcion => preguntaOpcion.id_pregunta_opcion) + @JoinColumn({ name: 'id_pregunta_opcion' }) + id_pregunta_opcion: PreguntaOpcion; + + +} \ No newline at end of file diff --git a/src/seccion_pregunta/entities/seccion_pregunta.entity.ts b/src/seccion_pregunta/entities/seccion_pregunta.entity.ts index cafbe50..e476f4f 100644 --- a/src/seccion_pregunta/entities/seccion_pregunta.entity.ts +++ b/src/seccion_pregunta/entities/seccion_pregunta.entity.ts @@ -1,3 +1,4 @@ +import { Pregunta } from 'src/pregunta/entities/pregunta.entity'; import { Seccion } from 'src/seccion/entities/seccion.entity'; import { Entity, PrimaryGeneratedColumn, Column, ManyToOne } from 'typeorm'; diff --git a/src/tipo_pregunta/entities/tipo_pregunta.entity.ts b/src/tipo_pregunta/entities/tipo_pregunta.entity.ts index e69de29..178c993 100644 --- a/src/tipo_pregunta/entities/tipo_pregunta.entity.ts +++ b/src/tipo_pregunta/entities/tipo_pregunta.entity.ts @@ -0,0 +1,14 @@ +import { Pregunta } from 'src/pregunta/entities/pregunta.entity'; +import { Entity, PrimaryGeneratedColumn, Column, OneToMany } from 'typeorm'; + +@Entity() +export class TipoPregunta { + @PrimaryGeneratedColumn() + id_tipo: number; + + @Column() + tipo_pregunta: string; + + @OneToMany(() => Pregunta, pregunta => pregunta.id_tipo_pregunta) + preguntas: Pregunta[]; +} \ No newline at end of file