feat: init project
This commit is contained in:
69
internal/model/table_config.go
Normal file
69
internal/model/table_config.go
Normal file
@@ -0,0 +1,69 @@
|
||||
package model
|
||||
|
||||
// TableConfig represents the configuration for a database table
|
||||
type TableConfig struct {
|
||||
Name string `json:"name" yaml:"name"`
|
||||
Alias string `json:"alias" yaml:"alias"`
|
||||
PageSize int `json:"page_size" yaml:"page_size"`
|
||||
Columns []ColumnConfig `json:"columns" yaml:"columns"`
|
||||
Filters []FilterConfig `json:"filters" yaml:"filters"`
|
||||
SortFields []string `json:"sort_fields" yaml:"sort_fields"`
|
||||
Options map[string]interface{} `json:"options" yaml:"options"`
|
||||
}
|
||||
|
||||
// ColumnConfig represents the configuration for a table column
|
||||
type ColumnConfig struct {
|
||||
Name string `json:"name" yaml:"name"`
|
||||
Alias string `json:"alias" yaml:"alias"`
|
||||
RenderType string `json:"render_type" yaml:"render_type"`
|
||||
Sortable bool `json:"sortable" yaml:"sortable"`
|
||||
Searchable bool `json:"searchable" yaml:"searchable"`
|
||||
ShowInList bool `json:"show_in_list" yaml:"show_in_list"`
|
||||
IsPrimaryContent bool `json:"is_primary_content" yaml:"is_primary_content"`
|
||||
MaxLength int `json:"max_length" yaml:"max_length"`
|
||||
Width string `json:"width" yaml:"width"`
|
||||
Format string `json:"format" yaml:"format"`
|
||||
Values map[string]TagValue `json:"values" yaml:"values"`
|
||||
Options map[string]interface{} `json:"options" yaml:"options"`
|
||||
}
|
||||
|
||||
// FilterConfig represents the configuration for a table filter
|
||||
type FilterConfig struct {
|
||||
Name string `json:"name" yaml:"name"`
|
||||
Type string `json:"type" yaml:"type"`
|
||||
Options []interface{} `json:"options" yaml:"options"`
|
||||
}
|
||||
|
||||
// TagValue represents a tag value with label and color
|
||||
type TagValue struct {
|
||||
Label string `json:"label" yaml:"label"`
|
||||
Color string `json:"color" yaml:"color"`
|
||||
}
|
||||
|
||||
// DataResponse represents the API response structure
|
||||
type DataResponse struct {
|
||||
Data []map[string]interface{} `json:"data"`
|
||||
Total int64 `json:"total"`
|
||||
Page int `json:"page"`
|
||||
PerPage int `json:"per_page"`
|
||||
Pages int `json:"pages"`
|
||||
Table string `json:"table"`
|
||||
Columns []ColumnConfig `json:"columns"`
|
||||
Filters []FilterConfig `json:"filters"`
|
||||
}
|
||||
|
||||
// TableResponse represents the table list response
|
||||
type TableResponse struct {
|
||||
Tables []TableInfo `json:"tables"`
|
||||
}
|
||||
|
||||
// TableInfo represents basic table information
|
||||
type TableInfo struct {
|
||||
Name string `json:"name"`
|
||||
Alias string `json:"alias"`
|
||||
}
|
||||
|
||||
// DetailResponse represents a single record detail response
|
||||
type DetailResponse struct {
|
||||
Data map[string]interface{} `json:"data"`
|
||||
}
|
||||
Reference in New Issue
Block a user