feat(bot): add self-hosted scheduled dispatch support

Co-authored-by: claw <stanislavkalishin+claw@gmail.com>
This commit is contained in:
2026-03-30 15:27:15 +02:00
parent 94c1f48794
commit 575a68b3bb
13 changed files with 331 additions and 40 deletions

View File

@@ -68,6 +68,19 @@ class ScheduledDispatchRepositoryStub implements ScheduledDispatchRepository {
return [...this.dispatches.values()].filter((dispatch) => dispatch.householdId === householdId)
}
async listDueScheduledDispatches(input: {
dueBefore: Temporal.Instant
provider?: ScheduledDispatchRecord['provider']
limit: number
}): Promise<readonly ScheduledDispatchRecord[]> {
return [...this.dispatches.values()]
.filter((dispatch) => dispatch.status === 'scheduled')
.filter((dispatch) => dispatch.dueAt.epochMilliseconds <= input.dueBefore.epochMilliseconds)
.filter((dispatch) => (input.provider ? dispatch.provider === input.provider : true))
.sort((left, right) => left.dueAt.epochMilliseconds - right.dueAt.epochMilliseconds)
.slice(0, input.limit)
}
async updateScheduledDispatch(input: {
dispatchId: string
dueAt?: Temporal.Instant