feat(worker): map prime schedule weekday bitmask over the hub
This commit is contained in:
@@ -490,8 +490,7 @@ public sealed class WorkerHub : Microsoft.AspNetCore.SignalR.Hub
|
||||
using var ctx = _dbFactory.CreateDbContext();
|
||||
var rows = await new PrimeScheduleRepository(ctx).ListAsync();
|
||||
return rows.Select(e => new PrimeScheduleDto(
|
||||
e.Id, e.StartDate, e.EndDate, e.TimeOfDay,
|
||||
e.WorkdaysOnly, e.Enabled, e.LastRunAt, e.PromptOverride)).ToList();
|
||||
e.Id, (int)e.Days, e.TimeOfDay, e.Enabled, e.LastRunAt, e.PromptOverride)).ToList();
|
||||
}
|
||||
|
||||
public async Task<PrimeScheduleDto> UpsertPrimeSchedule(PrimeScheduleDto dto)
|
||||
@@ -502,10 +501,8 @@ public sealed class WorkerHub : Microsoft.AspNetCore.SignalR.Hub
|
||||
var entity = new ClaudeDo.Data.Models.PrimeScheduleEntity
|
||||
{
|
||||
Id = dto.Id == Guid.Empty ? Guid.NewGuid() : dto.Id,
|
||||
StartDate = dto.StartDate,
|
||||
EndDate = dto.EndDate,
|
||||
Days = (ClaudeDo.Data.Models.PrimeDays)dto.Days,
|
||||
TimeOfDay = dto.TimeOfDay,
|
||||
WorkdaysOnly = dto.WorkdaysOnly,
|
||||
Enabled = dto.Enabled,
|
||||
PromptOverride = dto.PromptOverride,
|
||||
CreatedAt = existing?.CreatedAt ?? DateTimeOffset.UtcNow,
|
||||
@@ -513,8 +510,8 @@ public sealed class WorkerHub : Microsoft.AspNetCore.SignalR.Hub
|
||||
};
|
||||
await repo.UpsertAsync(entity);
|
||||
_primeSignal.Signal();
|
||||
return new PrimeScheduleDto(entity.Id, entity.StartDate, entity.EndDate, entity.TimeOfDay,
|
||||
entity.WorkdaysOnly, entity.Enabled, entity.LastRunAt, entity.PromptOverride);
|
||||
return new PrimeScheduleDto(entity.Id, (int)entity.Days, entity.TimeOfDay,
|
||||
entity.Enabled, entity.LastRunAt, entity.PromptOverride);
|
||||
}
|
||||
|
||||
public async Task DeletePrimeSchedule(Guid id)
|
||||
|
||||
@@ -19,10 +19,8 @@ public class PrimeScheduleRepositoryTests : IDisposable
|
||||
await new PrimeScheduleRepository(ctx).UpsertAsync(new PrimeScheduleEntity
|
||||
{
|
||||
Id = id,
|
||||
StartDate = new DateOnly(2026, 5, 1),
|
||||
EndDate = new DateOnly(2026, 6, 30),
|
||||
Days = PrimeDays.Weekdays,
|
||||
TimeOfDay = new TimeSpan(7, 0, 0),
|
||||
WorkdaysOnly = true,
|
||||
Enabled = true,
|
||||
CreatedAt = DateTimeOffset.UtcNow,
|
||||
});
|
||||
@@ -33,6 +31,7 @@ public class PrimeScheduleRepositoryTests : IDisposable
|
||||
Assert.Single(rows);
|
||||
Assert.Equal(id, rows[0].Id);
|
||||
Assert.Equal(new TimeSpan(7, 0, 0), rows[0].TimeOfDay);
|
||||
Assert.Equal(PrimeDays.Weekdays, rows[0].Days);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -45,8 +44,7 @@ public class PrimeScheduleRepositoryTests : IDisposable
|
||||
await new PrimeScheduleRepository(ctx).UpsertAsync(new PrimeScheduleEntity
|
||||
{
|
||||
Id = id,
|
||||
StartDate = new DateOnly(2026, 5, 1),
|
||||
EndDate = new DateOnly(2026, 5, 31),
|
||||
Days = PrimeDays.Weekdays,
|
||||
TimeOfDay = new TimeSpan(7, 0, 0),
|
||||
Enabled = true,
|
||||
CreatedAt = DateTimeOffset.UtcNow,
|
||||
@@ -69,8 +67,7 @@ public class PrimeScheduleRepositoryTests : IDisposable
|
||||
await new PrimeScheduleRepository(ctx).UpsertAsync(new PrimeScheduleEntity
|
||||
{
|
||||
Id = id,
|
||||
StartDate = new DateOnly(2026, 5, 1),
|
||||
EndDate = new DateOnly(2026, 5, 1),
|
||||
Days = PrimeDays.All,
|
||||
TimeOfDay = TimeSpan.Zero,
|
||||
Enabled = true,
|
||||
CreatedAt = DateTimeOffset.UtcNow,
|
||||
|
||||
Reference in New Issue
Block a user