- 벌크 자막: 브라우저 우선 + API fallback, 광고 즉시 skip, 대기 시간 단축 - 벌크 자막/추출: 선택한 영상만 처리 가능 (체크박스 선택 후 실행) - 자막 실패 시 no_transcript 상태 마킹하여 재시도 방지 - 검색 시 필터 조건 무시 (채널/장르/가격/지역/영역 초기화) - 리셋 버튼 클릭 시 검색어 입력란 초기화 - RestaurantMapper updateFields에 google_place_id, rating 등 geocoding 필드 추가 - SearchMapper에 tabling_url, catchtable_url, phone, website 필드 추가 - 식당 상세에 네이버 지도 링크 추가 - YouTubeService.getTranscriptApi public 전환 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
81 lines
3.0 KiB
Java
81 lines
3.0 KiB
Java
package com.tasteby.mapper;
|
|
|
|
import com.tasteby.domain.VideoDetail;
|
|
import com.tasteby.domain.VideoRestaurantLink;
|
|
import com.tasteby.domain.VideoSummary;
|
|
import org.apache.ibatis.annotations.Mapper;
|
|
import org.apache.ibatis.annotations.Param;
|
|
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
@Mapper
|
|
public interface VideoMapper {
|
|
|
|
List<VideoSummary> findAll(@Param("status") String status);
|
|
|
|
VideoDetail findDetail(@Param("id") String id);
|
|
|
|
List<VideoRestaurantLink> findVideoRestaurants(@Param("videoId") String videoId);
|
|
|
|
void updateStatus(@Param("id") String id, @Param("status") String status);
|
|
|
|
void updateTitle(@Param("id") String id, @Param("title") String title);
|
|
|
|
void updateTranscript(@Param("id") String id, @Param("transcript") String transcript);
|
|
|
|
void deleteVectorsByVideoOnly(@Param("videoId") String videoId);
|
|
|
|
void deleteReviewsByVideoOnly(@Param("videoId") String videoId);
|
|
|
|
void deleteFavoritesByVideoOnly(@Param("videoId") String videoId);
|
|
|
|
void deleteRestaurantsByVideoOnly(@Param("videoId") String videoId);
|
|
|
|
void deleteVideoRestaurants(@Param("videoId") String videoId);
|
|
|
|
void deleteVideo(@Param("videoId") String videoId);
|
|
|
|
void deleteOneVideoRestaurant(@Param("videoId") String videoId, @Param("restaurantId") String restaurantId);
|
|
|
|
void cleanupOrphanVectors(@Param("restaurantId") String restaurantId);
|
|
|
|
void cleanupOrphanReviews(@Param("restaurantId") String restaurantId);
|
|
|
|
void cleanupOrphanFavorites(@Param("restaurantId") String restaurantId);
|
|
|
|
void cleanupOrphanRestaurant(@Param("restaurantId") String restaurantId);
|
|
|
|
void insertVideo(@Param("id") String id,
|
|
@Param("channelId") String channelId,
|
|
@Param("videoId") String videoId,
|
|
@Param("title") String title,
|
|
@Param("url") String url,
|
|
@Param("publishedAt") String publishedAt);
|
|
|
|
List<String> getExistingVideoIds(@Param("channelId") String channelId);
|
|
|
|
String getLatestVideoDate(@Param("channelId") String channelId);
|
|
|
|
List<Map<String, Object>> findPendingVideos(@Param("limit") int limit);
|
|
|
|
void updateVideoFields(@Param("id") String id,
|
|
@Param("status") String status,
|
|
@Param("transcript") String transcript,
|
|
@Param("llmResponse") String llmResponse);
|
|
|
|
List<Map<String, Object>> findVideosForBulkExtract();
|
|
|
|
List<Map<String, Object>> findVideosWithoutTranscript();
|
|
|
|
List<Map<String, Object>> findVideosByIds(@Param("ids") List<String> ids);
|
|
|
|
List<Map<String, Object>> findVideosForExtractByIds(@Param("ids") List<String> ids);
|
|
|
|
void updateVideoRestaurantFields(@Param("videoId") String videoId,
|
|
@Param("restaurantId") String restaurantId,
|
|
@Param("foodsJson") String foodsJson,
|
|
@Param("evaluation") String evaluation,
|
|
@Param("guestsJson") String guestsJson);
|
|
}
|