using System.Text.Json; using Somnia.GuestLog.Enums.Models; using Somnia.GuestLog.Models.DTOs; namespace Somnia.GuestLog.Services.StayExport; public class StayExportProviderJson : IStayExportFormatProvider { private const string fileExtension = "json"; public StayExportFormat GetFormat() => StayExportFormat.GuestLogJson; public string GetFilename(DateTime exportTime) => $"{Enum.GetName(GetFormat())}_{exportTime.ToFileTimeUtc()}.{fileExtension}"; public async Task ExportDataAsync(IEnumerable stayList, Stream dataStream) { if (!stayList.Any()) { return StayExportFileResult.NoData; } // Convert to JSON. await JsonSerializer.SerializeAsync(dataStream, stayList); return StayExportFileResult.OK; } }