diff --git a/backend/src/services/schedule.js b/backend/src/services/schedule.js index 43dabb3..5dfbd61 100644 --- a/backend/src/services/schedule.js +++ b/backend/src/services/schedule.js @@ -242,13 +242,19 @@ export async function getScheduleDetail(db, id, getXProfile = null) { }; // 카테고리별 추가 필드 - if (s.category_id === CATEGORY_IDS.YOUTUBE && s.youtube_video_id) { - result.videoId = s.youtube_video_id; - result.videoType = s.youtube_video_type; - result.channelName = s.youtube_channel; - result.videoUrl = s.youtube_video_type === 'shorts' - ? `https://www.youtube.com/shorts/${s.youtube_video_id}` - : `https://www.youtube.com/watch?v=${s.youtube_video_id}`; + if (s.category_id === CATEGORY_IDS.YOUTUBE) { + // 채널 이름은 항상 반환 (예정 일정 포함) + if (s.youtube_channel) { + result.channelName = s.youtube_channel; + } + // video_id가 있는 경우에만 영상 관련 필드 추가 + if (s.youtube_video_id) { + result.videoId = s.youtube_video_id; + result.videoType = s.youtube_video_type; + result.videoUrl = s.youtube_video_type === 'shorts' + ? `https://www.youtube.com/shorts/${s.youtube_video_id}` + : `https://www.youtube.com/watch?v=${s.youtube_video_id}`; + } } else if (s.category_id === CATEGORY_IDS.X && s.x_post_id) { const username = config.x.defaultUsername; result.postId = s.x_post_id; diff --git a/frontend/src/pages/pc/public/schedule/sections/YoutubeSection.jsx b/frontend/src/pages/pc/public/schedule/sections/YoutubeSection.jsx index 2cd8846..4247f5d 100644 --- a/frontend/src/pages/pc/public/schedule/sections/YoutubeSection.jsx +++ b/frontend/src/pages/pc/public/schedule/sections/YoutubeSection.jsx @@ -1,23 +1,32 @@ import { motion } from 'framer-motion'; -import { Calendar, Link2 } from 'lucide-react'; +import { Calendar, Link2, Clock } from 'lucide-react'; import { decodeHtmlEntities, formatXDateTimeWithTime } from './utils'; /** * 영상 정보 컴포넌트 (공통) */ -function VideoInfo({ schedule, isShorts }) { +function VideoInfo({ schedule, isShorts, isScheduled = false }) { const members = schedule.members || []; const isFullGroup = members.length === 5; + // 채널명: channelName 또는 source.name에서 가져옴 + const channelName = schedule.channelName || schedule.source?.name; return (
곧 업로드될 예정입니다