92
internal/models/models.go
Archivo normal
92
internal/models/models.go
Archivo normal
@@ -0,0 +1,92 @@
|
||||
package models
|
||||
|
||||
import "time"
|
||||
|
||||
// Environment represents a Docker Compose environment
|
||||
type Environment struct {
|
||||
Name string `yaml:"name"`
|
||||
Path string `yaml:"path"`
|
||||
ComposeFile string `yaml:"compose_file"`
|
||||
Enabled bool `yaml:"enabled"`
|
||||
Labels map[string]string `yaml:"labels,omitempty"`
|
||||
CreatedAt time.Time `yaml:"created_at"`
|
||||
UpdatedAt time.Time `yaml:"updated_at"`
|
||||
}
|
||||
|
||||
// Service represents a Docker service/container
|
||||
type Service struct {
|
||||
ID string
|
||||
Name string
|
||||
Image string
|
||||
Status string
|
||||
State string
|
||||
Environment string
|
||||
Ports []string
|
||||
Networks []string
|
||||
CreatedAt time.Time
|
||||
RestartCount int
|
||||
}
|
||||
|
||||
// ContainerStats represents statistics for a running container
|
||||
type ContainerStats struct {
|
||||
ID string
|
||||
Name string
|
||||
Environment string
|
||||
CPUPercentage float64
|
||||
MemoryUsage uint64
|
||||
MemoryLimit uint64
|
||||
MemoryPercent float64
|
||||
NetworkRx uint64
|
||||
NetworkTx uint64
|
||||
BlockRead uint64
|
||||
BlockWrite uint64
|
||||
PIDs uint64
|
||||
}
|
||||
|
||||
// Config represents the buque configuration
|
||||
type Config struct {
|
||||
ConfigPath string `yaml:"config_path"`
|
||||
Environments []Environment `yaml:"environments"`
|
||||
NginxProxy NginxProxyConfig `yaml:"nginx_proxy"`
|
||||
Docker DockerConfig `yaml:"docker"`
|
||||
UpdateSchedule string `yaml:"update_schedule,omitempty"`
|
||||
}
|
||||
|
||||
// NginxProxyConfig represents nginx-proxy configuration
|
||||
type NginxProxyConfig struct {
|
||||
Enabled bool `yaml:"enabled"`
|
||||
NetworkName string `yaml:"network_name"`
|
||||
ContainerName string `yaml:"container_name"`
|
||||
Path string `yaml:"path"`
|
||||
HTTPPort int `yaml:"http_port"`
|
||||
HTTPSPort int `yaml:"https_port"`
|
||||
SSLEnabled bool `yaml:"ssl_enabled"`
|
||||
Labels map[string]string `yaml:"labels,omitempty"`
|
||||
}
|
||||
|
||||
// DockerConfig represents Docker-related configuration
|
||||
type DockerConfig struct {
|
||||
Host string `yaml:"host,omitempty"`
|
||||
APIVersion string `yaml:"api_version,omitempty"`
|
||||
ComposeVersion string `yaml:"compose_version,omitempty"`
|
||||
}
|
||||
|
||||
// EnvironmentStatus represents the status of an environment
|
||||
type EnvironmentStatus struct {
|
||||
Environment Environment
|
||||
Services []Service
|
||||
Running int
|
||||
Stopped int
|
||||
Error error
|
||||
}
|
||||
|
||||
// UpdateResult represents the result of an update operation
|
||||
type UpdateResult struct {
|
||||
Environment string
|
||||
Service string
|
||||
OldImage string
|
||||
NewImage string
|
||||
Success bool
|
||||
Error error
|
||||
UpdatedAt time.Time
|
||||
}
|
||||
Referencia en una nueva incidencia
Block a user