-// FIXME: Define indexes here because there is an issue with TS and Sequelize.literal when called directly in the annotation
-const indexes: (ModelIndexesOptions & { where?: WhereOptions })[] = [
- buildTrigramSearchIndex('video_name_trigram', 'name'),
-
- { fields: [ 'createdAt' ] },
- {
- fields: [
- { name: 'publishedAt', order: 'DESC' },
- { name: 'id', order: 'ASC' }
- ]
- },
- { fields: [ 'duration' ] },
- { fields: [ 'views' ] },
- { fields: [ 'channelId' ] },
- {
- fields: [ 'originallyPublishedAt' ],
- where: {
- originallyPublishedAt: {
- [Op.ne]: null
- }
- }
- },
- {
- fields: [ 'category' ], // We don't care videos with an unknown category
- where: {
- category: {
- [Op.ne]: null
- }
- }
- },
- {
- fields: [ 'licence' ], // We don't care videos with an unknown licence
- where: {
- licence: {
- [Op.ne]: null
- }
- }
- },
- {
- fields: [ 'language' ], // We don't care videos with an unknown language
- where: {
- language: {
- [Op.ne]: null
- }
- }
- },
- {
- fields: [ 'nsfw' ], // Most of the videos are not NSFW
- where: {
- nsfw: true
- }
- },
- {
- fields: [ 'remote' ], // Only index local videos
- where: {
- remote: false
- }
- },
- {
- fields: [ 'uuid' ],
- unique: true
- },
- {
- fields: [ 'url' ],
- unique: true
- }
-]
-