feat(ui): WorkerClient methods for week report and daily notes

This commit is contained in:
mika kuns
2026-06-03 09:46:39 +02:00
parent d7558ef451
commit e106b00b16
3 changed files with 29 additions and 0 deletions

View File

@@ -50,4 +50,10 @@ public interface IWorkerClient : INotifyPropertyChanged
Task ContinuePlanningMergeAsync(string planningTaskId); Task ContinuePlanningMergeAsync(string planningTaskId);
Task AbortPlanningMergeAsync(string planningTaskId); Task AbortPlanningMergeAsync(string planningTaskId);
Task QueuePlanningSubtasksAsync(string parentTaskId, CancellationToken ct = default); Task QueuePlanningSubtasksAsync(string parentTaskId, CancellationToken ct = default);
Task<string?> GetWeekReportAsync(DateOnly start, DateOnly end);
Task<string> GenerateWeekReportAsync(DateOnly start, DateOnly end);
Task<List<DailyNoteDto>> GetDailyNotesAsync(DateOnly day);
Task<DailyNoteDto?> AddDailyNoteAsync(DateOnly day, string text);
Task UpdateDailyNoteAsync(string id, string text);
Task DeleteDailyNoteAsync(string id);
} }

View File

@@ -0,0 +1,3 @@
namespace ClaudeDo.Ui.Services;
public sealed record DailyNoteDto(string Id, string Date, string Text, int SortOrder);

View File

@@ -326,6 +326,26 @@ public partial class WorkerClient : ObservableObject, IAsyncDisposable, IWorkerC
catch { /* offline */ } catch { /* offline */ }
} }
private static string IsoDay(DateOnly d) => d.ToString("yyyy-MM-dd");
public Task<string?> GetWeekReportAsync(DateOnly start, DateOnly end)
=> TryInvokeAsync<string>("GetWeekReport", IsoDay(start), IsoDay(end));
public Task<string> GenerateWeekReportAsync(DateOnly start, DateOnly end)
=> _hub.InvokeAsync<string>("GenerateWeekReport", IsoDay(start), IsoDay(end));
public async Task<List<DailyNoteDto>> GetDailyNotesAsync(DateOnly day)
=> await TryInvokeAsync<List<DailyNoteDto>>("GetDailyNotes", IsoDay(day)) ?? new List<DailyNoteDto>();
public Task<DailyNoteDto?> AddDailyNoteAsync(DateOnly day, string text)
=> TryInvokeAsync<DailyNoteDto>("AddDailyNote", IsoDay(day), text);
public async Task UpdateDailyNoteAsync(string id, string text)
=> await _hub.InvokeAsync("UpdateDailyNote", id, text);
public async Task DeleteDailyNoteAsync(string id)
=> await _hub.InvokeAsync("DeleteDailyNote", id);
public async Task UpdateListAsync(UpdateListDto dto) public async Task UpdateListAsync(UpdateListDto dto)
{ {
await _hub.InvokeAsync("UpdateList", dto); await _hub.InvokeAsync("UpdateList", dto);