Files
WebWork/backend/models/Course.js

43 lines
1.2 KiB
JavaScript

const db = require('../config/database');
class Course {
static async findByTeacherId(teacherId) {
return await db.query(
'SELECT * FROM courses WHERE teacher_id = ? ORDER BY course_code',
[teacherId]
);
}
static async findById(id) {
const rows = await db.query('SELECT * FROM courses WHERE id = ?', [id]);
return rows[0];
}
static async findDetailsById(id) {
const sql = `
SELECT c.*, u.name as teacher_name, cl.class_name
FROM courses c
JOIN users u ON c.teacher_id = u.id
JOIN classes cl ON c.class_id = cl.id
WHERE c.id = ?
`;
const rows = await db.query(sql, [id]);
return rows[0];
}
static async findByStudentId(studentId) {
const sql = `
SELECT c.*, u.name as teacher_name
FROM courses c
JOIN classes cl ON c.class_id = cl.id
JOIN students s ON cl.class_name = s.class
JOIN users u ON c.teacher_id = u.id
WHERE s.id = ?
ORDER BY c.course_code
`;
return await db.query(sql, [studentId]);
}
}
module.exports = Course;