Server: Add postgresql indexes
[oweals/peertube.git] / server / models / author.js
1 'use strict'
2
3 const customUsersValidators = require('../helpers/custom-validators').users
4
5 module.exports = function (sequelize, DataTypes) {
6   const Author = sequelize.define('Author',
7     {
8       name: {
9         type: DataTypes.STRING,
10         allowNull: false,
11         validate: {
12           usernameValid: function (value) {
13             const res = customUsersValidators.isUserUsernameValid(value)
14             if (res === false) throw new Error('Username is not valid.')
15           }
16         }
17       }
18     },
19     {
20       indexes: [
21         {
22           fields: [ 'name' ]
23         },
24         {
25           fields: [ 'podId' ]
26         }
27       ],
28       classMethods: {
29         associate
30       }
31     }
32   )
33
34   return Author
35 }
36
37 // ---------------------------------------------------------------------------
38
39 function associate (models) {
40   this.belongsTo(models.Pod, {
41     foreignKey: {
42       name: 'podId',
43       allowNull: true
44     },
45     onDelete: 'cascade'
46   })
47 }