using System.Text.Json.Serialization; namespace HyperBooru.ApiModels; public enum SortOrder { ObjectId, LastWriteTime, Random, } [JsonPolymorphic] [JsonDerivedType(typeof(FeedSearchRequest), "feedSearchRequest")] [JsonDerivedType(typeof(FeedTagRequest), "feedTagRequest")] public record FeedRequest { public required bool SelectIngest { get; init; } public required bool IncludeNsfw { get; init; } public Guid? ContinuationToken { get; init; } public required int Count { get; init; } [JsonConverter(typeof(JsonStringEnumConverter))] public required SortOrder SortOrder { get; init; } } public record FeedSearchRequest : FeedRequest { public required string Query { get; init; } } public record FeedTagRequest : FeedRequest { public required Guid TagId { get; init; } }