Refactored project to module structure

This commit is contained in:
2026-03-12 22:50:15 +01:00
parent 93de9c5d00
commit 1257e8b950
219 changed files with 1231 additions and 1259 deletions

View File

@@ -0,0 +1,18 @@
using System.ComponentModel.DataAnnotations;
namespace Moonlight.Shared.Admin.Setup;
public class ApplySetupDto
{
[Required]
[MinLength(3)]
[MaxLength(32)]
public string AdminUsername { get; set; }
[Required] [EmailAddress] public string AdminEmail { get; set; }
[Required]
[MinLength(8)]
[MaxLength(64)]
public string AdminPassword { get; set; }
}

View File

@@ -0,0 +1,11 @@
namespace Moonlight.Shared.Admin.Sys.ApiKeys;
public record ApiKeyDto(
int Id,
string Name,
string Description,
string[] Permissions,
DateTimeOffset ValidUntil,
string Key,
DateTimeOffset CreatedAt,
DateTimeOffset UpdatedAt);

View File

@@ -0,0 +1,12 @@
using System.ComponentModel.DataAnnotations;
namespace Moonlight.Shared.Admin.Sys.ApiKeys;
public class CreateApiKeyDto
{
[Required] [MaxLength(30)] public string Name { get; set; }
[MaxLength(300)] public string Description { get; set; } = "";
[Required] public DateTimeOffset ValidUntil { get; set; }
[Required] public string[] Permissions { get; set; }
}

View File

@@ -0,0 +1,12 @@
using System.ComponentModel.DataAnnotations;
namespace Moonlight.Shared.Admin.Sys.ApiKeys;
public class UpdateApiKeyDto
{
[Required] [MaxLength(30)] public string Name { get; set; }
[MaxLength(300)] public string Description { get; set; } = "";
[Required] public DateTimeOffset ValidUntil { get; set; }
[Required] public string[] Permissions { get; set; }
}

View File

@@ -0,0 +1,3 @@
namespace Moonlight.Shared.Admin.Sys.ContainerHelper;
public record ContainerHelperStatusDto(bool IsEnabled, bool IsReachable);

View File

@@ -0,0 +1,18 @@
using System.Text.Json.Serialization;
namespace Moonlight.Shared.Admin.Sys.ContainerHelper;
public struct RebuildEventDto
{
[JsonPropertyName("type")] public RebuildEventType Type { get; set; }
[JsonPropertyName("data")] public string Data { get; set; }
}
public enum RebuildEventType
{
Log = 0,
Failed = 1,
Succeeded = 2,
Step = 3
}

View File

@@ -0,0 +1,15 @@
namespace Moonlight.Shared.Admin.Sys.ContainerHelper;
public class RequestRebuildDto
{
public RequestRebuildDto()
{
}
public RequestRebuildDto(bool noBuildCache)
{
NoBuildCache = noBuildCache;
}
public bool NoBuildCache { get; set; }
}

View File

@@ -0,0 +1,10 @@
using System.ComponentModel.DataAnnotations;
namespace Moonlight.Shared.Admin.Sys.ContainerHelper;
public class SetVersionDto
{
[Required]
[RegularExpression(@"^(?!\/|.*\/\/|.*\.\.|.*\/$)[A-Za-z0-9._/-]+$", ErrorMessage = "Invalid version format")]
public string Version { get; set; }
}

View File

@@ -0,0 +1,17 @@
namespace Moonlight.Shared.Admin.Sys.Diagnose;
public record DiagnoseResultDto(
DiagnoseLevel Level,
string Title,
string[] Tags,
string? Message,
string? StackStrace,
string? SolutionUrl,
string? ReportUrl);
public enum DiagnoseLevel
{
Error = 0,
Warning = 1,
Healthy = 2
}

View File

@@ -0,0 +1,8 @@
using System.ComponentModel.DataAnnotations;
namespace Moonlight.Shared.Admin.Sys.Settings;
public class SetWhiteLabelingDto
{
[Required] public string Name { get; set; }
}

