#nullable enable using ErsatzTV.Application.Artworks; using ErsatzTV.Application.Watermarks; using ErsatzTV.Core.Domain; using ErsatzTV.FFmpeg.State; namespace ErsatzTV.Controllers.Api.Requests; public record UpdateWatermarkRequest( string Name, ChannelWatermarkMode Mode, ChannelWatermarkImageSource ImageSource, string? Image, string? ImageContentType, WatermarkLocation Location, WatermarkSize Size, double Width, double HorizontalMargin, double VerticalMargin, int FrequencyMinutes, int DurationSeconds, int Opacity, string? OpacityExpression, int ZIndex, bool PlaceWithinSourceContent) { public UpdateWatermark ToCommand(int id) => new( id, Name, new ArtworkContentTypeModel(Image ?? string.Empty, ImageContentType ?? string.Empty).Sanitized(), Mode, ImageSource, Location, Size, Width, HorizontalMargin, VerticalMargin, FrequencyMinutes, DurationSeconds, Opacity, PlaceWithinSourceContent, OpacityExpression ?? string.Empty, ZIndex); }