unoffical wafrn mirror
wafrn.net
atproto
social-network
activitypub
1import { Model, Table, Column, DataType, ForeignKey, BelongsTo } from 'sequelize-typescript'
2import { User } from './user.js'
3import { Post } from './post.js'
4
5export interface PostReportAttributes {
6 id?: number
7 createdAt?: Date
8 updatedAt?: Date
9 resolved?: boolean
10 severity?: number
11 description?: string
12 userId?: string
13 postId?: string
14 reportedUserId?: string
15}
16
17@Table({
18 tableName: 'postReports',
19 modelName: 'postReports',
20 timestamps: true
21})
22export class PostReport extends Model<PostReportAttributes, PostReportAttributes> implements PostReportAttributes {
23 @Column({
24 allowNull: true,
25 type: DataType.BOOLEAN
26 })
27 declare resolved: boolean
28
29 @Column({
30 allowNull: true,
31 type: DataType.INTEGER
32 })
33 declare severity: number
34
35 @Column({
36 allowNull: true,
37 type: DataType.STRING
38 })
39 declare description: string
40
41 @ForeignKey(() => User)
42 @Column({
43 allowNull: true,
44 type: DataType.UUID
45 })
46 declare userId: string
47
48 @ForeignKey(() => User)
49 @Column({
50 allowNull: true,
51 type: DataType.UUID
52 })
53 declare reportedUserId: string
54
55 @ForeignKey(() => Post)
56 @Column({
57 allowNull: true,
58 type: DataType.UUID
59 })
60 declare postId: string
61
62 @BelongsTo(() => User, 'userId')
63 declare user: User
64
65 @BelongsTo(() => Post, 'postId')
66 declare post: Post
67}