diff --git a/backend/src/routes/schedules/index.js b/backend/src/routes/schedules/index.js index 30276da..f55eb85 100644 --- a/backend/src/routes/schedules/index.js +++ b/backend/src/routes/schedules/index.js @@ -121,7 +121,7 @@ export default async function schedulesRoutes(fastify) { }; } else if (s.category_id === 3 && s.x_post_id) { result.source = { - name: 'X', + name: '', url: `https://x.com/realfromis_9/status/${s.x_post_id}`, }; } @@ -247,7 +247,7 @@ async function handleMonthlySchedules(db, year, month) { }; } else if (s.category_id === 3 && s.x_post_id) { schedule.source = { - name: 'X', + name: '', url: `https://x.com/realfromis_9/status/${s.x_post_id}`, }; } diff --git a/backend/src/services/meilisearch/index.js b/backend/src/services/meilisearch/index.js index 98cdfdf..fd60fd3 100644 --- a/backend/src/services/meilisearch/index.js +++ b/backend/src/services/meilisearch/index.js @@ -137,6 +137,16 @@ function formatScheduleResponse(hit) { ? hit.member_names.split(',').map(name => name.trim()).filter(Boolean) : []; + // source 객체 구성 (X는 name 비움) + let source = null; + if (hit.category_id === 2 && hit.source_name) { + // YouTube + source = { name: hit.source_name, url: null }; + } else if (hit.category_id === 3) { + // X (name 비움) + source = { name: '', url: null }; + } + return { id: hit.id, title: hit.title, @@ -146,7 +156,7 @@ function formatScheduleResponse(hit) { name: hit.category_name, color: hit.category_color, }, - source_name: hit.source_name || null, + source, members, _rankingScore: hit._rankingScore, }; diff --git a/frontend/src/pages/mobile/public/Schedule.jsx b/frontend/src/pages/mobile/public/Schedule.jsx index bf402f1..fc55c09 100644 --- a/frontend/src/pages/mobile/public/Schedule.jsx +++ b/frontend/src/pages/mobile/public/Schedule.jsx @@ -275,11 +275,12 @@ function MobileSchedule() { const categories = useMemo(() => { const categoryMap = new Map(); schedules.forEach(s => { - if (s.category_id && !categoryMap.has(s.category_id)) { - categoryMap.set(s.category_id, { - id: s.category_id, - name: s.category_name, - color: s.category_color, + const catId = s.category?.id || s.category_id; + if (catId && !categoryMap.has(catId)) { + categoryMap.set(catId, { + id: catId, + name: s.category?.name || s.category_name, + color: s.category?.color || s.category_color, }); } }); @@ -717,7 +718,7 @@ function MobileSchedule() { {/* 일정 점 (최대 3개) */}