LANCommander/LANCommander.Server.Settings/Models/MediaSettings.cs
2025-11-17 18:01:53 -06:00

85 lines
No EOL
2.9 KiB
C#

using Humanizer.Bytes;
using LANCommander.SDK.Enums;
namespace LANCommander.Server.Settings.Models;
public class MediaSettings
{
public string SteamGridDbApiKey { get; set; } = String.Empty;
public IEnumerable<MediaTypeSettings> MediaTypes { get; set; } =
[
new()
{
Type = MediaType.Icon,
MaxFileSize = 2 * ByteSize.BytesInMegabyte,
Thumbnails = new MediaTypeThumbnailSettings
{
MinSize = new ThumbnailSize(32, 32),
MaxSize = new ThumbnailSize(128, 128),
}
},
new()
{
Type = MediaType.Cover,
MaxFileSize = 6 * ByteSize.BytesInMegabyte,
Thumbnails = new MediaTypeThumbnailSettings
{
MinSize = new ThumbnailSize(240, 360),
MaxSize = new ThumbnailSize(600, 900),
}
},
new()
{
Type = MediaType.Background,
MaxFileSize = 8 * ByteSize.BytesInMegabyte,
Thumbnails = new MediaTypeThumbnailSettings
{
MinSize = new ThumbnailSize(690, 310),
MaxSize = new ThumbnailSize(3840, 1240),
}
},
new()
{
Type = MediaType.Avatar,
MaxFileSize = 2 * ByteSize.BytesInMegabyte,
Thumbnails = new MediaTypeThumbnailSettings
{
MinSize = new ThumbnailSize(64, 64),
MaxSize = new ThumbnailSize(256, 256),
}
},
new()
{
Type = MediaType.Logo,
MaxFileSize = 4 * ByteSize.BytesInMegabyte,
Thumbnails = new MediaTypeThumbnailSettings
{
MinSize = new ThumbnailSize(400, 400),
MaxSize = new ThumbnailSize(1000, 1000),
}
},
new()
{
Type = MediaType.Manual,
MaxFileSize = 4 * ByteSize.BytesInMegabyte,
Thumbnails = new MediaTypeThumbnailSettings
{
MinSize = new ThumbnailSize(240, 360),
MaxSize = new ThumbnailSize(600, 900),
}
},
new()
{
Type = MediaType.PageImage,
MaxFileSize = 4 * ByteSize.BytesInMegabyte,
Thumbnails = new MediaTypeThumbnailSettings
{
MinSize = new ThumbnailSize(480, 480),
MaxSize = new ThumbnailSize(1920, 1920),
}
},
];
public MediaTypeSettings? GetMediaTypeConfig(MediaType type) => MediaTypes.FirstOrDefault(x => x.Type == type);
}