diff --git a/Backend/src/controllers/AuditController.ts b/Backend/src/controllers/AuditController.ts index a78c8d5a..5de912fc 100644 --- a/Backend/src/controllers/AuditController.ts +++ b/Backend/src/controllers/AuditController.ts @@ -169,8 +169,8 @@ export class AuditController { throw new ValidationError('No token provided'); } - if (days < 6) { - throw new ValidationError('Cannot delete logs newer than 6 days'); + if (days < 30) { + throw new ValidationError('Cannot delete logs newer than 30 days'); } const deleted = await auditService.deleteOldLogs(days); diff --git a/Backend/src/services/CoursesStudent.service.ts b/Backend/src/services/CoursesStudent.service.ts index 986695b1..f7b7c681 100644 --- a/Backend/src/services/CoursesStudent.service.ts +++ b/Backend/src/services/CoursesStudent.service.ts @@ -341,17 +341,15 @@ export class CoursesStudentService { } // Update last_accessed_at (fire-and-forget — ไม่ block response) - if (enrollment.status === 'ENROLLED') { - prisma.enrollment.update({ - where: { - unique_enrollment: { - user_id: decoded.id, - course_id, - }, + prisma.enrollment.update({ + where: { + unique_enrollment: { + user_id: decoded.id, + course_id, }, - data: { last_accessed_at: new Date() }, - }).catch(err => logger.warn(`Failed to update last_accessed_at: ${err}`)); - } + }, + data: { last_accessed_at: new Date() }, + }).catch(err => logger.warn(`Failed to update last_accessed_at: ${err}`)); // Get all lesson progress for this user and course const lessonIds = course.chapters.flatMap(ch => ch.lessons.map(l => l.id)); diff --git a/Backend/src/validators/ChaptersLesson.validator.ts b/Backend/src/validators/ChaptersLesson.validator.ts index 45d7687a..933a3e1a 100644 --- a/Backend/src/validators/ChaptersLesson.validator.ts +++ b/Backend/src/validators/ChaptersLesson.validator.ts @@ -79,7 +79,7 @@ export const UpdateLessonValidator = Joi.object({ 'number.min': 'Duration must be at least 0' }), sort_order: Joi.number().integer().min(0).optional(), - prerequisite_lesson_ids: Joi.array().items(Joi.number().integer().positive()).allow(null).optional(), + prerequisite_lesson_ids: Joi.array().items(Joi.number().integer().positive()).optional(), is_published: Joi.boolean().optional() }); diff --git a/Frontend-Learner/app.vue b/Frontend-Learner/app.vue index 8070d468..a1ac35c7 100644 --- a/Frontend-Learner/app.vue +++ b/Frontend-Learner/app.vue @@ -1,27 +1,20 @@ - diff --git a/Frontend-Learner/assets/css/main.css b/Frontend-Learner/assets/css/main.css index 7f1001f3..960858a7 100644 --- a/Frontend-Learner/assets/css/main.css +++ b/Frontend-Learner/assets/css/main.css @@ -113,9 +113,9 @@ body { background-attachment: fixed; } -/* a { +a { text-decoration: none; - color: #2563eb; + color: #3b82f6; transition: color 0.2s; } @@ -129,7 +129,7 @@ a:hover { .dark a:hover { color: #93c5fd; -} */ +} ul { list-style: none; @@ -645,9 +645,9 @@ ul { .rounded { border-radius: var(--radius-md); } -/* .border-b { +.border-b { border-bottom: 1px solid var(--border-color); -} */ +} .load-more-wrap { display: flex; justify-content: center; diff --git a/Frontend-Learner/components/classroom/AnnouncementModal.vue b/Frontend-Learner/components/classroom/AnnouncementModal.vue index 074ae27c..7c0b8356 100644 --- a/Frontend-Learner/components/classroom/AnnouncementModal.vue +++ b/Frontend-Learner/components/classroom/AnnouncementModal.vue @@ -1,7 +1,7 @@ @@ -32,7 +32,7 @@ const changeLocale = async (code: string) => { class="language-btn" :aria-label="$t('language.label')" > - + { diff --git a/Frontend-Learner/components/discovery/CategorySidebar.vue b/Frontend-Learner/components/discovery/CategorySidebar.vue index 692d26cf..15f238d4 100644 --- a/Frontend-Learner/components/discovery/CategorySidebar.vue +++ b/Frontend-Learner/components/discovery/CategorySidebar.vue @@ -1,7 +1,7 @@ diff --git a/Frontend-Learner/components/layout/AppSidebar.vue b/Frontend-Learner/components/layout/AppSidebar.vue index f359c349..6cdea9ef 100644 --- a/Frontend-Learner/components/layout/AppSidebar.vue +++ b/Frontend-Learner/components/layout/AppSidebar.vue @@ -1,145 +1,79 @@ diff --git a/Frontend-Learner/components/layout/LandingFooter.vue b/Frontend-Learner/components/layout/LandingFooter.vue index 6cb717b0..ddcefb4f 100644 --- a/Frontend-Learner/components/layout/LandingFooter.vue +++ b/Frontend-Learner/components/layout/LandingFooter.vue @@ -1,48 +1,56 @@