+ if (options.withVideos === true) {
+ whereAnd.push(
+ literal(`(${getVideoLengthSelect()}) != 0`)
+ )
+ }
+
+ let attributesInclude: any[] = [ literal('0 as similarity') ]
+
+ if (options.search) {
+ const escapedSearch = VideoPlaylistModel.sequelize.escape(options.search)
+ const escapedLikeSearch = VideoPlaylistModel.sequelize.escape('%' + options.search + '%')
+ attributesInclude = [ createSimilarityAttribute('VideoPlaylistModel.name', options.search) ]
+
+ whereAnd.push({
+ [Op.or]: [
+ Sequelize.literal(
+ 'lower(immutable_unaccent("VideoPlaylistModel"."name")) % lower(immutable_unaccent(' + escapedSearch + '))'
+ ),
+ Sequelize.literal(
+ 'lower(immutable_unaccent("VideoPlaylistModel"."name")) LIKE lower(immutable_unaccent(' + escapedLikeSearch + '))'
+ )
+ ]
+ })
+ }
+