de95c4d0d2
feat: practice detail API, inactive purge tracking, and related plumbing
...
- Add GET /api/v1/course-management/practices/:practiceId/detail with full question items
- Add migration 000040 for sub-module content inactive purge tracking
- Hierarchy queries, sqlc gen, config/app purge job, swagger refresh
Made-with: Cursor
2026-04-20 08:24:59 -07:00
90baa582be
fix: load sub-module lesson by ID regardless of active flag
...
Course-management GET/PUT used GetSubModuleLessonByID with is_active=TRUE,
which returned no row for inactive lessons. Align with other ByID lookups
and allow admins to view and edit inactive lessons.
Made-with: Cursor
2026-04-20 00:48:13 -07:00
bbd919ca12
feat: optional include_inactive for sub-module lessons list
...
GET .../sub-modules/:id/lessons?include_inactive=true returns all lessons;
default remains active-only.
Made-with: Cursor
2026-04-18 03:25:28 -07:00
3e54b5039d
fix: surface DB error when team login refresh token issuance fails
...
Return err.Error() in the response so operators see e.g. missing
team_refresh_tokens table instead of a generic message.
Made-with: Cursor
2026-04-18 03:13:34 -07:00
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
ce1b827768
refresh token fix
2026-04-17 10:16:25 -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
a4d1f395da
add legacy human-language hierarchy route alias
...
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
2026-04-14 05:15:42 -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
69d3d440d0
permissions data seed fix
2026-04-14 00:39:42 -07:00
894e18bcae
removed all unnecessary data seed
2026-04-10 03:32:07 -07:00
7613eb583a
new course management hierarchy
2026-04-10 03:06:30 -07:00
7918e62ca9
normalize human language module and sub-module grouping
...
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
2026-04-07 06:30:54 -07:00
4055ad46f6
add hierarchy endpoint and mobile integration guide
...
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
2026-04-07 06:13:03 -07:00
9c9ab41f41
add dedicated human language backend endpoints
...
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
2026-04-07 05:40:15 -07:00
43f79d34ea
fetch practice pagination fix
2026-04-07 03:37:19 -07:00
cd8670d5a6
content filtering adjustment
2026-04-07 03:09:44 -07:00
58a94dcd8e
public URLs allowed
2026-04-07 01:18:16 -07:00
05cb8715f9
seed data clearer API
2026-03-29 01:31:43 -07:00
36134f32a2
reseed feature adjustment
2026-03-27 03:29:33 -07:00
3aca2c438d
foreign key fix
2026-03-27 02:49:20 -07:00
e6fe8ab7e3
reseed directory fix
2026-03-27 02:40:49 -07:00
4b46fd60dc
reseed config fix
2026-03-27 02:36:20 -07:00
0cb58b35f8
new reseed endpoint
2026-03-27 02:29:30 -07:00
8f719c2a32
.mp3 upload fix
2026-03-25 06:29:23 -07:00
e689f34212
minio .env access adjustment
2026-03-25 06:19:20 -07:00
b06b8645cf
data seed + file upload handle fixes
2026-03-24 04:58:05 -07:00
94d6777c48
more seed data
2026-03-23 05:24:29 -07:00
1f77b93ec7
empty notification title and message fix
2026-03-17 04:39:47 -07:00
800d2a4b3a
MinIO integration + speaking implementation adjustment
2026-03-12 07:06:16 -07:00
180e63e975
account deletion API
2026-03-11 06:26:30 -07:00
d4b25a1167
self account deletion API
2026-03-10 08:59:06 -07:00
d558739097
preogress tracker fix
2026-03-10 02:35:13 -07:00
515573d56e
course level progress tracker implementation
2026-03-09 11:20:16 -07:00
74efcd5ec2
learning flow + level + sublevel
2026-03-08 05:35:17 -07:00
3500db6435
learning flow fixes
2026-03-07 08:18:13 -08:00
f9da45da62
minor fixes
2026-03-06 06:03:05 -08:00
0226275d47
customer RBAC
2026-03-05 07:58:48 -08:00
d470b024b4
removed twilio
2026-03-05 01:30:33 -08:00
6e7b957551
Afro SMS integration fix
2026-03-04 10:53:01 -08:00
809ab90d30
bulk notification fix + custom role and permission feature implementation + activity log and user list filters
2026-03-04 09:10:28 -08:00
b5f5d80057
login type fix
2026-02-27 06:38:07 -08:00
7c6962909e
removed build files
2026-02-27 01:15:38 -08:00
130421e971
added cloudconvert for thumbnails + added ratings service
2026-02-18 02:56:08 -08:00
aa6194013c
analytics service + inapp notification websocket fix
2026-02-16 08:36:46 -08:00
7d626d059f
inapp notification fix
2026-02-13 06:59:14 -08:00
0f44e63692
cloud convert integration + more advanced activity log + issue reporting + video file management fixes
2026-02-11 06:54:05 -08:00
97c4f3d28f
team management + minor fixes
2026-02-06 10:47:42 -08:00
834a807edc
vimeo itegration + Google auth and fiberbase messaging minor fixes + profile completed status fix and profile progress (not course progress) tracker immplementation
2026-02-04 09:59:21 -08:00
7f1bf0e7f1
profile picture, birthday format and refresh token expiry fixes
2026-01-28 09:24:31 -08:00
839c8345a4
fixed the refresh token
2026-01-24 09:11:17 -08:00
5c3aef24e2
fixes for verify otp's success response structure
2026-01-24 08:48:31 -08:00
64c25699e9
course management and course data seed implementations
2026-01-24 06:29:42 -08:00
963cfbed29
changed web google auth to android google auth
2026-01-22 04:16:02 -08:00
d691edae8b
assessment question domain fix
2026-01-21 13:05:18 -08:00
68472b09b1
google auth integration
2026-01-21 12:43:02 -08:00
9ee1d7f714
changed age to agegroup, added refresh route, token generation after otp verification
2026-01-18 03:12:28 -08:00
513927f48f
data seed and authorization fixes
2026-01-14 02:27:26 -08:00
Kerod-Fresenbet-Gebremedhin2660
87e57ca548
fix: reading headers in middleware modified to be case insensitive
2026-01-12 10:00:11 +03:00
Kerod-Fresenbet-Gebremedhin2660
1846f121bf
test logs
2026-01-12 09:47:41 +03:00
6002b594c6
minimal registeration implementation
2026-01-09 06:35:22 -08:00
19ac718526
initial assessment implementation
2026-01-08 04:42:39 -08:00
7309a2bc83
updated the authentication method from username to email/phone_numner
2026-01-03 06:52:38 -08:00
d94774c138
schema adjustment and profile management fixes
2025-12-31 07:53:59 -08:00
8ed0a5f1c6
course management service
2025-12-30 07:00:02 -08:00
2c907a34db
added inittal assessment feature
2025-12-29 07:59:24 -08:00
915185c317
user and otp schema modification, SMTP setup using resend, afro SMS changed to direct API integration instead of using afoSMS library, most authentications implemented using username instead of email or phone number
2025-12-23 18:57:48 +03:00
47d70b029f
afro SMS and partial ArifPay Payment Gateway integrations
2025-12-18 18:06:26 +03:00
5e9046eb76
user and auth service refactoring, notification service SQL + repository adjustment
2025-12-16 18:05:57 +03:00
13c470079c
virtual_game_providers based SQL queries primary ID data type mismatch fix
2025-11-27 17:56:52 +03:00
168fcdf278
amount precision fix by removing float32() conversion of domain.Currency values
2025-11-27 14:20:21 +03:00
299825e797
favourtie game and virtual games + providers orchestration fixes
2025-11-18 16:39:37 +03:00
1c7e076be5
direct depost and veli games fix
2025-11-17 18:45:18 +03:00
fe7d9ad3b3
veli games bet response struct fix
2025-11-15 12:06:27 +03:00
e8c2213d30
veli games error types and bonus balance fixes
2025-11-14 16:27:55 +03:00
2a41a2426c
virtual games transaction amount mapping to domain.Currency fix
2025-11-13 16:00:52 +03:00
5693526bb5
veli games data type conflict fix
2025-11-07 12:39:27 +03:00
7804ffae03
changed version to v1.0.4
2025-11-06 19:15:39 +03:00
ab1d85897e
Merge remote-tracking branch 'origin/virtual_games'
2025-11-06 18:28:50 +03:00
d654d5f2ef
veli games fixes
2025-11-06 16:37:41 +03:00
46d70d7c8c
chapa minor fixes
2025-11-03 17:20:35 +03:00
e66ef8a740
chore: Updated version to v1.0.3
...
- Uncommented event service Crons
2025-11-01 23:34:54 +03:00
8d3127ff53
fix: disabling all odds market
2025-11-01 23:24:01 +03:00
aa893ddf74
feat: added new odd markets to football
2025-10-30 00:46:47 +03:00
1e39d75239
payment gateways wallet service fixes
2025-10-29 15:12:06 +03:00