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 }