You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
894 B
49 lines
894 B
import {
|
|
BeforeInsert,
|
|
Column,
|
|
Entity,
|
|
JoinColumn,
|
|
JoinTable,
|
|
ManyToMany,
|
|
ManyToOne,
|
|
OneToMany,
|
|
PrimaryGeneratedColumn
|
|
} from 'typeorm'
|
|
import User from 'src/users/entity/user.entity'
|
|
import Message from './message.entity'
|
|
|
|
@Entity()
|
|
export default class Channel {
|
|
@PrimaryGeneratedColumn()
|
|
id: number
|
|
|
|
@Column()
|
|
name: string
|
|
|
|
@Column({ default: false })
|
|
isPrivate: boolean
|
|
|
|
@Column({ default: '' })
|
|
password: string
|
|
|
|
@ManyToMany(() => User)
|
|
@JoinTable()
|
|
users: User[]
|
|
|
|
@OneToMany(() => Message, (message: Message) => message.channel, { cascade: true })
|
|
messages: Message[]
|
|
|
|
@ManyToOne(() => User)
|
|
@JoinColumn()
|
|
owner: User
|
|
|
|
@ManyToMany(() => User)
|
|
@JoinTable()
|
|
admins: User[]
|
|
|
|
@Column('text', { array: true, default: [] })
|
|
banned: number[][]
|
|
|
|
@Column('text', { array: true, default: [] })
|
|
muted: number[][]
|
|
}
|
|
|