269 lines
6.6 KiB
Markdown
269 lines
6.6 KiB
Markdown
# Mobile API Blueprint
|
|
|
|
Dokumen ini merangkum:
|
|
- endpoint mobile per role
|
|
- layar minimum yang dibutuhkan aplikasi mobile
|
|
- batas scope mobile yang sengaja dipertahankan agar tetap praktis
|
|
|
|
## Prinsip
|
|
|
|
- Mobile memakai auth yang sama dengan web.
|
|
- Login lewat `POST /api/v1/auth/login`, lalu kirim `Authorization: Bearer <session_token>`.
|
|
- Semua endpoint mobile berada di prefix `/api/v1/mobile`.
|
|
- Mobile fokus ke operasi cepat, scan, input lapangan, monitoring, dan closing ringan.
|
|
- Fitur admin berat seperti `users`, `settings`, `audit-trail`, dan master data lengkap tetap web-only.
|
|
|
|
## Role Mobile
|
|
|
|
Role yang didukung di mobile:
|
|
- `WAREHOUSE`
|
|
- `QC`
|
|
- `SALES`
|
|
- `PURCHASING`
|
|
- `OWNER`
|
|
|
|
Role yang tidak menjadi target mobile utama:
|
|
- `ADMIN`
|
|
- `SYSTEM_ADMIN`
|
|
|
|
## Bootstrap Umum
|
|
|
|
Semua role mobile memakai:
|
|
- `GET /api/v1/mobile/bootstrap`
|
|
- `GET /api/v1/mobile/dashboard?locale=id|en`
|
|
|
|
`/mobile/bootstrap` mengembalikan:
|
|
- user session
|
|
- daftar modul yang boleh diakses role tersebut
|
|
- summary ringkas operasional
|
|
- grade aktif
|
|
- gudang aktif dan lokasi aktif
|
|
- master transformation mode
|
|
|
|
## Matriks Endpoint Per Role
|
|
|
|
### Warehouse
|
|
|
|
Tujuan:
|
|
- scan lot
|
|
- submit purchase yang otomatis membuat receipt dan lot
|
|
- buat penyesuaian stok
|
|
- kirim / selesaikan washing
|
|
|
|
Endpoint:
|
|
- `GET /api/v1/mobile/bootstrap`
|
|
- `GET /api/v1/mobile/dashboard`
|
|
- `GET /api/v1/mobile/lots`
|
|
- `GET /api/v1/mobile/lots/:id`
|
|
- `GET /api/v1/mobile/lots/scan?code=...`
|
|
- `GET /api/v1/mobile/purchases`
|
|
- `GET /api/v1/mobile/purchases/:id`
|
|
- `POST /api/v1/mobile/purchases/:id/submit`
|
|
- `GET /api/v1/mobile/stock-adjustments/bootstrap`
|
|
- `GET /api/v1/mobile/stock-adjustments`
|
|
- `POST /api/v1/mobile/stock-adjustments`
|
|
- `GET /api/v1/mobile/washing/bootstrap`
|
|
- `GET /api/v1/mobile/washing`
|
|
- `POST /api/v1/mobile/washing`
|
|
- `PUT /api/v1/mobile/washing/:id`
|
|
- `POST /api/v1/mobile/washing/:id/complete`
|
|
|
|
### QC
|
|
|
|
Tujuan:
|
|
- scan lot
|
|
- lihat detail lineage lot
|
|
- ubah grade / mixing
|
|
- bantu washing completion
|
|
- buat penyesuaian stok terkait QC
|
|
|
|
Endpoint:
|
|
- `GET /api/v1/mobile/bootstrap`
|
|
- `GET /api/v1/mobile/dashboard`
|
|
- `GET /api/v1/mobile/lots`
|
|
- `GET /api/v1/mobile/lots/:id`
|
|
- `GET /api/v1/mobile/lots/scan?code=...`
|
|
- `GET /api/v1/mobile/washing/bootstrap`
|
|
- `GET /api/v1/mobile/washing`
|
|
- `PUT /api/v1/mobile/washing/:id`
|
|
- `POST /api/v1/mobile/washing/:id/complete`
|
|
- `GET /api/v1/mobile/lot-transformations`
|
|
- `POST /api/v1/mobile/lot-transformations`
|
|
- `GET /api/v1/mobile/lot-transformations/:id`
|
|
- `GET /api/v1/mobile/stock-adjustments/bootstrap`
|
|
- `GET /api/v1/mobile/stock-adjustments`
|
|
- `POST /api/v1/mobile/stock-adjustments`
|
|
|
|
### Sales
|
|
|
|
Tujuan:
|
|
- lihat stok jual
|
|
- buat penjualan reguler
|
|
- buat penjualan JIT
|
|
- buat titip jual
|
|
- tutup transaksi
|
|
|
|
Endpoint:
|
|
- `GET /api/v1/mobile/bootstrap`
|
|
- `GET /api/v1/mobile/dashboard`
|
|
- `GET /api/v1/mobile/lots`
|
|
- `GET /api/v1/mobile/lots/:id`
|
|
- `GET /api/v1/mobile/lots/scan?code=...`
|
|
- `GET /api/v1/mobile/sales-regular/bootstrap`
|
|
- `GET /api/v1/mobile/sales-regular`
|
|
- `POST /api/v1/mobile/sales-regular`
|
|
- `GET /api/v1/mobile/sales-regular/:id`
|
|
- `POST /api/v1/mobile/sales-regular/:id/close`
|
|
- `GET /api/v1/mobile/sales-jit/bootstrap`
|
|
- `GET /api/v1/mobile/sales-jit`
|
|
- `POST /api/v1/mobile/sales-jit`
|
|
- `GET /api/v1/mobile/sales-jit/:id`
|
|
- `POST /api/v1/mobile/sales-jit/:id/close`
|
|
- `GET /api/v1/mobile/consignments/bootstrap`
|
|
- `GET /api/v1/mobile/consignments`
|
|
- `POST /api/v1/mobile/consignments`
|
|
- `GET /api/v1/mobile/consignments/:id`
|
|
- `POST /api/v1/mobile/consignments/lines/:lineId/close`
|
|
|
|
### Purchasing
|
|
|
|
Tujuan:
|
|
- buat draft pembelian
|
|
- edit / submit pembelian
|
|
- buat permintaan dana
|
|
- monitor analisis dan realisasi pembelian
|
|
|
|
Endpoint:
|
|
- `GET /api/v1/mobile/bootstrap`
|
|
- `GET /api/v1/mobile/dashboard`
|
|
- `GET /api/v1/mobile/purchases`
|
|
- `POST /api/v1/mobile/purchases`
|
|
- `GET /api/v1/mobile/purchases/:id`
|
|
- `PUT /api/v1/mobile/purchases/:id`
|
|
- `POST /api/v1/mobile/purchases/:id/submit`
|
|
- `POST /api/v1/mobile/purchases/:id/cancel`
|
|
- `GET /api/v1/mobile/fund-requests/bootstrap`
|
|
- `GET /api/v1/mobile/fund-requests`
|
|
- `POST /api/v1/mobile/fund-requests`
|
|
- `GET /api/v1/mobile/purchase-analyses`
|
|
- `GET /api/v1/mobile/purchase-analyses/:purchaseId`
|
|
- `GET /api/v1/mobile/purchase-realizations`
|
|
- `GET /api/v1/mobile/purchase-realizations/:purchaseId`
|
|
|
|
### Owner
|
|
|
|
Tujuan:
|
|
- monitoring dashboard
|
|
- lihat analisis pembelian
|
|
- lihat realisasi pembelian
|
|
- lihat status transaksi penting
|
|
|
|
Endpoint minimum:
|
|
- `GET /api/v1/mobile/bootstrap`
|
|
- `GET /api/v1/mobile/dashboard`
|
|
- `GET /api/v1/mobile/purchases`
|
|
- `GET /api/v1/mobile/purchases/:id`
|
|
- `GET /api/v1/mobile/fund-requests`
|
|
- `GET /api/v1/mobile/purchase-analyses`
|
|
- `GET /api/v1/mobile/purchase-analyses/:purchaseId`
|
|
- `GET /api/v1/mobile/purchase-realizations`
|
|
- `GET /api/v1/mobile/purchase-realizations/:purchaseId`
|
|
- `GET /api/v1/mobile/sales-regular`
|
|
- `GET /api/v1/mobile/sales-jit`
|
|
- `GET /api/v1/mobile/consignments`
|
|
- `GET /api/v1/mobile/washing`
|
|
|
|
## Layar Minimum Per Role
|
|
|
|
### Warehouse
|
|
|
|
Layar minimum:
|
|
1. Login
|
|
2. Dashboard ringkas
|
|
3. Scan lot
|
|
4. Detail lot
|
|
5. Daftar pembelian siap submit
|
|
6. Submit pembelian yang otomatis membuat receipt + lot
|
|
7. Penyesuaian stok
|
|
8. Daftar washing
|
|
9. Buat washing
|
|
10. Selesaikan washing
|
|
|
|
### QC
|
|
|
|
Layar minimum:
|
|
1. Login
|
|
2. Dashboard ringkas
|
|
3. Scan lot
|
|
4. Detail lot dan turunan lot
|
|
5. Daftar transformasi
|
|
6. Buat mixing / ubah grade
|
|
7. Daftar washing
|
|
8. Selesaikan washing
|
|
9. Penyesuaian stok QC
|
|
|
|
### Sales
|
|
|
|
Layar minimum:
|
|
1. Login
|
|
2. Dashboard ringkas
|
|
3. Stok siap jual
|
|
4. Scan lot
|
|
5. Buat penjualan reguler
|
|
6. Detail dan tutup penjualan reguler
|
|
7. Buat penjualan JIT
|
|
8. Detail dan tutup penjualan JIT
|
|
9. Buat titip jual
|
|
10. Detail dan tutup item titip jual
|
|
|
|
### Purchasing
|
|
|
|
Layar minimum:
|
|
1. Login
|
|
2. Dashboard ringkas
|
|
3. Daftar pembelian
|
|
4. Form draft pembelian
|
|
5. Detail pembelian
|
|
6. Submit pembelian
|
|
7. Daftar permintaan dana
|
|
8. Form permintaan dana
|
|
9. Daftar analisis pembelian
|
|
10. Daftar realisasi pembelian
|
|
|
|
### Owner
|
|
|
|
Layar minimum:
|
|
1. Login
|
|
2. Dashboard ringkas
|
|
3. Daftar pembelian
|
|
4. Detail pembelian
|
|
5. Daftar analisis pembelian
|
|
6. Detail analisis pembelian
|
|
7. Daftar realisasi pembelian
|
|
8. Detail realisasi pembelian
|
|
9. Daftar transaksi keluar
|
|
10. Daftar washing
|
|
|
|
## Scope Yang Sengaja Tidak Dibawa ke Mobile
|
|
|
|
- manajemen user
|
|
- pengaturan sistem
|
|
- audit trail penuh
|
|
- master data lengkap
|
|
- office buyout
|
|
- print label / dokumen
|
|
- laporan web yang kompleks
|
|
|
|
## Urutan Implementasi UI Mobile yang Disarankan
|
|
|
|
1. Warehouse
|
|
2. QC
|
|
3. Sales
|
|
4. Purchasing
|
|
5. Owner
|
|
|
|
Alasannya:
|
|
- Warehouse dan QC paling sering butuh scan dan aksi lapangan cepat
|
|
- Sales di urutan berikutnya karena butuh transaksi tapi tidak banyak input master
|
|
- Purchasing dan Owner lebih banyak monitoring dan persetujuan ringan
|