using System.Text.Json.Serialization;
using System.Collections.Generic;
using NexusReader.Application.Queries.Graph;
using NexusReader.Application.Queries.Intelligence;

namespace NexusReader.Application.Common;

[JsonSourceGenerationOptions(WriteIndented = true)]
[JsonSerializable(typeof(GraphNodeDto))]
[JsonSerializable(typeof(GraphLinkDto))]
[JsonSerializable(typeof(GraphDataDto))]
[JsonSerializable(typeof(List<GraphNodeDto>))]
[JsonSerializable(typeof(List<GraphLinkDto>))]
[JsonSerializable(typeof(GetGlobalIntelligenceRequest))]
[JsonSerializable(typeof(IntelligenceResponse))]
[JsonSerializable(typeof(NexusReader.Application.Queries.Recommendations.ContextualRecommendationResponse))]
[JsonSerializable(typeof(NexusReader.Application.Queries.Recommendations.RecommendationDto))]
[JsonSerializable(typeof(List<NexusReader.Application.Queries.Recommendations.RecommendationDto>))]
[JsonSerializable(typeof(NexusReader.Application.DTOs.User.UpdateThemeRequest))]
[JsonSerializable(typeof(NexusReader.Domain.Enums.ThemeMode))]
[JsonSerializable(typeof(NexusReader.Application.DTOs.Media.ValidateChapterRequest))]
[JsonSerializable(typeof(NexusReader.Application.DTOs.Media.ValidateChapterResponse))]
[JsonSerializable(typeof(NexusReader.Application.DTOs.Media.UploadResultDto))]
[JsonSerializable(typeof(NexusReader.Application.DTOs.Media.LocalBackupEnvelope))]
[JsonSerializable(typeof(NexusReader.Application.DTOs.Media.AutosaveChapterRequest))]
public partial class AppJsonContext : JsonSerializerContext
{
}
