Handle announces in inbox
[oweals/peertube.git] / server / models / video / video-channel-share.ts
1 import * as Sequelize from 'sequelize'
2
3 import { addMethodsToModel } from '../utils'
4 import { VideoChannelShareAttributes, VideoChannelShareInstance } from './video-channel-share-interface'
5
6 let VideoChannelShare: Sequelize.Model<VideoChannelShareInstance, VideoChannelShareAttributes>
7
8 export default function (sequelize: Sequelize.Sequelize, DataTypes: Sequelize.DataTypes) {
9   VideoChannelShare = sequelize.define<VideoChannelShareInstance, VideoChannelShareAttributes>('VideoChannelShare',
10     { },
11     {
12       indexes: [
13         {
14           fields: [ 'accountId' ]
15         },
16         {
17           fields: [ 'videoChannelId' ]
18         }
19       ]
20     }
21   )
22
23   const classMethods = [
24     associate
25   ]
26   addMethodsToModel(VideoChannelShare, classMethods)
27
28   return VideoChannelShare
29 }
30
31 // ------------------------------ METHODS ------------------------------
32
33 function associate (models) {
34   VideoChannelShare.belongsTo(models.Account, {
35     foreignKey: {
36       name: 'accountId',
37       allowNull: false
38     },
39     onDelete: 'cascade'
40   })
41
42   VideoChannelShare.belongsTo(models.VideoChannel, {
43     foreignKey: {
44       name: 'videoChannelId',
45       allowNull: true
46     },
47     onDelete: 'cascade'
48   })
49 }