ORM di Skalfa API

Model di Skalfa API adalah lapisan ORM ringan yang dibangun di atas Knex.js. Model bertugas mendefinisikan skema data, relasi, casting, hook lifecycle, serta helper query yang terintegrasi langsung dengan ControllerContext.
Keterangan Ekstensi:ORM ini merupakan komponen modular opsional. Anda dapat menambahkannya ke proyek backend Anda menggunakan perintah CLI berikut:
Kode berhasil di copy!
5

Mendefinisikan Model

Model dibuat dengan mewarisi abstract class Model. Field dan perilakunya didefinisikan menggunakan decorator agar deklaratif dan mudah dibaca.
Kode berhasil di copy!
5
  • string / number / boolean / date / json — Casting otomatis dari dan ke database
  • fillable — Field boleh diisi melalui payload
  • selectable — Field boleh di-select
  • searchable — Field bisa digunakan untuk pencarian

Query Menggunakan Model

Query dimulai dengan Model.query(). Query builder ini merupakan Knex QueryBuilder yang telah diperluas.
Kode berhasil di copy!
5

Search

Kode berhasil di copy!
5

Filter

Kode berhasil di copy!
5

Select

Kode berhasil di copy!
5

Sort

Kode berhasil di copy!
5

Expand

Kode berhasil di copy!
5

Paginate

Kode berhasil di copy!
5

Option

Kode berhasil di copy!
5

Paginate Or Option

Kode berhasil di copy!
5

Insert / Menyimpan Data

Model mendukung pendekatan instance maupun static helper.
Kode berhasil di copy!
5

Update / Mengubah Data

Update hanya akan menyimpan field yang berubah (dirty checking). Delete mendukung soft delete dan force delete.
Kode berhasil di copy!
5

Pump & Upsert Data

Kode berhasil di copy!
5

Delete / Hapus Data

Kode berhasil di copy!
5

Relasi Antar Model

Relasi didefinisikan menggunakan decorator seperti HasMany, HasOne, BelongsTo, dan BelongsToMany.

Has One

Kode berhasil di copy!
5

Has Many

Kode berhasil di copy!
5

Belongs To

Kode berhasil di copy!
5

Belongs To Many

Kode berhasil di copy!
5

Attribute Model

Kode berhasil di copy!
5

Hook Model

Model mendukung hook lifecycle seperti before-create, after-create, before-update, after-update, before-delete, dan after-delete untuk mengontrol data secara otomatis sebelum atau setelah operasi database.

Pendaftaran Hook Menggunakan Decorator (@On)

Hook didaftarkan sebagai instance method di dalam kelas model menggunakan decorator @On(event).

Kode berhasil di copy!
5

Menonaktifkan Hook dari Controller (Instance-based)

Gunakan model.off(event) untuk menonaktifkan hook tertentu saat menjalankan operasi khusus dari controller.

Kode berhasil di copy!
5

Mendaftarkan Hook Dinamis dari Controller (Instance-based)

Gunakan model.on(event, callback) untuk mendaftarkan hook dinamis yang hanya berlaku untuk instance model tersebut.

Kode berhasil di copy!
5

Where Relasi

Where Has

Kode berhasil di copy!
5

Where Doesnt Have

Kode berhasil di copy!
5