GetSubModuleLessonByID filters is_active=true, so refetch failed with 500
after soft-deactivating. Use RETURNING row from the update instead.
Made-with: Cursor
Introduce dedicated APIs for submodule lesson detail/update and subcategory listing (including Human Language), with SQL/query wiring and handler routing updates.
Made-with: Cursor
Expose APIs to list lessons by submodule and fetch a single lesson by ID, including title, description, intro video URL, and question count.
Made-with: Cursor
Expose GET /course-management/courses/:courseId/learning-path and build response from unified hierarchy tables so first-time Flows tab loads no longer fail with Cannot GET.
Made-with: Cursor
Expose GET /course-management/categories/:categoryId/courses so legacy tab/API callers no longer fail with Cannot GET during initial content load.
Made-with: Cursor
Replace rename-based lesson migration with additive sub_module_lessons creation, preserve sub_module_practices as its own model, and enforce QUIZ/PRACTICE filtering in hierarchy reads to prevent cross-mixing.
Made-with: Cursor
Expose delete support for top-level course categories and cascade removal of linked sub-categories/courses for content-management cleanup.
Made-with: Cursor
Add a module delete API route and handler so level/module removal actions remove modules directly instead of only deleting sub-modules.
Made-with: Cursor
Introduce a compatibility delete route and handler for course sub-categories and cascade-delete their linked courses to support admin content cleanup flows.
Made-with: Cursor
Allow course creation payloads to include sub_category_id and persist it so newly created language paths appear in unified hierarchy views.
Made-with: Cursor
Expose /course-management/human-language/hierarchy as an alias to the unified hierarchy handler so older admin clients continue working without 404s.
Made-with: Cursor
Handle missing course_sub_categories table by serving hierarchy data from legacy categories/courses queries so content pages keep loading until unified hierarchy migration is applied.
Made-with: Cursor
Enhance hierarchy parsing to group Module-N and Module-N.M naming into stable module/sub-module structures under each CEFR level for consistent rendering.
Made-with: Cursor
Expose a dedicated human-language hierarchy endpoint aligned to category/subcategory/course/level/module/sub-module structure and add a complete learner mobile integration guide.
Made-with: Cursor
Introduce separate CEFR-based human language lesson APIs for create, update, and level-filtered retrieval while keeping existing non-language course hierarchy endpoints unchanged.
Made-with: Cursor