import { Column , Entity , JoinColumn , ManyToOne , RelationId } from "typeorm" ; import { BaseClass } from "./BaseClass" ; import { Channel } from "./Channel" ; import { Guild } from "./Guild" ; import { User } from "./User" ; import { Member } from "./Member" ; @ Entity ( "voice_states" ) export class VoiceState extends BaseClass { @ Column ( { nullable : true } ) @ RelationId ( ( voice_state ) => voice_state . guild ) guild_id : string ; @ JoinColumn ( { name : "guild_id" } ) @ ManyToOne ( ( ) => Guild , { onDelete : "CASCADE" , } ) guild ? : Guild ; @ Column ( { nullable : true } ) @ RelationId ( ( voice_state ) => voice_state . channel ) channel_id : string ; @ JoinColumn ( { name : "channel_id" } ) @ ManyToOne ( ( ) => Channel , { onDelete : "CASCADE" , } ) channel : Channel ; @ Column ( { nullable : true } ) @ RelationId ( ( voice_state ) => voice_state . user ) user_id : string ; @ JoinColumn ( { name : "user_id" } ) @ ManyToOne ( ( ) => User , { onDelete : "CASCADE" , } ) user : User ; member : Member ; @ Column ( ) session_id : string ; @ Column ( { nullable : true } ) token : string ; @ Column ( ) deaf : boolean ; @ Column ( ) mute : boolean ; @ Column ( ) self_deaf : boolean ; @ Column ( ) self_mute : boolean ; @ Column ( { nullable : true } ) self_stream ? : boolean ; @ Column ( ) self_video : boolean ; @ Column ( ) suppress : boolean ; @ Column ( { nullable : true , default : null } ) request_to_speak_timestamp ? : Date ; }