Files
AbelBirdNest-mobile/mobile-api-blueprint.md

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