package models import ( "time" ) // Instance represents a virtual desktop instance type Instance struct { ID int `db:"id,primarykey,autoincrement" json:"id"` UserID int `db:"user_id" json:"user_id"` Name string `db:"name" json:"name"` Description *string `db:"description" json:"description,omitempty"` Type string `db:"type" json:"type"` RuntimeType string `db:"runtime_type" json:"runtime_type"` InstanceMode string `db:"instance_mode" json:"instance_mode"` Status string `db:"status" json:"status"` CPUCores float64 `db:"cpu_cores" json:"cpu_cores"` MemoryGB int `db:"memory_gb" json:"memory_gb"` DiskGB int `db:"disk_gb" json:"disk_gb"` GPUEnabled bool `db:"gpu_enabled" json:"gpu_enabled"` GPUType *string `db:"gpu_type" json:"gpu_type,omitempty"` GPUCount int `db:"gpu_count" json:"gpu_count"` OSType string `db:"os_type" json:"os_type"` OSVersion string `db:"os_version" json:"os_version"` ImageRegistry *string `db:"image_registry" json:"image_registry,omitempty"` ImageTag *string `db:"image_tag" json:"image_tag,omitempty"` EnvironmentOverridesJSON *string `db:"environment_overrides_json" json:"-"` DesktopStreamProfile string `db:"-" json:"desktop_stream_profile,omitempty"` StorageClass string `db:"storage_class" json:"storage_class"` MountPath string `db:"mount_path" json:"mount_path"` WorkspacePath *string `db:"workspace_path" json:"workspace_path,omitempty"` WorkspaceUsageBytes int64 `db:"workspace_usage_bytes" json:"workspace_usage_bytes"` RuntimeGeneration int `db:"runtime_generation" json:"runtime_generation"` RuntimeErrorMessage *string `db:"runtime_error_message" json:"runtime_error_message,omitempty"` PodName *string `db:"pod_name" json:"pod_name,omitempty"` PodNamespace *string `db:"pod_namespace" json:"pod_namespace,omitempty"` PodIP *string `db:"pod_ip" json:"pod_ip,omitempty"` AccessURL *string `db:"access_url" json:"access_url,omitempty"` AccessToken *string `db:"access_token" json:"-"` AgentBootstrapToken *string `db:"agent_bootstrap_token" json:"-"` OpenClawConfigSnapshotID *int `db:"openclaw_config_snapshot_id" json:"openclaw_config_snapshot_id,omitempty"` CreatedAt time.Time `db:"created_at" json:"created_at"` UpdatedAt time.Time `db:"updated_at" json:"updated_at"` StartedAt *time.Time `db:"started_at" json:"started_at,omitempty"` StoppedAt *time.Time `db:"stopped_at" json:"stopped_at,omitempty"` } // TableName returns the table name for the Instance model func (i Instance) TableName() string { return "instances" }