types: Abstract inline interfaces to @plunk/types

This commit is contained in:
Dries Augustyns
2026-01-01 09:09:03 +01:00
parent 519b131792
commit 38da58e5e9
50 changed files with 639 additions and 462 deletions
+1 -10
View File
@@ -1,4 +1,5 @@
import {CampaignAudienceType, TemplateType, TrackingMode, WorkflowStepType, WorkflowTriggerType} from '@plunk/db';
import type {FilterCondition, FilterGroup} from '@plunk/types';
import {z} from 'zod';
const literalSchema = z.union([z.string(), z.number(), z.boolean(), z.null(), z.date()]);
@@ -104,16 +105,6 @@ const segmentFilterSchema = z.object({
unit: z.enum(['days', 'hours', 'minutes']).optional(),
});
type FilterGroup = {
filters: z.infer<typeof segmentFilterSchema>[];
conditions?: FilterCondition;
};
type FilterCondition = {
logic: 'AND' | 'OR';
groups: FilterGroup[];
};
const filterGroupSchema: z.ZodType<FilterGroup> = z.lazy(() =>
z.object({
filters: z.array(segmentFilterSchema),