export function deepClean(obj: T): T { if (Array.isArray(obj)) { return obj.map(deepClean).filter((v) => v !== undefined && v !== null && v !== "") as T; } if (obj && typeof obj === "object") { return Object.entries(obj).reduce((acc, [key, value]) => { const cleaned = deepClean(value); if (cleaned !== undefined && cleaned !== "") acc[key as keyof T] = cleaned; return acc; }, {} as T); } return obj; }