50 lines
1.3 KiB
Go
50 lines
1.3 KiB
Go
|
|
package models
|
||
|
|
|
||
|
|
import (
|
||
|
|
"time"
|
||
|
|
|
||
|
|
"github.com/google/uuid"
|
||
|
|
)
|
||
|
|
|
||
|
|
type FontRequest struct {
|
||
|
|
ID uuid.UUID `json:"id"`
|
||
|
|
Name string `json:"name"`
|
||
|
|
SystemName *string `json:"system_name,omitempty"`
|
||
|
|
FileURL string `json:"file_url"`
|
||
|
|
CreatedAt time.Time `json:"created_at"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type NodeFontStatus struct {
|
||
|
|
NodeID uuid.UUID `json:"node_id"`
|
||
|
|
NodeName string `json:"node_name"`
|
||
|
|
Status string `json:"status"` // Pending | Installed | Failed
|
||
|
|
Error *string `json:"error,omitempty"`
|
||
|
|
UpdatedAt *time.Time `json:"updated_at,omitempty"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type FontRequestWithStatus struct {
|
||
|
|
FontRequest
|
||
|
|
InstalledCount int `json:"installed_count"`
|
||
|
|
TotalNodes int `json:"total_nodes"`
|
||
|
|
Nodes []NodeFontStatus `json:"nodes"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type CreateFontRequestBody struct {
|
||
|
|
Name string `json:"name" binding:"required"`
|
||
|
|
SystemName string `json:"system_name"`
|
||
|
|
FileURL string `json:"file_url" binding:"required"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// Sent to node-agents.
|
||
|
|
type PendingFont struct {
|
||
|
|
ID uuid.UUID `json:"id"`
|
||
|
|
Name string `json:"name"`
|
||
|
|
SystemName *string `json:"system_name,omitempty"`
|
||
|
|
FileURL string `json:"file_url"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type FontStatusReport struct {
|
||
|
|
Status string `json:"status"` // Installed | Failed
|
||
|
|
Error string `json:"error"`
|
||
|
|
}
|