D
Engineering

Database

Koneksi database dan model utama Toko Digital, termasuk batas antara schema lokal dan data bersama ekosistem Dazo.

Koneksi

NamaDriverSumber environmentPeran
mysqlMySQLDB_*_SQLDefault fallback Laravel dan tabel SQL yang masih digunakan
mongodbMongoDBDB_HOST, DB_PORT, DB_DATABASE, dan kredensial terkaitData utama model MongoDB
crmMongoDBDB_CRM_*Workspace dan user CRM
covendorMongoDBDB_COVENDOR_*Data vendor/co-vendor

Default connection berasal dari DB_CONNECTION dan fallback ke mysql. Jangan menyimpulkan koneksi model hanya dari default; periksa property $connection pada model.

Model storefront

ModelPeran
StoreIdentitas toko, username, domain, expiry, dan feature
DigitalStoreKonfigurasi visual, SEO, payment/shipping setting, draft atau published
DigitalStorePageHalaman dan array section page builder
PreviewDigitalStoreToken akses preview dan expiry
ProductKatalog produk dan relasi variant, stock, checkout, order
VariationVariant produk
ItemProductItem atau detail stock produk
CustomerCustomer storefront, dengan soft delete
OrderDokumen order dan relasi item/customer/team
OrderItemItem yang terkait dengan order
CheckoutData checkout yang digunakan dalam proses transaksi
WarehouseOrigin dan data gudang untuk shipping

Primary key

Model domain utama menggunakan UUID string yang dibuat pada event creating:

php
public $incrementing = false;
protected $keyType = 'string';

static::creating(function ($model) {
    $model->id = (string) Str::uuid();
});

Schemaless MongoDB

Migration yang tersedia terutama migration generik Laravel seperti users, sessions, failed jobs, dan personal access tokens. Tidak ada migration lengkap untuk seluruh domain storefront. Shape dokumen harus diverifikasi dari model dan controller yang menulisnya.

Tanggal dan status

Field seperti Store.expired_at perlu diperlakukan hati-hati karena sebagian flow membaca atau membandingkannya sebagai string tanggal. PreviewDigitalStore secara eksplisit melakukan cast expires_at dan last_accessed_at ke datetime.