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

@Entity('rooms')
export class RoomEntity {
  @PrimaryColumn('text')
  id!: string;

  @Column('text')
  name!: string;

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

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

  @Column('text')
  hostId!: string;

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

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

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

  @Column('integer')
  createdAt!: number;

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

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

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

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

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

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

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

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