]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/models/server/server.ts
Speed up populate database script
[github/Chocobozzz/PeerTube.git] / server / models / server / server.ts
1 import { AllowNull, Column, CreatedAt, HasMany, Is, Model, Table, UpdatedAt } from 'sequelize-typescript'
2 import { isHostValid } from '../../helpers/custom-validators/servers'
3 import { ActorModel } from '../activitypub/actor'
4 import { throwIfNotValid } from '../utils'
5
6 @Table({
7 tableName: 'server',
8 indexes: [
9 {
10 fields: [ 'host' ],
11 unique: true
12 }
13 ]
14 })
15 export class ServerModel extends Model<ServerModel> {
16
17 @AllowNull(false)
18 @Is('Host', value => throwIfNotValid(value, isHostValid, 'valid host'))
19 @Column
20 host: string
21
22 @CreatedAt
23 createdAt: Date
24
25 @UpdatedAt
26 updatedAt: Date
27
28 @HasMany(() => ActorModel, {
29 foreignKey: {
30 name: 'serverId',
31 allowNull: true
32 },
33 onDelete: 'CASCADE',
34 hooks: true
35 })
36 Actors: ActorModel[]
37 }