cargo-platform/internal/handlers/dto/datatable.go
teguh nugroho 622045f3fc
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
province list
2026-08-17 12:58:23 +07:00

41 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 int `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"`
Regex bool `json:"regex"`
}
type DatatableColumnConfig struct {
Data string `json:"data"` // Nama properti data (contoh: "name")
Name string `json:"name"` // Nama kolom opsional yang diset di frontend
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() `json:"formatter"`
}