import type { BroadcastSummary, FormSummary, SegmentSummary, SequenceEmailSummary, SequenceSummary, SubscriberSummary, TagSummary, } from './types.ts' export function subscriberSummary( subscriber: Record | null | undefined, ): SubscriberSummary | null { if (typeof subscriber?.id !== 'number') return null return { id: subscriber.id, email_address: typeof subscriber.email_address === 'string' ? subscriber.email_address : undefined, first_name: typeof subscriber.first_name === 'string' ? subscriber.first_name : undefined, state: typeof subscriber.state === 'string' ? subscriber.state : undefined, created_at: typeof subscriber.created_at === 'string' ? subscriber.created_at : undefined, fields: subscriber.fields, } } export function tagSummary(tag: Record | null | undefined): TagSummary | null { if (typeof tag?.id !== 'number' || typeof tag.name !== 'string') return null return { id: tag.id, name: tag.name } } export function formSummary(form: Record | null | undefined): FormSummary | null { if (typeof form?.id !== 'number') return null return { id: form.id, name: typeof form.name === 'string' ? form.name : undefined, created_at: typeof form.created_at === 'string' ? form.created_at : undefined, } } export function segmentSummary( segment: Record | null | undefined, ): SegmentSummary | null { if (typeof segment?.id !== 'number') return null return { id: segment.id, name: typeof segment.name === 'string' ? segment.name : undefined, } } export function broadcastSummary( broadcast: Record | null | undefined, ): BroadcastSummary | null { if (typeof broadcast?.id !== 'number') return null return { id: broadcast.id, subject: typeof broadcast.subject === 'string' ? broadcast.subject : undefined, status: typeof broadcast.status === 'string' ? broadcast.status : undefined, editUrl: `https://app.kit.com/campaigns/${broadcast.id}/draft`, } } export function sequenceSummary( sequence: Record | null | undefined, ): SequenceSummary | null { if (typeof sequence?.id !== 'number') return null return { id: sequence.id, name: typeof sequence.name === 'string' ? sequence.name : undefined, active: typeof sequence.active === 'boolean' ? sequence.active : undefined, email_address: typeof sequence.email_address === 'string' ? sequence.email_address : undefined, } } export function sequenceEmailSummary( email: Record | null | undefined, ): SequenceEmailSummary | null { if (typeof email?.id !== 'number') return null return { id: email.id, sequenceId: typeof email.sequence_id === 'number' ? email.sequence_id : undefined, subject: typeof email.subject === 'string' ? email.subject : undefined, published: typeof email.published === 'boolean' ? email.published : undefined, } }