Naming Conventions
Konvensi penamaan terpadu. Sumber kanonik tim: 07-STANDAR-DAN-KONVENSI-TIM.md. Spesifik database: ../../database/docs/02-KONVENSI-PENAMAAN.md. API: ../../backend/docs/API_STANDARD.md.
Umum (semua lapisan)
| Aturan |
Contoh benar |
Hindari |
| Bahasa Indonesia, jelas |
tanggal_jatuh_tempo |
tgl_jt, duedate |
snake_case |
barang_id |
barangId, BarangID |
PK bernama id |
id uuid/bigint |
id_barang sebagai PK |
FK <entitas>_id |
kontak_id |
id_kontak |
Boolean is_* |
is_aktif |
aktif (ambiguous) |
Uang numeric(18,2) |
total_nilai |
float, double |
Waktu *_at timestamptz |
dibuat_at |
datetime tanpa TZ |
PostgreSQL
Schema
| Pola |
Contoh |
| Global |
pusat, logika, logs |
| Tenant |
tenant_sparepart — <kode> stabil, lowercase [a-z0-9_] |
Objek
| Objek |
Pola |
| Tabel |
snake_case — transaksi, barang_harga |
| Fungsi |
kata kerja — hitung_stok, ambil_nomor_bukti |
| Trigger function |
fn_<tabel>_<kapan> |
| Trigger |
trg_<tabel>_<aksi> |
| View tenant |
v_<makna> atau standar alias — lihat STANDAR_ALIAS_VIEW |
Referensi di logika
| Rujukan |
Tulis sebagai |
| Tabel tenant |
Tanpa prefix: FROM transaksi |
| Tabel pusat |
Eksplisit: pusat.tenant |
| Logs |
Eksplisit: logs.audit |
Dilarang di fungsi tenant-agnostik: SET search_path, hardcode tenant_sparepart.*, VIEW di logika yang bind ke satu tenant.
Migrasi SQL
| Pola file |
Contoh |
| Tenant/pusat |
database/migrations/tenant/V042__kontak_info.sql |
| ClickHouse |
database/migrations/clickhouse/V106__*.sql (V100+) |
| MV ClickHouse |
database/migrations/clickhouse/material_views/V301__*.sql |
Hanya lewat Git — tidak ALTER manual di server (AGENTS.md).
Kafka
| Pola |
Contoh |
| Topik CDC |
erp.tenant_<kode>.<tabel> |
| Consumer group |
clickhouse-etl-group |
| Replay job (prod) |
clickhouse-replay-<job_id> |
ClickHouse
| Pola |
Contoh |
| Database |
erp_clickhouse (tunggal) |
| Isolasi |
kolom tenant_kode |
| Tabel riwayat |
<tabel>_riwayat |
| Skip index |
lihat V105__transaksi_add_skip_indexes.sql |
Backend (NestJS)
| Area |
Konvensi |
| Route |
/api/<domain>/... — lihat API_STANDARD |
| Modul |
master, transaksi, laporan, ops-cdc |
| DTO |
suffix .dto.ts, validasi class-validator |
Flutter
| Area |
Konvensi |
| Screen |
*_screen.dart |
| API client |
*_api.dart di lib/services/ |
| Model |
lib/models/ — mirror field API snake_case → Dart |
Dokumen terkait