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