TypeAlias.Campaign
type Campaign = {
application: string;
audienceSnapshotCount?: number | null;
channels: ("google" | "apple")[];
content?: | {
body: string;
header: string;
}
| null;
conversionWindowDays: number;
createdAt: string;
description?: string | null;
id: string;
isStranded?: boolean;
name: string;
scheduledImmediately?: boolean;
scheduleJobLost?: boolean;
sendAt?: string | null;
sentAt?: string | null;
status: "draft" | "scheduled" | "sending" | "sent" | "finished";
targeting?: | {
maxPoints?: number;
maxVisits?: number;
minPoints?: number;
minVisits?: number;
rewardTierIds?: string[];
}
| null;
updatedAt: string;
};
Wallet marketing campaign (Google/Apple notification push to loyalty cards).
Created as a draft; targeting, per-channel content and schedule are refined
before sending. targeting is null/empty for the whole opted-in audience;
content may be partial while a draft (completeness is checked at send time).