Commit Graph

19 Commits

Author SHA1 Message Date
24f1aca97a fix: return updated lesson from UpdateSubModuleLesson after is_active false
GetSubModuleLessonByID filters is_active=true, so refetch failed with 500
after soft-deactivating. Use RETURNING row from the update instead.

Made-with: Cursor
2026-04-18 02:54:47 -07:00
886b62ed68 feat(levels): flexible cefr_level codes up to 64 chars
- Migration 000038 drops fixed A1-C3 check and widens cefr_level column
- CreateLevel validates length and NUL only; preserve client casing
- Regenerate Swagger docs

Made-with: Cursor
2026-04-17 09:24:34 -07:00
7ff0b639cf added more structure to submodules 2026-04-17 09:07:25 -07:00
c5d3935062 added more structure to levels 2026-04-17 08:33:58 -07:00
518c3ee751 added more structure to lessons 2026-04-17 08:27:40 -07:00
1026354c24 Expand course hierarchy read APIs and practice retrieval.
Add list/detail endpoints for courses, levels, modules, submodules, and submodule practices; extend course listing queries; add lesson update support and clean up removed route paths.

Made-with: Cursor
2026-04-17 07:52:22 -07:00
343ce470cc add lesson and subcategory retrieval/update endpoints
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
2026-04-17 01:40:47 -07:00
01914cb81e Add lesson detail retrieval endpoints.
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
2026-04-16 02:42:21 -07:00
a9c6966820 add legacy learning-path GET endpoint for flows compatibility
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
2026-04-14 10:05:53 -07:00
57f0db269a add legacy category courses GET endpoint for compatibility
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
2026-04-14 09:21:13 -07:00
83f5541650 add course category deletion endpoint
Expose delete support for top-level course categories and cascade removal of linked sub-categories/courses for content-management cleanup.

Made-with: Cursor
2026-04-14 06:22:36 -07:00
542a597f41 fix module removal to delete actual module records
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
2026-04-14 05:58:37 -07:00
9123ff571d add sub-category deletion endpoint for course management
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
2026-04-14 05:45:16 -07:00
0cc813d224 fix course creation linkage to sub-categories
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
2026-04-14 05:23:24 -07:00
2ff1e89263 more course CRUD fix 2026-04-14 05:04:38 -07:00
5858aeb744 course CRUD fix 2026-04-14 04:06:49 -07:00
e3afadf2bb 404 errors fix 2026-04-14 03:56:49 -07:00
d9783310d1 Add legacy hierarchy fallback for pre-migration databases.
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
2026-04-14 01:02:31 -07:00
7613eb583a new course management hierarchy 2026-04-10 03:06:30 -07:00