Move SCUM lifecycle ownership to plugin

This commit is contained in:
npc0-hue
2026-08-01 09:36:12 +08:00
parent bca4f935ba
commit d1249fca85
49 changed files with 795 additions and 566 deletions
+4
View File
@@ -175,6 +175,8 @@ type GamePlugin struct {
Permissions PluginPermissions `json:"permissions" db:"permissions"`
// LifecycleActions stores manifest lifecycle action references.
LifecycleActions PluginLifecycleActions `json:"lifecycleActions" db:"lifecycle_actions"`
// LifecycleAssets stores plugin-owned lifecycle files packaged into generated Run workspaces.
LifecycleAssets []domain.PluginAssetFile `json:"lifecycleAssets,omitempty" db:"lifecycle_assets"`
// Pages stores plugin-local page metadata.
Pages []GamePluginPage `json:"pages" db:"pages"`
// Tags stores bounded catalog tags.
@@ -597,6 +599,7 @@ func GamePluginFromDomain(plugin domain.GamePlugin) GamePlugin {
DeclaredPermissions: plugin.DeclaredPermissions,
Permissions: permissionsFromDomain(plugin.Permissions),
LifecycleActions: lifecycleActionsFromDomain(plugin.LifecycleActions),
LifecycleAssets: domain.CopyPluginAssetFiles(plugin.LifecycleAssets),
Pages: pagesFromDomain(plugin.Pages),
Tags: plugin.Tags,
AIPurposes: plugin.AIPurposes,
@@ -623,6 +626,7 @@ func (plugin GamePlugin) ToDomain() domain.GamePlugin {
DeclaredPermissions: domain.CopyStringSlice(plugin.DeclaredPermissions),
Permissions: plugin.Permissions.ToDomain(),
LifecycleActions: plugin.LifecycleActions.ToDomain(),
LifecycleAssets: domain.CopyPluginAssetFiles(plugin.LifecycleAssets),
Pages: pagesToDomain(plugin.Pages),
Tags: domain.CopyStringSlice(plugin.Tags),
AIPurposes: domain.CopyStringSlice(plugin.AIPurposes),