|
|
@@ -1,214 +0,0 @@
|
|
|
-"use strict";
|
|
|
-Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
-exports.attendanceRelations = exports.studentEnrollmentsRelations = exports.teacherAssignmentsRelations = exports.sectionsRelations = exports.classesRelations = exports.partialsRelations = exports.periodsRelations = exports.usersRelations = exports.attendance = exports.studentEnrollments = exports.teacherAssignments = exports.sections = exports.classes = exports.partials = exports.periods = exports.users = exports.like = exports.desc = exports.lte = exports.gte = exports.ne = exports.and = exports.eq = void 0;
|
|
|
-var pg_core_1 = require("drizzle-orm/pg-core");
|
|
|
-var drizzle_orm_1 = require("drizzle-orm");
|
|
|
-var drizzle_orm_2 = require("drizzle-orm");
|
|
|
-Object.defineProperty(exports, "eq", { enumerable: true, get: function () { return drizzle_orm_2.eq; } });
|
|
|
-Object.defineProperty(exports, "and", { enumerable: true, get: function () { return drizzle_orm_2.and; } });
|
|
|
-Object.defineProperty(exports, "ne", { enumerable: true, get: function () { return drizzle_orm_2.ne; } });
|
|
|
-Object.defineProperty(exports, "gte", { enumerable: true, get: function () { return drizzle_orm_2.gte; } });
|
|
|
-Object.defineProperty(exports, "lte", { enumerable: true, get: function () { return drizzle_orm_2.lte; } });
|
|
|
-Object.defineProperty(exports, "desc", { enumerable: true, get: function () { return drizzle_orm_2.desc; } });
|
|
|
-Object.defineProperty(exports, "like", { enumerable: true, get: function () { return drizzle_orm_2.like; } });
|
|
|
-// Tabla de usuarios (administradores, docentes, estudiantes)
|
|
|
-exports.users = (0, pg_core_1.pgTable)('users', {
|
|
|
- id: (0, pg_core_1.uuid)('id').defaultRandom().primaryKey(),
|
|
|
- email: (0, pg_core_1.varchar)('email', { length: 255 }).notNull().unique(),
|
|
|
- password: (0, pg_core_1.text)('password').notNull(),
|
|
|
- firstName: (0, pg_core_1.varchar)('first_name', { length: 100 }).notNull(),
|
|
|
- lastName: (0, pg_core_1.varchar)('last_name', { length: 100 }).notNull(),
|
|
|
- cedula: (0, pg_core_1.varchar)('cedula', { length: 20 }).notNull().unique(),
|
|
|
- phone: (0, pg_core_1.varchar)('phone', { length: 20 }),
|
|
|
- role: (0, pg_core_1.varchar)('role', { length: 20 }).notNull(), // 'admin', 'teacher', 'student'
|
|
|
- admissionNumber: (0, pg_core_1.varchar)('admission_number', { length: 50 }), // Solo para estudiantes
|
|
|
- isActive: (0, pg_core_1.boolean)('is_active').default(true),
|
|
|
- createdAt: (0, pg_core_1.timestamp)('created_at').defaultNow(),
|
|
|
- updatedAt: (0, pg_core_1.timestamp)('updated_at').defaultNow(),
|
|
|
-});
|
|
|
-// Tabla de periodos
|
|
|
-exports.periods = (0, pg_core_1.pgTable)('periods', {
|
|
|
- id: (0, pg_core_1.uuid)('id').defaultRandom().primaryKey(),
|
|
|
- name: (0, pg_core_1.varchar)('name', { length: 100 }).notNull(),
|
|
|
- startDate: (0, pg_core_1.date)('start_date').notNull(),
|
|
|
- endDate: (0, pg_core_1.date)('end_date').notNull(),
|
|
|
- isActive: (0, pg_core_1.boolean)('is_active').default(true),
|
|
|
- createdAt: (0, pg_core_1.timestamp)('created_at').defaultNow(),
|
|
|
- updatedAt: (0, pg_core_1.timestamp)('updated_at').defaultNow(),
|
|
|
-});
|
|
|
-// Tabla de parciales
|
|
|
-exports.partials = (0, pg_core_1.pgTable)('partials', {
|
|
|
- id: (0, pg_core_1.uuid)('id').defaultRandom().primaryKey(),
|
|
|
- name: (0, pg_core_1.varchar)('name', { length: 100 }).notNull(),
|
|
|
- periodId: (0, pg_core_1.uuid)('period_id').references(function () { return exports.periods.id; }),
|
|
|
- startDate: (0, pg_core_1.date)('start_date').notNull(),
|
|
|
- endDate: (0, pg_core_1.date)('end_date').notNull(),
|
|
|
- isActive: (0, pg_core_1.boolean)('is_active').default(true),
|
|
|
- createdAt: (0, pg_core_1.timestamp)('created_at').defaultNow(),
|
|
|
- updatedAt: (0, pg_core_1.timestamp)('updated_at').defaultNow(),
|
|
|
-});
|
|
|
-// Tabla de clases/materias
|
|
|
-exports.classes = (0, pg_core_1.pgTable)('classes', {
|
|
|
- id: (0, pg_core_1.uuid)('id').defaultRandom().primaryKey(),
|
|
|
- name: (0, pg_core_1.varchar)('name', { length: 100 }).notNull(),
|
|
|
- code: (0, pg_core_1.varchar)('code', { length: 20 }).notNull().unique(),
|
|
|
- credits: (0, pg_core_1.integer)('credits').notNull(),
|
|
|
- description: (0, pg_core_1.text)('description'),
|
|
|
- periodId: (0, pg_core_1.uuid)('period_id').references(function () { return exports.periods.id; }),
|
|
|
- isActive: (0, pg_core_1.boolean)('is_active').default(true),
|
|
|
- createdAt: (0, pg_core_1.timestamp)('created_at').defaultNow(),
|
|
|
- updatedAt: (0, pg_core_1.timestamp)('updated_at').defaultNow(),
|
|
|
-});
|
|
|
-// Tabla de paralelos/secciones
|
|
|
-exports.sections = (0, pg_core_1.pgTable)('sections', {
|
|
|
- id: (0, pg_core_1.uuid)('id').defaultRandom().primaryKey(),
|
|
|
- name: (0, pg_core_1.varchar)('name', { length: 50 }).notNull(),
|
|
|
- classId: (0, pg_core_1.uuid)('class_id').references(function () { return exports.classes.id; }),
|
|
|
- maxStudents: (0, pg_core_1.integer)('max_students').notNull(),
|
|
|
- isActive: (0, pg_core_1.boolean)('is_active').default(true),
|
|
|
- createdAt: (0, pg_core_1.timestamp)('created_at').defaultNow(),
|
|
|
- updatedAt: (0, pg_core_1.timestamp)('updated_at').defaultNow(),
|
|
|
-});
|
|
|
-// Tabla de asignaciones de docentes a clases/secciones
|
|
|
-exports.teacherAssignments = (0, pg_core_1.pgTable)('teacher_assignments', {
|
|
|
- id: (0, pg_core_1.uuid)('id').defaultRandom().primaryKey(),
|
|
|
- teacherId: (0, pg_core_1.uuid)('teacher_id').references(function () { return exports.users.id; }),
|
|
|
- classId: (0, pg_core_1.uuid)('class_id').references(function () { return exports.classes.id; }),
|
|
|
- sectionId: (0, pg_core_1.uuid)('section_id').references(function () { return exports.sections.id; }),
|
|
|
- isActive: (0, pg_core_1.boolean)('is_active').default(true),
|
|
|
- createdAt: (0, pg_core_1.timestamp)('created_at').defaultNow(),
|
|
|
-});
|
|
|
-// Tabla de inscripciones de estudiantes
|
|
|
-exports.studentEnrollments = (0, pg_core_1.pgTable)('student_enrollments', {
|
|
|
- id: (0, pg_core_1.uuid)('id').defaultRandom().primaryKey(),
|
|
|
- studentId: (0, pg_core_1.uuid)('student_id').references(function () { return exports.users.id; }),
|
|
|
- classId: (0, pg_core_1.uuid)('class_id').references(function () { return exports.classes.id; }),
|
|
|
- sectionId: (0, pg_core_1.uuid)('section_id').references(function () { return exports.sections.id; }),
|
|
|
- isActive: (0, pg_core_1.boolean)('is_active').default(true),
|
|
|
- createdAt: (0, pg_core_1.timestamp)('created_at').defaultNow(),
|
|
|
-});
|
|
|
-// Tabla de asistencia
|
|
|
-exports.attendance = (0, pg_core_1.pgTable)('attendance', {
|
|
|
- id: (0, pg_core_1.uuid)('id').defaultRandom().primaryKey(),
|
|
|
- studentId: (0, pg_core_1.uuid)('student_id').references(function () { return exports.users.id; }),
|
|
|
- classId: (0, pg_core_1.uuid)('class_id').references(function () { return exports.classes.id; }),
|
|
|
- sectionId: (0, pg_core_1.uuid)('section_id').references(function () { return exports.sections.id; }),
|
|
|
- teacherId: (0, pg_core_1.uuid)('teacher_id').references(function () { return exports.users.id; }),
|
|
|
- partialId: (0, pg_core_1.uuid)('partial_id').references(function () { return exports.partials.id; }),
|
|
|
- date: (0, pg_core_1.date)('date').notNull(),
|
|
|
- status: (0, pg_core_1.varchar)('status', { length: 20 }).notNull(), // 'present', 'absent', 'justified'
|
|
|
- reason: (0, pg_core_1.text)('reason'), // Motivo de falta o justificación
|
|
|
- createdAt: (0, pg_core_1.timestamp)('created_at').defaultNow(),
|
|
|
-});
|
|
|
-// Relaciones
|
|
|
-exports.usersRelations = (0, drizzle_orm_1.relations)(exports.users, function (_a) {
|
|
|
- var many = _a.many;
|
|
|
- return ({
|
|
|
- teacherAssignments: many(exports.teacherAssignments),
|
|
|
- studentEnrollments: many(exports.studentEnrollments),
|
|
|
- attendanceAsStudent: many(exports.attendance, { relationName: 'studentAttendance' }),
|
|
|
- attendanceAsTeacher: many(exports.attendance, { relationName: 'teacherAttendance' }),
|
|
|
- });
|
|
|
-});
|
|
|
-exports.periodsRelations = (0, drizzle_orm_1.relations)(exports.periods, function (_a) {
|
|
|
- var many = _a.many;
|
|
|
- return ({
|
|
|
- partials: many(exports.partials),
|
|
|
- sections: many(exports.sections),
|
|
|
- });
|
|
|
-});
|
|
|
-exports.partialsRelations = (0, drizzle_orm_1.relations)(exports.partials, function (_a) {
|
|
|
- var one = _a.one;
|
|
|
- return ({
|
|
|
- period: one(exports.periods, {
|
|
|
- fields: [exports.partials.periodId],
|
|
|
- references: [exports.periods.id],
|
|
|
- }),
|
|
|
- });
|
|
|
-});
|
|
|
-exports.classesRelations = (0, drizzle_orm_1.relations)(exports.classes, function (_a) {
|
|
|
- var one = _a.one, many = _a.many;
|
|
|
- return ({
|
|
|
- period: one(exports.periods, {
|
|
|
- fields: [exports.classes.periodId],
|
|
|
- references: [exports.periods.id],
|
|
|
- }),
|
|
|
- sections: many(exports.sections),
|
|
|
- teacherAssignments: many(exports.teacherAssignments),
|
|
|
- studentEnrollments: many(exports.studentEnrollments),
|
|
|
- attendance: many(exports.attendance),
|
|
|
- });
|
|
|
-});
|
|
|
-exports.sectionsRelations = (0, drizzle_orm_1.relations)(exports.sections, function (_a) {
|
|
|
- var one = _a.one, many = _a.many;
|
|
|
- return ({
|
|
|
- class: one(exports.classes, {
|
|
|
- fields: [exports.sections.classId],
|
|
|
- references: [exports.classes.id],
|
|
|
- }),
|
|
|
- teacherAssignments: many(exports.teacherAssignments),
|
|
|
- studentEnrollments: many(exports.studentEnrollments),
|
|
|
- attendance: many(exports.attendance),
|
|
|
- });
|
|
|
-});
|
|
|
-exports.teacherAssignmentsRelations = (0, drizzle_orm_1.relations)(exports.teacherAssignments, function (_a) {
|
|
|
- var one = _a.one;
|
|
|
- return ({
|
|
|
- teacher: one(exports.users, {
|
|
|
- fields: [exports.teacherAssignments.teacherId],
|
|
|
- references: [exports.users.id],
|
|
|
- }),
|
|
|
- class: one(exports.classes, {
|
|
|
- fields: [exports.teacherAssignments.classId],
|
|
|
- references: [exports.classes.id],
|
|
|
- }),
|
|
|
- section: one(exports.sections, {
|
|
|
- fields: [exports.teacherAssignments.sectionId],
|
|
|
- references: [exports.sections.id],
|
|
|
- }),
|
|
|
- });
|
|
|
-});
|
|
|
-exports.studentEnrollmentsRelations = (0, drizzle_orm_1.relations)(exports.studentEnrollments, function (_a) {
|
|
|
- var one = _a.one;
|
|
|
- return ({
|
|
|
- student: one(exports.users, {
|
|
|
- fields: [exports.studentEnrollments.studentId],
|
|
|
- references: [exports.users.id],
|
|
|
- }),
|
|
|
- class: one(exports.classes, {
|
|
|
- fields: [exports.studentEnrollments.classId],
|
|
|
- references: [exports.classes.id],
|
|
|
- }),
|
|
|
- section: one(exports.sections, {
|
|
|
- fields: [exports.studentEnrollments.sectionId],
|
|
|
- references: [exports.sections.id],
|
|
|
- }),
|
|
|
- });
|
|
|
-});
|
|
|
-exports.attendanceRelations = (0, drizzle_orm_1.relations)(exports.attendance, function (_a) {
|
|
|
- var one = _a.one;
|
|
|
- return ({
|
|
|
- student: one(exports.users, {
|
|
|
- fields: [exports.attendance.studentId],
|
|
|
- references: [exports.users.id],
|
|
|
- relationName: 'studentAttendance',
|
|
|
- }),
|
|
|
- teacher: one(exports.users, {
|
|
|
- fields: [exports.attendance.teacherId],
|
|
|
- references: [exports.users.id],
|
|
|
- relationName: 'teacherAttendance',
|
|
|
- }),
|
|
|
- class: one(exports.classes, {
|
|
|
- fields: [exports.attendance.classId],
|
|
|
- references: [exports.classes.id],
|
|
|
- }),
|
|
|
- section: one(exports.sections, {
|
|
|
- fields: [exports.attendance.sectionId],
|
|
|
- references: [exports.sections.id],
|
|
|
- }),
|
|
|
- partial: one(exports.partials, {
|
|
|
- fields: [exports.attendance.partialId],
|
|
|
- references: [exports.partials.id],
|
|
|
- }),
|
|
|
- });
|
|
|
-});
|