D
Engineering

wallets

Schema collection wallets — saldo, bank account, dan DOKU sub-account toko.

Collection: wallets

Menyimpan data wallet toko — saldo, rekening bank, dan DOKU sub-account.

Struktur Dokumen

json
{
  "_id": "uuid-string",
  "store_id": "uuid-string",
  "balance": 150000,
  "processing_balance": 50000,
  "pending_balance": 0,
  "total_withdrawn": 500000,
  "bank_account": {
    "bank_code": "BCA",
    "account_number": "1234567890",
    "account_name": "John Doe"
  },
  "doku_sub_account_id": "SAC-xxxx-xxxxxxxxxxxxx",
  "created_at": "2026-01-01T00:00:00.000000Z",
  "updated_at": "2026-06-25T14:30:00.000000Z"
}

Field

FieldTypeDeskripsi
_idstring (UUID)Primary key
store_idstring (UUID)Foreign key ke stores._id
balanceintSaldo tersedia (bisa ditarik)
processing_balanceintSaldo sedang diproses (withdraw PENDING/PROCESSING)
pending_balanceintSaldo pending (belum settle)
total_withdrawnintTotal yang sudah ditarik
bank_accountobjectRekening bank untuk withdraw
bank_account.bank_codestringKode bank (BCA, BNI, Mandiri, dll)
bank_account.account_numberstringNomor rekening
bank_account.account_namestringNama pemilik rekening
doku_sub_account_idstringDOKU sub-account ID (SAC-xxx)
created_atDateTimeWaktu dibuat
updated_atDateTimeWaktu terakhir diupdate

Relasi

RelasiTypeKe
storebelongsTostores via store_id
transactionshasManywallet_transactions via wallet_id

Query Umum

javascript
// Cari wallet by store
db.wallets.findOne({ store_id: "uuid-store" })

// Cek saldo
db.wallets.find({ balance: { $gt: 0 } })

// Wallet dengan processing balance
db.wallets.find({ processing_balance: { $gt: 0 } })