Versi 1
| Field | Isi |
|---|---|
| Dokumen ID | VBS-BRD-001 |
| Deskripsi | Manajemen brand milik user: melihat dan mencari daftar brand, mengajukan brand baru yang menunggu persetujuan Vobis, membuka atau berpindah brand, dan masuk ke halaman kelola brand |
| Nomor Revisi | 1 |
| Tanggal | 2026-10-04 |
| Keterangan | Dokumentasi baseline dari dokumentasi fitur demo dan kode FE |
1. Ringkasan
a. In scope
- User dapat melihat daftar brand yang dimilikinya atau yang sudah diberi akses.
- User dapat mencari brand berdasarkan nama brand.
- User dapat menambah brand baru dengan mengisi nama brand dan jenis usaha, lalu brand menunggu persetujuan dari pihak Vobis sebelum mendapat akses penuh.
- User dapat membuka sebuah brand atau berpindah ke brand lain tanpa logout.
- Sistem hanya mengizinkan user yang terdaftar di brand (atau admin Vobis) untuk masuk ke brand tersebut.
- Sistem membatasi jam akses brand untuk user non admin brand sesuai jam operasional brand.
- User dapat membuka halaman Kelola Brand (Konfigurasi, Role, User) dari menu akun.
b. Catatan
c. Kesimpulan
- [FE] -
- [BE] -
2. Functional Requirement
| Kode | Deskripsi |
|---|---|
| FR-01 | Sistem menampilkan daftar brand aktif milik user (atau semua brand untuk admin Vobis) |
| FR-02 | Sistem menyediakan pencarian brand berdasarkan nama brand |
| FR-03 | User dapat mengajukan brand baru dengan nama brand dan jenis usaha, status menunggu approval Vobis |
| FR-04 | Sistem memuat info brand, memvalidasi keanggotaan user di brand, dan menyiapkan konteks brand aktif |
| FR-05 | Sistem menolak akses user non admin brand di luar jam operasional brand |
| FR-06 | Sistem memuat hak akses fitur user untuk brand aktif |
| FR-07 | User dapat berpindah brand dan sistem membersihkan data brand sebelumnya |
| FR-08 | User dapat membuka halaman Kelola Brand (Konfigurasi, Role, User) di Accounts |
3. Use Case List
| Kode | Deskripsi |
|---|---|
| UC-01 | Melihat daftar brand milik user |
| UC-02 | Mencari brand berdasarkan nama |
| UC-03 | Menambah brand baru dan menunggu approval |
| UC-04 | Membuka brand |
| UC-05 | Berpindah ke brand lain |
| UC-06 | Membuka halaman Kelola Brand |
4. Use Case Scenario
UC-01 : Melihat daftar brand milik user
| Aktor | Owner brand / user brand |
| Deskripsi | User melihat daftar brand yang dimiliki atau yang bisa ia akses |
| Prekondisi | User sudah login |
| Alur utama | 1. User membuka halaman awal Accounts atau membuka dropdown brand di header Books. 2. Sistem memuat daftar brand aktif milik user. 3. Sistem menampilkan nama-nama brand. |
| Alur negatif | - Jika token login kosong atau tidak valid, user diarahkan ke halaman login Accounts. - Jika gagal memuat, daftar brand kosong dan muncul teks "Brand yang dicari tidak ada". |
| Bisnis rule | - Hanya brand dengan status aktif yang ditampilkan. - User biasa hanya melihat brand miliknya ( user_id = user login).- Admin Vobis melihat semua brand (tanpa filter user_id).- Daftar dimuat maksimal 100 brand per permintaan di header. |
| Postkondisi | Daftar brand tampil |
| Trigger | User membuka halaman awal Accounts / dropdown brand |
| Kode FR | FR-01 |
UC-02 : Mencari brand berdasarkan nama
| Aktor | Owner brand / user brand |
| Deskripsi | User mempersempit daftar brand dengan kata kunci nama brand |
| Prekondisi | Daftar brand sudah termuat |
| Alur utama | 1. User mengetik kata kunci pada kolom "Cari Nama Brand". 2. Sistem menyaring daftar brand yang namanya mengandung kata kunci. 3. Sistem menampilkan hasil penyaringan. |
| Alur negatif | - Jika tidak ada brand yang cocok, muncul teks "Brand yang dicari tidak ada". |
| Bisnis rule | - Pencarian tidak membedakan huruf besar dan kecil. - Di header Books, pencarian dilakukan di sisi klien terhadap daftar yang sudah dimuat. |
| Postkondisi | Daftar brand tersaring |
| Trigger | User mengetik kata kunci pencarian |
| Kode FR | FR-02 |
UC-03 : Menambah brand baru dan menunggu approval
| Aktor | User Accounts |
| Deskripsi | User mengajukan brand baru untuk dikelola di Vobis |
| Prekondisi | User sudah login di Accounts |
| Alur utama | 1. User memilih Tambah Brand di halaman awal Accounts. 2. User mengisi nama brand dan jenis usaha. 3. User menyimpan. 4. Sistem membuat brand dengan status menunggu approval dari pihak Vobis. |
| Alur negatif | - Jika nama brand atau jenis usaha kosong, data tidak bisa disimpan. - Selama belum di-approve, brand belum mendapat akses penuh ke fitur Books. |
| Bisnis rule | - Brand baru wajib melalui approval pihak Vobis. - Satu user boleh memiliki lebih dari satu brand, masing-masing dengan konfigurasi, role, dan user sendiri. |
| Postkondisi | Brand baru tercatat dengan status menunggu approval |
| Trigger | User menekan Simpan pada form tambah brand |
| Kode FR | FR-03 |
UC-04 : Membuka brand
| Aktor | Owner brand / user brand |
| Deskripsi | User masuk ke Books dengan brand terpilih sebagai konteks kerja |
| Prekondisi | User sudah login dan terverifikasi Brand tersedia bagi user |
| Alur utama | 1. User memilih brand dari daftar. 2. Sistem memuat info brand dan konfigurasinya. 3. Sistem memastikan user terdaftar di brand dan memuat hak akses fitur user. 4. Sistem menampilkan dashboard brand. |
| Alur negatif | - Jika token kosong atau akun belum terverifikasi, user diarahkan ke login Accounts. - Jika user bukan anggota brand dan bukan admin Vobis, user diarahkan ke Accounts. - Jika di luar jam operasional dan user bukan admin brand, muncul alert "Your Brand operasional is closed" lalu user diarahkan ke Accounts. - Jika masa trial berakhir, user hanya bisa membuka halaman dashboard brand. |
| Bisnis rule | - Header X-Brand diisi id brand aktif untuk semua permintaan.- Zona waktu brand (default Asia/Jakarta) dikirim di header Timezone.- Jam operasional default 06:00 sampai 21:00 bila belum diatur. - Admin brand dan admin Vobis tidak dibatasi jam operasional. - Info brand di-cache per brand. |
| Postkondisi | Konteks brand aktif siap dan menu sesuai hak akses tampil |
| Trigger | User membuka URL brand di Books |
| Kode FR | FR-04 FR-05 FR-06 |
UC-05 : Berpindah ke brand lain
| Aktor | Owner brand / user brand |
| Deskripsi | User berpindah brand dari dropdown header tanpa logout |
| Prekondisi | User sedang berada di sebuah brand |
| Alur utama | 1. User membuka dropdown brand di header. 2. User memilih brand lain. 3. Sistem membersihkan data master brand sebelumnya. 4. Sistem membuka halaman yang sama pada brand tujuan. |
| Alur negatif | - Jika user tidak berhak atas brand tujuan, alur UC-04 mengarahkan user ke Accounts. |
| Bisnis rule | - Data barang, satuan, gudang, cluster produksi, supplier, person, customer, dan info brand dibersihkan sebelum pindah. - Halaman tambah tetap dipertahankan, halaman lihat atau edit dikembalikan ke level daftar. |
| Postkondisi | Brand aktif berganti |
| Trigger | User memilih brand dari dropdown |
| Kode FR | FR-07 FR-04 |
UC-06 : Membuka halaman Kelola Brand
| Aktor | Owner brand / admin brand |
| Deskripsi | User masuk ke Kelola Brand di Accounts untuk mengatur konfigurasi, role, dan user |
| Prekondisi | User berada di brand aktif |
| Alur utama | 1. User membuka menu akun di header. 2. User memilih Kelola Brand, Tambah User, atau Pengaturan Brand. 3. Sistem membuka halaman Kelola Brand di Accounts sesuai tab yang dipilih. |
| Alur negatif | - Jika sesi Accounts habis, user diminta login ulang. |
| Bisnis rule | - Kelola Brand terdiri dari Konfigurasi, Role, dan User. - Tambah User membuka tab user, Pengaturan Brand membuka tab role. |
| Postkondisi | Halaman Kelola Brand terbuka |
| Trigger | User memilih menu kelola di dropdown akun |
| Kode FR | FR-08 |
5. Data Flow Diagram
DFD-01
6. Sequence Diagram
SD-01 — UC-01 : Melihat daftar brand milik user
SD-02 — UC-02 : Mencari brand berdasarkan nama
SD-03 — UC-03 : Menambah brand baru dan menunggu approval
SD-04 — UC-04 : Membuka brand
SD-05 — UC-05 : Berpindah ke brand lain
SD-06 — UC-06 : Membuka halaman Kelola Brand
7. Table Schema
8. API Schema
| Endpoint | Status | Perubahan |
|---|---|---|
GET /brand-users/get-owned-brand | existing | - |
GET /brand/:brand_id | existing | - |
GET /user/get-authenticated | existing | - |
GET /subscribtion-feature/find-as-owner | existing | - |
GET /user/:id (BE Authorization) | existing | - |