feat: add constants, types, and shared schemas

This commit is contained in:
2026-03-30 13:52:29 +02:00
parent d98ed5733d
commit 033a29077e
3 changed files with 142 additions and 0 deletions
+66
View File
@@ -0,0 +1,66 @@
/** Standard v1 paginated list response wrapper */
export interface PaginatedListV1<T> {
data: T[];
totalCount: number;
pageSize: number;
page: number;
hasMore: boolean;
}
/** Standard v2 cursor-based paginated response (used by Topics) */
export interface PaginatedListV2<T> {
data: T[];
next: string | null;
previous: string | null;
totalCount: number;
totalCountCapped: boolean;
}
/** Subscriber shape from Novu API */
export interface Subscriber {
id?: string;
subscriberId?: string;
firstName?: string | null;
lastName?: string | null;
email?: string | null;
phone?: string | null;
avatar?: string | null;
locale?: string | null;
timezone?: string | null;
data?: Record<string, unknown> | null;
isOnline?: boolean | null;
lastOnlineAt?: string | null;
createdAt?: string;
updatedAt?: string;
}
/** Topic shape */
export interface Topic {
_id: string;
key: string;
name?: string;
createdAt?: string;
updatedAt?: string;
}
/** Workflow shape */
export interface Workflow {
id?: string;
name?: string;
description?: string;
active?: boolean;
draft?: boolean;
tags?: string[];
steps?: unknown[];
triggers?: unknown[];
createdAt?: string;
updatedAt?: string;
}
/** Trigger event response */
export interface TriggerResponse {
acknowledged: boolean;
status: string;
error?: string[];
transactionId?: string;
}