Device WhatsApp per user store. Field naming non-standard (legacy). Satu device = satu koneksi WhatsApp.
Definisi model
app/Models/Device.php
| Properti | Nilai | Sumber |
|---|---|---|
| Collection | devices (default konvensi) | — |
$guarded | [] | Device.php:15 |
| SoftDeletes | ✅ | Device.php:13 |
| Casts | ❌ (tidak ada) | — |
| Primary key | UUID string | Device.php:16-17,19-25 |
Field
| Field | Tipe | Default | Sumber |
|---|---|---|---|
id | string UUID | generated | Device.php:23 |
sender | string | — | DeviceController.php:275,280 |
store_id | string | — | :281 (scope tenant) |
iduser | string | <user.id> | :282 |
tgl_expired | string | "" | :283 |
idpaket | integer | 2 | :284 |
token | string (50 char acak) | generated | :285 |
domain | string | 'v1' | :286 |
status | integer | 1 | :287 |
tanggal | string (Y-m-d H:i:s) | now | :288 |
setdefault | integer | 0 | :289 |
setsender | integer | 0 | :290 |
versi | string | 'enabled' | :291 |
webhook | string | "-" | :292 |
beta | integer | 1 | :293 |
delay_time | integer | 5 | :294 |
new_device | integer | 0 | :295 |
agent_id | string/null | — | :296,426,461 |
last_connected_at | string (Y-m-d H:i:s) | now | :297,193,893 |
port | string (3-digit) | generated | :302,309 |
last_status_connected | string | — | :192,198,892,898 ('Connected'/'Disconnected') |
no_wa | string | "" | :196,706,715,821,896 |
last_number_connected | string | — | :822 |
is_connected | string | — | :204 (response string di list()) |
deleted_at | datetime | — | SoftDeletes |
created_at | datetime | auto | — |
updated_at | datetime | auto | — |
Relasi
| Nama | Tipe | FK | Sumber |
|---|---|---|---|
user_store | hasOne | UserStore.id ← user_store_id | Device.php:27-29 |
agent | belongsTo | Agent.id ← agent_id | :31-35 |
Index & constraint
- Tidak ada index di model
- Field
portdi-generate unik viageneratePortDevice()(DeviceController.php:337-388) dengan cekDevice::pluck('port')— bukan DB constraint, hanya pengecekan aplikasi - Primary key: UUID string
Contoh dokumen
{
"_id": ObjectId("..."),
"id": "uuid-device",
"sender": "Toko Official",
"store_id": "<store.id>",
"iduser": "<user.id>",
"tgl_expired": "",
"idpaket": 2,
"token": "abc123...50char",
"domain": "v1",
"status": 1,
"tanggal": "2026-01-05 12:00:00",
"setdefault": 0,
"setsender": 0,
"versi": "enabled",
"webhook": "-",
"beta": 1,
"delay_time": 5,
"new_device": 0,
"agent_id": null,
"last_connected_at": "2026-01-05 12:00:00",
"port": "123",
"last_status_connected": "Disconnected",
"no_wa": "",
"created_at": ISODate("..."),
"updated_at": ISODate("...")
}DeviceService
app/Services/DeviceService.php hanya berisi HTTP client curl ke engine WhatsApp (deviceInfo()) — tidak menulis ke DB, hanya read.
Referensi
- External Services — URL engine WhatsApp
- Perangkat Module — fitur dari sisi user
app/Models/Device.php— modelapp/Http/Controllers/DeviceController.php— controllerapp/Services/DeviceService.php— HTTP client ke engine WA