using System.Threading; using System.Threading.Tasks; using LaDOSE.Entity; namespace LaDOSE.Business.Interface { /// /// Writes tabular data into a Google Spreadsheet. Startup picks one implementation from /// GoogleSheets:Writer, so nothing above this interface knows how Google is reached. /// /// Implementations must be idempotent: writing the same request twice leaves the same /// spreadsheet. They must also leave tabs they were not asked about completely alone — /// the spreadsheet holds hand-made summaries and charts, and deletion is irreversible /// through the API. /// public interface ISheetsWriter { /// Reported to the UI so the panel can say what it is talking to. string Name { get; } /// False when credentials are missing, so the API can answer 503 with a message. bool IsConfigured { get; } Task WriteTablesAsync(SheetExportRequest request, CancellationToken ct = default); } }