feat(queue): add per-channel debounce overrides
This commit is contained in:
@@ -13,20 +13,13 @@ export type QueueConfig = {
|
||||
mode?: QueueMode;
|
||||
byChannel?: QueueModeByProvider;
|
||||
debounceMs?: number;
|
||||
/** Per-channel debounce overrides (ms). */
|
||||
debounceMsByChannel?: InboundDebounceByProvider;
|
||||
cap?: number;
|
||||
drop?: QueueDropPolicy;
|
||||
};
|
||||
|
||||
export type InboundDebounceByProvider = {
|
||||
whatsapp?: number;
|
||||
telegram?: number;
|
||||
discord?: number;
|
||||
slack?: number;
|
||||
signal?: number;
|
||||
imessage?: number;
|
||||
msteams?: number;
|
||||
webchat?: number;
|
||||
};
|
||||
export type InboundDebounceByProvider = Record<string, number>;
|
||||
|
||||
export type InboundDebounceConfig = {
|
||||
debounceMs?: number;
|
||||
|
||||
@@ -217,17 +217,7 @@ export const QueueModeBySurfaceSchema = z
|
||||
.optional();
|
||||
|
||||
export const DebounceMsBySurfaceSchema = z
|
||||
.object({
|
||||
whatsapp: z.number().int().nonnegative().optional(),
|
||||
telegram: z.number().int().nonnegative().optional(),
|
||||
discord: z.number().int().nonnegative().optional(),
|
||||
slack: z.number().int().nonnegative().optional(),
|
||||
signal: z.number().int().nonnegative().optional(),
|
||||
imessage: z.number().int().nonnegative().optional(),
|
||||
msteams: z.number().int().nonnegative().optional(),
|
||||
webchat: z.number().int().nonnegative().optional(),
|
||||
})
|
||||
.strict()
|
||||
.record(z.string(), z.number().int().nonnegative())
|
||||
.optional();
|
||||
|
||||
export const QueueSchema = z
|
||||
@@ -235,6 +225,7 @@ export const QueueSchema = z
|
||||
mode: QueueModeSchema.optional(),
|
||||
byChannel: QueueModeBySurfaceSchema,
|
||||
debounceMs: z.number().int().nonnegative().optional(),
|
||||
debounceMsByChannel: DebounceMsBySurfaceSchema,
|
||||
cap: z.number().int().positive().optional(),
|
||||
drop: QueueDropSchema.optional(),
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user