| import json | |
| def build_course_preview(row: dict) -> dict: | |
| content = json.loads(row.get("refined_content") or "{}") | |
| return { | |
| "course_code": str(content.get("course_code", "")), | |
| "course_title": str(content.get("course_title", "")), | |
| "program": str(content.get("program", "")), | |
| "lecture_hours": str(content.get("lecture_hours", 0)), | |
| "tutorial_hours": str(content.get("tutorial_hours", 0)), | |
| "practical_hours": str(content.get("practical_hours", 0)), | |
| "self_study": str(content.get("self_study", 0)), | |
| "credits": str(content.get("credits", 0)), | |
| "semester": str(content.get("semester", "")), | |
| "course_type": str(content.get("course_type", "")), | |
| "tools_languages": str(content.get("tools_languages", "")), | |
| "desirable_knowledge": str(content.get("desirable_knowledge", "")), | |
| "prelude": row.get("prelude") or content.get("prelude", ""), | |
| "objectives": row.get("objectives") or content.get("objectives", []), | |
| "units": content.get("units", []), | |
| "lab_experiments": content.get("lab_experiments", []), | |
| } |