feat: added models
This commit is contained in:
70
server/models/api/model.go
Normal file
70
server/models/api/model.go
Normal file
@@ -0,0 +1,70 @@
|
||||
package api
|
||||
|
||||
type ApiResponse[T any] struct {
|
||||
Success bool `json:"success"`
|
||||
Data *T `json:"data,omitempty"` // Nullable data
|
||||
Error *string `json:"error,omitempty"` // Nullable error message
|
||||
Timestamp int64 `json:"timestamp"`
|
||||
}
|
||||
|
||||
type ErrorResponse struct {
|
||||
Error string `json:"error"`
|
||||
Code *string `json:"code,omitempty"`
|
||||
Details map[string]string `json:"details,omitempty"`
|
||||
Timestamp int64 `json:"timestamp"`
|
||||
}
|
||||
|
||||
type SuccessResponse struct {
|
||||
Message string `json:"message"`
|
||||
Timestamp int64 `json:"timestamp"`
|
||||
}
|
||||
|
||||
type HealthResponse struct {
|
||||
Status string `json:"status"`
|
||||
Version string `json:"version"`
|
||||
Uptime int64 `json:"uptime"`
|
||||
Database DatabaseHealth `json:"database"`
|
||||
BlockChain BlockChainHealth `json:"blockchain"`
|
||||
}
|
||||
|
||||
type DatabaseHealth struct {
|
||||
Connected bool `json:"connected"`
|
||||
ResponseTime int64 `json:"response_time"`
|
||||
ActiveConnections int `json:"active_connections"`
|
||||
MaxConnections int `json:"max_connections"`
|
||||
}
|
||||
|
||||
type BlockChainHealth struct {
|
||||
LatestBlock int `json:"latest_block"`
|
||||
PendingTransactions int `json:"pending_transactions"`
|
||||
NetworkHashRate float64 `json:"network_hash_rate"`
|
||||
AverageBlockTime int64 `json:"average_block_time"`
|
||||
}
|
||||
|
||||
type PaginationRequest struct {
|
||||
Page int `json:"page"`
|
||||
PageSize int `json:"page_size"`
|
||||
SortBy *string `json:"sort_by,omitempty"`
|
||||
SortOrder SortOrder `json:"sort_order"`
|
||||
}
|
||||
|
||||
type PaginatedResponse[T any] struct {
|
||||
Data []T `json:"data"`
|
||||
Pagination PaginationInfo `json:"pagination"`
|
||||
}
|
||||
|
||||
type PaginationInfo struct {
|
||||
CurrentPage int `json:"current_page"`
|
||||
PageSize int `json:"page_size"`
|
||||
TotalItems int `json:"total_items"`
|
||||
TotalPages int `json:"total_pages"`
|
||||
HasNext bool `json:"has_next"`
|
||||
HasPrevious bool `json:"has_previous"`
|
||||
}
|
||||
|
||||
type SortOrder string
|
||||
|
||||
const (
|
||||
ASC SortOrder = "ASC"
|
||||
DESC SortOrder = "DESC"
|
||||
)
|
||||
Reference in New Issue
Block a user