types.ts
En el archivo types.ts se tienen 8 interfaces las cuales funcionan para diferentes cosas en nuestra aplicación. En este archivo se va a buscar explicar todas las interfaces, para que sirven y tambien para que son cada cosa.
UserDetails
Esta interfaz es la que se aplica en el userContext. El cual contiene lo que serian los datos del usuario de la base de datos. Los cuales están en la tabla "users"
// Path: ./types/types.ts
export interface UserDetails {
id: string;
first_name: string;
last_name: string;
}
Estos tipos son usados para colocar la información. El que se usa frecuenteme es el campo "id" el cual usamos a la creación de eventos y crear un registro de quien crear el evento.
Evento
La interfaz o las propiedades "Evento" son usadas como dice su nombre, para eventos individuales. Estas propiedades son algunas que tienen en donde sería la creación del evento o la visualización del evento de manera individual en la ruta /eventos/[idEvento].tsx
// Path: ./types/types.ts
export interface Evento {
nameevent: string;
description: string;
dateevent: string;
starthour: string;
endhour: string;
placeevent: string;
// addressedto: never[];
}
CarrerasGrupos
Estan son las carreras que hay, lo que se tiene es que los valores son arrays de strings. De esta manera se tiene lo que serían los grupos que contienen los grupos.
// Path: ./types/types.ts
export interface CarrerasGrupos {
BTAD?: string[];
TPIN?: string[];
BTGO?: string[];
TPTE?: string[];
TPBI?: string[];
TPMC?: string[];
}
GruposYCarreras
La interfaz es usada para los registros que se traen en la tabla de "semestres_grupos". La cual contiene los mismos campos que en la tabla. Las que son mas importanes son las de carrera y lo que nos interesa saber es el status del grupo del ciclo.
// Path: ./types/types.ts
export interface GruposYCarreras {
id: number;
carrera: string;
grupo: string;
semestregrupo: string;
turno: string;
status: boolean;
}
FiltrosEventos
La interfaz de FiltrosEventos es realmente importante ya que maneja lo que sería la estructura de nuestro filtro para la invitación de las personas. Este filtro será explicado después en su carpeta y en su función. Pero lo que se puede ver es que va de lo mas general a lo más especifico.
// Path: ./types/types.ts
export interface FiltrosEventos {
categoriasGenerales: string[];
turno: string;
seleccionGrupos: { carrera: string }[];
departamentos: string[];
personasEspecificas: {}[];
gruposEspeficos: { carrera: string }[];
carreras: string[];
seleccionCarrera: boolean;
checkGrupos: boolean;
}
PersonQuery
Esta interfaz es usada para la tabla de PersonQuery el cual tiene los valores más generales para personas. En este caso solo se agrega seccion el cual nos hace referencia a la tabla a la que pertenece a la persona.
// Path: ./types/types.ts
export interface PersonQuery {
id: number;
correo: string;
codigo: number;
nombre: string;
seccion: string;
}