// 📁 Helpers/DateOnlyJsonConverter.cs using System; using System.Globalization; using System.Text.Json; using System.Text.Json.Serialization; namespace vendorApproverBackend.Settings { public class DateOnlyJsonConverter : JsonConverter { public override DateTime? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { if (reader.TokenType == JsonTokenType.Null) { return null; } if (reader.TokenType == JsonTokenType.String) { string? dateString = reader.GetString(); if (string.IsNullOrEmpty(dateString)) { return null; } if (DateTime.TryParse(dateString, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime result)) { return result.ToUniversalTime(); } throw new JsonException($"Unable to parse the date: '{dateString}'."); } return JsonSerializer.Deserialize(ref reader, options); } public override void Write(Utf8JsonWriter writer, DateTime? value, JsonSerializerOptions options) { JsonSerializer.Serialize(writer, value, options); } } }