9d352f40a0
- toggleFavorite: upsert via logical-delete check + save, @Transactional - getFavoritePage: paginate favorites then fetch EpicScript details - getFavoritedScriptIds: batch IN query for checking multiple scripts - isFavorited: count > 0 check for single script - getFavoriteCount: total count for current user - Uses UserContextHolder for userId, consistent with project pattern