Implemented template crud, db entities, import/export, ptero and pelican import

This commit is contained in:
2026-03-12 13:00:32 +00:00
parent 7c5dc657dc
commit e7b1e77d0a
68 changed files with 4269 additions and 24 deletions

View File

@@ -0,0 +1,92 @@
using VYaml.Annotations;
namespace MoonlightServers.Api.Admin.Templates;
[YamlObject]
public partial class TemplateTransferModel
{
public string Name { get; set; } = "";
public string Description { get; set; } = "";
public string Author { get; set; } = "";
public string Version { get; set; } = "";
public string? UpdateUrl { get; set; }
public string? DonateUrl { get; set; }
public FilesConfigTransferModel Files { get; set; } = new();
public LifecycleConfigTransferModel Lifecycle { get; set; } = new();
public InstallationConfigTransferModel Installation { get; set; } = new();
public MiscellaneousConfigTransferModel Miscellaneous { get; set; } = new();
public bool AllowUserDockerImageChange { get; set; }
public List<TemplateDockerImageTransferModel> DockerImages { get; set; } = new();
public List<TemplateVariableTransferModel> Variables { get; set; } = new();
}
[YamlObject]
public partial class TemplateDockerImageTransferModel
{
public string DisplayName { get; set; } = "";
public string ImageName { get; set; } = "";
public bool SkipPulling { get; set; }
public bool IsDefault { get; set; }
}
[YamlObject]
public partial class TemplateVariableTransferModel
{
public string DisplayName { get; set; } = "";
public string Description { get; set; } = "";
public string EnvName { get; set; } = "";
public string? DefaultValue { get; set; }
}
[YamlObject]
public partial class FilesConfigTransferModel
{
public List<ConfigurationFileTransferModel> ConfigurationFiles { get; set; } = new();
}
[YamlObject]
public partial class ConfigurationFileTransferModel
{
public string Path { get; set; } = "";
public string Parser { get; set; } = "";
public List<ConfigurationFileMappingTransferModel> Mappings { get; set; } = new();
}
[YamlObject]
public partial class ConfigurationFileMappingTransferModel
{
public string Key { get; set; } = "";
public string? Value { get; set; }
}
[YamlObject]
public partial class LifecycleConfigTransferModel
{
public List<StartupCommandTransferModel> StartupCommands { get; set; } = new();
public string StopCommand { get; set; } = "";
public List<string> OnlineLogPatterns { get; set; } = new();
}
[YamlObject]
public partial class StartupCommandTransferModel
{
public string DisplayName { get; set; } = "";
public string Command { get; set; } = "";
}
[YamlObject]
public partial class InstallationConfigTransferModel
{
public string DockerImage { get; set; } = "";
public string Shell { get; set; } = "";
public string Script { get; set; } = "";
}
[YamlObject]
public partial class MiscellaneousConfigTransferModel
{
public bool UseLegacyStartup { get; set; }
}