cargo-platform/internal/handlers/dto/datatable.go
teguh nugroho fc232890a2
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ubah list
2026-08-17 13:35:40 +07:00

39 lines
1.7 KiB
Go

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"`
}