import type { PostImportRow } from '@/lib/postImportTypes' export const buildPostImportRow = ( overrides: Partial = {}, ): PostImportRow => { const attributes = { title: '', thumbnailBase: '', originalCreatedFrom: '', originalCreatedBefore: '', duration: '', tags: '', parentPostIds: '', ...overrides.attributes } const provenance = { url: 'manual' as const, title: 'automatic' as const, thumbnailBase: 'automatic' as const, originalCreatedFrom: 'automatic' as const, originalCreatedBefore: 'automatic' as const, duration: 'automatic' as const, tags: 'automatic' as const, parentPostIds: 'automatic' as const, ...overrides.provenance } const fieldWarnings = { ...overrides.fieldWarnings } const baseWarnings = [...(overrides.baseWarnings ?? [])] const tagSources = { automatic: overrides.tagSources?.automatic ?? '', manual: overrides.tagSources?.manual ?? '' } const url = overrides.url ?? 'https://example.com/post' return { ...overrides, sourceRow: overrides.sourceRow ?? 1, url, attributes, fieldWarnings, baseWarnings, validationErrors: overrides.validationErrors ?? {}, provenance, tagSources, status: overrides.status ?? 'ready', recoverable: overrides.recoverable, resetSnapshot: overrides.resetSnapshot ?? { url, attributes: { ...attributes }, provenance: { ...provenance }, tagSources: { ...tagSources }, fieldWarnings: Object.fromEntries ( Object.entries (fieldWarnings).map (([key, values]) => [key, [...values]])), baseWarnings: [...baseWarnings], metadataUrl: overrides.metadataUrl } } }