Add video management endpoints and fix LLM extraction pipeline

- Add missing endpoints: fetch-transcript, extract, bulk-extract/pending,
  bulk-transcript/pending, manual restaurant add, restaurant update
- Add OCI HTTP client dependency (jersey3) for GenAI SDK compatibility
- Fix Oracle null parameter ORA-17004 with jdbcType=CLOB in MyBatis
- Fix evaluation IS JSON constraint by storing as valid JSON
- Add @JsonProperty("transcript") for frontend compatibility
- Add Korean-only rule to LLM extraction prompt

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
joungmin
2026-03-09 22:08:40 +09:00
parent 16bd83c570
commit 69e1882c2b
9 changed files with 230 additions and 9 deletions

View File

@@ -166,7 +166,7 @@
<insert id="linkVideoRestaurant">
INSERT INTO video_restaurants (id, video_id, restaurant_id, foods_mentioned, evaluation, guests)
VALUES (#{id}, #{videoId}, #{restaurantId}, #{foods}, #{evaluation}, #{guests})
VALUES (#{id}, #{videoId}, #{restaurantId}, #{foods,jdbcType=CLOB}, #{evaluation,jdbcType=CLOB}, #{guests,jdbcType=CLOB})
</insert>
<!-- ===== Lookups ===== -->

View File

@@ -216,4 +216,20 @@
ORDER BY v.published_at DESC
</select>
<select id="findVideosWithoutTranscript" resultType="map">
SELECT id, video_id, title, url
FROM videos
WHERE (transcript_text IS NULL OR dbms_lob.getlength(transcript_text) = 0)
AND status != 'skip'
ORDER BY created_at
</select>
<update id="updateVideoRestaurantFields">
UPDATE video_restaurants
SET foods_mentioned = #{foodsJson,jdbcType=CLOB},
evaluation = #{evaluation,jdbcType=CLOB},
guests = #{guestsJson,jdbcType=CLOB}
WHERE video_id = #{videoId} AND restaurant_id = #{restaurantId}
</update>
</mapper>