import {
  Entity,
  PrimaryColumn,
  Column
} from 'typeorm';

@Entity('users')
export class UserEntity {
  @PrimaryColumn('text')
  id!: string;

  @Column('text', { nullable: true })
  oderId!: string | null;

  @Column('text', { nullable: true })
  username!: string | null;

  @Column('text', { nullable: true })
  displayName!: string | null;

  @Column('text', { nullable: true })
  description!: string | null;

  @Column('integer', { nullable: true })
  profileUpdatedAt!: number | null;

  @Column('text', { nullable: true })
  avatarUrl!: string | null;

  @Column('text', { nullable: true })
  avatarHash!: string | null;

  @Column('text', { nullable: true })
  avatarMime!: string | null;

  @Column('integer', { nullable: true })
  avatarUpdatedAt!: number | null;

  @Column('text', { nullable: true })
  status!: string | null;

  @Column('text', { nullable: true })
  role!: string | null;

  @Column('integer', { nullable: true })
  joinedAt!: number | null;

  @Column('text', { nullable: true })
  peerId!: string | null;

  @Column('integer', { default: 0 })
  isOnline!: number;

  @Column('integer', { default: 0 })
  isAdmin!: number;

  @Column('integer', { default: 0 })
  isRoomOwner!: number;

  @Column('text', { nullable: true })
  voiceState!: string | null;

  @Column('text', { nullable: true })
  screenShareState!: string | null;
}
