types: Abstract inline interfaces to @plunk/types
This commit is contained in:
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user