package dto type DataTableRequest struct { Draw int `json:"draw" binding:"required"` Start int `json:"start"` Length int `json:"length"` Search DatatableSearchCriteria `json:"search"` Order []DatatableOrderQuery `json:"order"` Columns []DatatableColumnConfig `json:"columns"` AdditionalFilter map[string]interface{} `json:"additional_filter"` } type DatatableOrderQuery struct { Column string `json:"column"` // Indeks kolom yang di-sort (dimulai dari 0) Dir string `json:"dir"` // Arah sorting: "asc" atau "desc" } type DatatableSearchCriteria struct { Value string `json:"value"` } type DatatableColumnConfig struct { Data string `json:"data"` // Nama properti data (contoh: "name") Searchable bool `json:"searchable"` // Apakah kolom ini bisa dicari Orderable bool `json:"orderable"` // Apakah kolom ini bisa di-sort Search DatatableSearchCriteria `json:"search"` // Pencarian spesifik khusus untuk kolom ini saja } type DataTableResponse struct { Draw int `json:"draw"` RecordsTotal int64 `json:"recordsTotal"` RecordsFiltered int64 `json:"recordsFiltered"` Data []map[string]interface{} `json:"data"` } type DataTableColDef struct { Field string `json:"field"` Alias string `json:"alias"` Formatter func(row map[string]interface{}, value interface{}) interface{} `json:"formatter"` }