Files

170 lines
8.4 KiB
Go

package model
import (
"time"
"browser.local/platform/domain"
)
type RuntimeBinding struct {
ID string `json:"id" db:"id"`
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
PluginID string `json:"pluginId" db:"plugin_id"`
PluginVersion string `json:"pluginVersion" db:"plugin_version"`
ProfileKey string `json:"profileKey" db:"profile_key"`
Mode string `json:"mode" db:"mode"`
Bindings map[string]string `json:"bindings" db:"bindings"`
MissingKeys []string `json:"missingKeys" db:"missing_keys"`
Status domain.RuntimeBindingStatus `json:"status" db:"status"`
CreatedAt time.Time `json:"createdAt" db:"created_at"`
UpdatedAt time.Time `json:"updatedAt" db:"updated_at"`
}
func (RuntimeBinding) TableName() string { return "runtime_bindings" }
type EncryptedComponentKey struct {
ID string `json:"id" db:"id"`
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
ComponentKind domain.DistributionComponentKind `json:"componentKind" db:"component_kind"`
ComponentKey string `json:"componentKey,omitempty" db:"component_key"`
EncryptedKey string `json:"encryptedKey" db:"encrypted_key"`
KeyHash string `json:"keyHash" db:"key_hash"`
Fingerprint string `json:"fingerprint" db:"fingerprint"`
SecretRef string `json:"secretRef" db:"secret_ref"`
Generation int `json:"generation" db:"generation"`
Status domain.ComponentKeyStatus `json:"status" db:"status"`
CreatedAt time.Time `json:"createdAt" db:"created_at"`
UpdatedAt time.Time `json:"updatedAt" db:"updated_at"`
ResetAt time.Time `json:"resetAt,omitempty" db:"reset_at"`
}
func (EncryptedComponentKey) TableName() string { return "encrypted_component_keys" }
type RunDistribution struct {
ID string `json:"id" db:"id"`
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
PluginID string `json:"pluginId" db:"plugin_id"`
RunEndpointID string `json:"runEndpointId" db:"run_endpoint_id"`
TargetOS string `json:"targetOs" db:"target_os"`
TargetArch string `json:"targetArch" db:"target_arch"`
PackageFormat string `json:"packageFormat" db:"package_format"`
BuildJobID string `json:"buildJobId" db:"build_job_id"`
ArtifactID string `json:"artifactId" db:"artifact_id"`
Checksum string `json:"checksum" db:"checksum"`
KeyGeneration int `json:"keyGeneration" db:"key_generation"`
SecretRef string `json:"secretRef" db:"secret_ref"`
Status domain.DistributionStatus `json:"status" db:"status"`
CreatedAt time.Time `json:"createdAt" db:"created_at"`
UpdatedAt time.Time `json:"updatedAt" db:"updated_at"`
}
func (RunDistribution) TableName() string { return "run_distributions" }
type DependencyStatus struct {
ID string `json:"id" db:"id"`
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
PluginID string `json:"pluginId" db:"plugin_id"`
ProbeKey string `json:"probeKey" db:"probe_key"`
TargetOS string `json:"targetOs" db:"target_os"`
TargetArch string `json:"targetArch" db:"target_arch"`
State domain.DependencyState `json:"state" db:"state"`
Required bool `json:"required" db:"required"`
InstallPlanKey string `json:"installPlanKey,omitempty" db:"install_plan_key"`
PlanDigest string `json:"planDigest,omitempty" db:"plan_digest"`
JobID string `json:"jobId,omitempty" db:"job_id"`
Evidence string `json:"evidence,omitempty" db:"evidence"`
CompletedSteps int `json:"completedSteps,omitempty" db:"completed_steps"`
Message string `json:"message,omitempty" db:"message"`
CheckedAt time.Time `json:"checkedAt" db:"checked_at"`
UpdatedAt time.Time `json:"updatedAt" db:"updated_at"`
}
func (DependencyStatus) TableName() string { return "dependency_statuses" }
type RunUpdateJob struct {
ID string `json:"id" db:"id"`
ServerInstanceID string `json:"serverInstanceId" db:"server_instance_id"`
RunEndpointID string `json:"runEndpointId" db:"run_endpoint_id"`
ArtifactID string `json:"artifactId" db:"artifact_id"`
Checksum string `json:"checksum" db:"checksum"`
TargetOS string `json:"targetOs" db:"target_os"`
TargetArch string `json:"targetArch" db:"target_arch"`
TargetRelease string `json:"targetRelease,omitempty" db:"target_release"`
PreviousVersion string `json:"previousVersion,omitempty" db:"previous_version"`
JobID string `json:"jobId" db:"job_id"`
IdempotencyKey string `json:"idempotencyKey" db:"idempotency_key"`
Status domain.DistributionJobStatus `json:"status" db:"status"`
Phase domain.RunUpdatePhase `json:"phase" db:"phase"`
Message string `json:"message,omitempty" db:"message"`
Rollback bool `json:"rollback,omitempty" db:"rollback"`
CreatedAt time.Time `json:"createdAt" db:"created_at"`
UpdatedAt time.Time `json:"updatedAt" db:"updated_at"`
}
func (RunUpdateJob) TableName() string { return "run_update_jobs" }
func RuntimeBindingFromDomain(binding domain.RuntimeBinding) RuntimeBinding {
binding = domain.CopyRuntimeBinding(binding)
return RuntimeBinding{
ID: binding.ID,
ServerInstanceID: binding.ServerInstanceID,
PluginID: binding.PluginID,
PluginVersion: binding.PluginVersion,
ProfileKey: binding.ProfileKey,
Mode: binding.Mode,
Bindings: binding.Bindings,
MissingKeys: binding.MissingKeys,
Status: binding.Status,
CreatedAt: binding.CreatedAt,
UpdatedAt: binding.UpdatedAt,
}
}
func (binding RuntimeBinding) ToDomain() domain.RuntimeBinding {
return domain.RuntimeBinding{
ID: binding.ID,
ServerInstanceID: binding.ServerInstanceID,
PluginID: binding.PluginID,
PluginVersion: binding.PluginVersion,
ProfileKey: binding.ProfileKey,
Mode: binding.Mode,
Bindings: domain.CopyStringMap(binding.Bindings),
MissingKeys: domain.CopyStringSlice(binding.MissingKeys),
Status: binding.Status,
CreatedAt: binding.CreatedAt,
UpdatedAt: binding.UpdatedAt,
}
}
func EncryptedComponentKeyFromDomain(key domain.EncryptedComponentKey) EncryptedComponentKey {
return EncryptedComponentKey(key)
}
func (key EncryptedComponentKey) ToDomain() domain.EncryptedComponentKey {
return domain.EncryptedComponentKey(key)
}
func RunDistributionFromDomain(distribution domain.RunDistribution) RunDistribution {
return RunDistribution(distribution)
}
func (distribution RunDistribution) ToDomain() domain.RunDistribution {
return domain.RunDistribution(distribution)
}
func DependencyStatusFromDomain(status domain.DependencyStatus) DependencyStatus {
return DependencyStatus(status)
}
func (status DependencyStatus) ToDomain() domain.DependencyStatus {
return domain.DependencyStatus(status)
}
func RunUpdateJobFromDomain(job domain.RunUpdateJob) RunUpdateJob {
return RunUpdateJob(job)
}
func (job RunUpdateJob) ToDomain() domain.RunUpdateJob {
return domain.RunUpdateJob(job)
}