diff --git a/src/lib/monday.ts b/src/lib/monday.ts index b604041..facebe1 100644 --- a/src/lib/monday.ts +++ b/src/lib/monday.ts @@ -157,12 +157,14 @@ function toCleanString(val: unknown): string | null { function formatForColumnType(colType: string, val: unknown): unknown | null { switch (colType) { - case "boolean": { + case "boolean": + case "checkbox": { const isChecked = val === true || val === "true"; return { checked: isChecked ? "true" : "false" }; } - case "color": { + case "color": + case "status": { const str = toCleanString(val); return str ? { label: str } : null; } @@ -181,6 +183,14 @@ function formatForColumnType(colType: string, val: unknown): unknown | null { return iso ? { date: iso } : str; } + case "numeric": + case "numbers": { + const str = toCleanString(val); + if (!str) return null; + const num = parseFloat(str); + return isNaN(num) ? null : String(num); + } + case "email": { const str = toCleanString(val); return str ? { email: str, text: str } : null; @@ -219,6 +229,8 @@ export function mapCardToColumnValues( const values: Record = {}; const columnTypes = ((columnMap._columnTypes as Record) ?? {}); + console.log("[mapCardToColumnValues] _columnTypes keys:", Object.keys(columnTypes).length, "sample:", JSON.stringify(Object.entries(columnTypes).slice(0, 5))); + for (const [cardField, rawColId] of Object.entries(columnMap)) { if (!rawColId || !cardField || cardField.startsWith("_") || typeof rawColId !== "string") continue; const colId = rawColId;