# Story 1.3: Module Progress Update API

key: 1-3-module-progress-update-api
status: drafted
phase: backend-planning
note: Non-implementasi — kontrak & aturan idempotency saja.

## Ringkasan
Endpoint untuk mencatat progres belajar pengguna pada modul.

## Scope Backend
- Payload: { userId, moduleId, progressDelta, source }
- Idempotency key: header `Idempotency-Key`
- Persistence: aturan update (capped 0..100)

## Acceptance Gate
- Skema progres disetujui
- Idempotency & audit logging dibahas

## Kontrak (Outline)
- Route: POST /api/progress/module
- Request:
```
{ "userId":"u1", "moduleId":"m1", "progressDelta":10, "source":"lesson-view" }
```
- Response: 200
```
{ "moduleId":"m1", "totalProgress": 40 }
```