Koleksi chat_inbox menyimpan pesan masuk (inbound) dan keluar (outbound). Field Jenis membedakan arah, StatusAck melacak status pengiriman outbound.
Model
models/mongo_chatinbox.go:33 — ChatInboxStruct:
| Field | BSON key | Tipe | Nullable | Catatan |
|---|---|---|---|---|
ID | id | string | ❌ | Primary key (UUID) |
Pesan | pesan | string | ❌ | Konten pesan |
Caption | caption | *string | ✅ | Untuk media |
Nohp | nohp | string | ❌ | Nomor tujuan/pengirim |
Waktu | waktu | string | ❌ | Timestamp (string, bukan ISODate) |
Jenis | jenis | string | ❌ | "masuk" (inbound) / "keluar" (outbound) |
Status | status | int | ❌ | Read status (0=unread, 1=read) |
IdUser | id_user | string | ❌ | User ID pengirim |
IdCs | id_cs | string | ❌ | CS yang menangani |
IdGudang | id_gudang | []string | ❌ | Eskalasi warehouse |
IdTeam | id_team | string | ❌ | Team ID |
Instance | instance | string | ❌ | Device instance |
Nama | nama | string | ❌ | Nama kontak |
Chatid | chatid | string | ❌ | Chat ID |
Role | role | string | ❌ | Role pengirim (CS/Owner/bot) |
Profilepic | profilepic | string | ❌ | URL foto profil |
Isforwarded | isforwarded | string | ❌ | Flag forward |
Tipe | tipe | string | ❌ | Jenis pesan: text/image/video/document/audio/link/location |
Lat | lat | *string | ✅ | Latitude (untuk location) |
Lng | lng | *string | ✅ | Longitude |
LocationName | — | string | ❌ | Nama lokasi (json only, no bson tag) |
LocationAddress | — | string | ❌ | Alamat lokasi (json only, no bson tag) |
StatusAck | status_ack | string | ❌ | pending / sent / error |
Quotemsgbody | quotemsgbody | *string | ✅ | Body pesan yang di-quote |
MatchedText | matchedText | string | ❌ | Text yang match (link preview) |
Kategori | kategori | string | ❌ | Kategori pesan |
Groupname | groupname | string | ❌ | Nama grup (jika g.us) |
Proses | proses | int | ❌ | Flag proses |
Jalur | jalur | string | ❌ | "API" / "WA" / dll. |
Ptt | ptt | *string | ✅ | Push-to-talk audio |
Isbc | isbc | int | ❌ | Broadcast flag (0/1) |
PesanId | pesan_id | *string | ✅ | ID pesan WA |
IsRead | is_read | int | ❌ | Read flag |
IsStart | is_start | int | ❌ | Start chat flag |
Noted | noted | *string | ✅ | Catatan |
Username | — | string | ❌ | gorm:"" — legacy, no bson |
ChatStatus | chat_status | string | ❌ | Status chat (new/open/close/pending) |
ChatListId | chat_list_id | string | ❌ | Link ke chat_list |
TempId | temp_id | *string | ✅ | Temp ID |
RawMessage | raw_message | string | ❌ | Raw message blob |
QuotedMessage | quotedmessage | *QuotesMessageStructFormated | ✅ | Pesan yang di-quote |
Contact | contact | *ContactStructFormated | ✅ | Contact card |
Sub-struct: QuotesMessageStructFormated
mongo_chatinbox.go:3:
| Field | BSON key | Tipe |
|---|---|---|
StanzaId | stanzaId | string |
Participant | participant | string |
Conversation | conversation | string |
Tipe | tipe | string |
MediaUrl | mediaUrl | string |
Sub-struct: ContactStructFormated
mongo_chatinbox.go:11:
| Field | BSON key | Tipe |
|---|---|---|
Nama | nama | string |
Nohp | nohp | string |
Desc | desc | string |
Status ACK lifecycle
| Nilai | Arti | Setter |
|---|---|---|
pending | Menunggu dikirim | Handler Go (saat insert outbound) |
sent | Berhasil terkirim | Node engine (setelah WA gateway confirm) |
error | Gagal | Handler Go (express mode) atau Node engine |
Cara akses di handler
Inbound (dari callback_message)
handlers/chat_callback.go:529:
errCBX := CreateChatInbox(newChatInbox)Outbound (dari send_message dll.)
handlers/chat_submit.go:815:
errCBX := CreateChatInbox(chatInbox) // simpan ke chat_inbox duluTenant variants
| Tenant | Collection | Helper |
|---|---|---|
| default | chat_inbox | CreateChatInbox |
| admin | admin_chat_inbox | CreateChatInboxAdmin |
| crm | chat_inbox (CRM DB) | CreateChatInboxCrm — panic (MongoClientCrm nil) |
Catatan
Waktudisimpan sebagai string, bukan ISODate — format tidak konsisten antar handlerLocationNamedanLocationAddresstidak punyabson:tag — tidak di-persist ke MongoUsernamepunya taggorm:""— sisa era GORM, tidak adabson:tagIdGudangadalah array[]string, bukan string tunggal — satu pesan bisa di-eskalasi ke multiple warehouse
Kembali ke
- Schema Index — daftar semua koleksi
- Message Flow — alur pesan lengkap