View File

@@ -0,0 +1,6 @@
namespace Moonlight.Shared.Admin.Sys.Settings;
public class WhiteLabelingDto
{
public string Name { get; set; }
}

View File

@@ -0,0 +1,9 @@
namespace Moonlight.Shared.Admin.Sys;
public record SystemInfoDto(
double CpuUsage,
long MemoryUsage,
string OperatingSystem,
TimeSpan Uptime,
string VersionName,
bool IsUpToDate);

View File

@@ -0,0 +1,16 @@
using System.ComponentModel.DataAnnotations;
namespace Moonlight.Shared.Admin.Sys.Themes;
public class CreateThemeDto
{
[Required] [MaxLength(30)] public string Name { get; set; }
[Required] [MaxLength(30)] public string Version { get; set; }
[Required] [MaxLength(30)] public string Author { get; set; }
public bool IsEnabled { get; set; }
[Required] [MaxLength(20_000)] public string CssContent { get; set; }
}

View File

@@ -0,0 +1,3 @@
namespace Moonlight.Shared.Admin.Sys.Themes;
public record ThemeDto(int Id, string Name, string Author, string Version, string CssContent, bool IsEnabled);

View File

@@ -0,0 +1,16 @@
using System.ComponentModel.DataAnnotations;
namespace Moonlight.Shared.Admin.Sys.Themes;
public class UpdateThemeDto
{
[Required] [MaxLength(30)] public string Name { get; set; }
[Required] [MaxLength(30)] public string Version { get; set; }
[Required] [MaxLength(30)] public string Author { get; set; }
public bool IsEnabled { get; set; }
[Required] [MaxLength(20_000)] public string CssContent { get; set; }
}

View File

@@ -0,0 +1,3 @@
namespace Moonlight.Shared.Admin.Sys.Versions;
public record VersionDto(string Identifier, bool IsPreRelease, bool IsDevelopment, DateTimeOffset CreatedAt);

View File

@@ -0,0 +1,12 @@
using System.ComponentModel.DataAnnotations;
namespace Moonlight.Shared.Admin.Users.Roles;
public class CreateRoleDto
{
[Required] [MaxLength(30)] public string Name { get; set; }
[MaxLength(300)] public string Description { get; set; } = "";
[Required] public string[] Permissions { get; set; }
}

View File

@@ -0,0 +1,10 @@
namespace Moonlight.Shared.Admin.Users.Roles;
public record RoleDto(
int Id,
string Name,
string Description,
string[] Permissions,
int MemberCount,
DateTimeOffset CreatedAt,
DateTimeOffset UpdatedAt);

View File

@@ -0,0 +1,12 @@
using System.ComponentModel.DataAnnotations;
namespace Moonlight.Shared.Admin.Users.Roles;
public class UpdateRoleDto
{
[Required] [MaxLength(30)] public string Name { get; set; }
[MaxLength(300)] public string Description { get; set; } = "";
[Required] public string[] Permissions { get; set; }
}

View File

@@ -0,0 +1,13 @@
using System.ComponentModel.DataAnnotations;
namespace Moonlight.Shared.Admin.Users.Users;
public class CreateUserDto
{
[Required]
[MinLength(3)]
[MaxLength(32)]
public string Username { get; set; }
[Required] [EmailAddress] public string Email { get; set; }
}

View File

@@ -0,0 +1,13 @@
using System.ComponentModel.DataAnnotations;
namespace Moonlight.Shared.Admin.Users.Users;
public class UpdateUserDto
{
[Required]
[MinLength(3)]
[MaxLength(32)]
public string Username { get; set; }
[Required] [EmailAddress] public string Email { get; set; }
}

View File

@@ -0,0 +1,3 @@
namespace Moonlight.Shared.Admin.Users.Users;
public record UserDto(int Id, string Username, string Email, DateTimeOffset CreatedAt, DateTimeOffset UpdatedAt);