asepharyana
|
7a5c560347
|
docs: materi + AI agent RAG (finding #6)
|
2026-08-05 17:26:48 +07:00 |
|
asepharyana
|
b4a9972ad7
|
docs: payment lifecycle complete (auto-paid refresh + dashboards)
|
2026-08-05 15:58:47 +07:00 |
|
asepharyana
|
aa0b659b48
|
docs: SMTP fixed + Midtrans provider status in audit findings
|
2026-08-05 13:38:02 +07:00 |
|
asepharyana
|
2ea6cd3d17
|
docs: payment flow status in audit findings
|
2026-08-05 09:32:37 +07:00 |
|
asepharyana
|
c6ed5c5c19
|
fix(dimentorin): verify-email validates OTP before activating user
- new app_otp_cache table + OtpCache entity (ResourceEnum::OtpCache)
- PostgresOtpRepository upsert/find/delete keyed by email
- register/resend persist otp_hash+expiry after email sent (no orphan OTP)
- verify_email validates via OtpManager::validate_otp_hash, single-use delete
- 8 unit tests pass, e2e verified: wrong OTP 400, correct OTP 200
|
2026-08-04 23:35:34 +07:00 |
|
asepharyana
|
3692b81324
|
feat(dimentorin): mentor stats endpoint public - total sessions, unique mentees, avg rating
- GET /mentors/{id}/stats (public, no auth)
- resolve mentor profile id -> user id in get_mentor_sessions (FK uses app_users.id)
|
2026-08-04 23:09:08 +07:00 |
|
MythEclipse
|
b429b3a9c7
|
postgress
|
2025-12-01 00:20:42 +07:00 |
|
Maulana Sodiqin
|
054f0f63ff
|
chore: adjust README.md
|
2025-04-07 20:08:26 +07:00 |
|