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

@Entity('room_roles')
export class RoomRoleEntity {
  @PrimaryColumn('text')
  roomId!: string;

  @PrimaryColumn('text')
  roleId!: string;

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

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

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

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

  @Column('text', { default: 'inherit' })
  manageServer!: 'allow' | 'deny' | 'inherit';

  @Column('text', { default: 'inherit' })
  manageRoles!: 'allow' | 'deny' | 'inherit';

  @Column('text', { default: 'inherit' })
  manageChannels!: 'allow' | 'deny' | 'inherit';

  @Column('text', { default: 'inherit' })
  manageIcon!: 'allow' | 'deny' | 'inherit';

  @Column('text', { default: 'inherit' })
  kickMembers!: 'allow' | 'deny' | 'inherit';

  @Column('text', { default: 'inherit' })
  banMembers!: 'allow' | 'deny' | 'inherit';

  @Column('text', { default: 'inherit' })
  manageBans!: 'allow' | 'deny' | 'inherit';

  @Column('text', { default: 'inherit' })
  deleteMessages!: 'allow' | 'deny' | 'inherit';

  @Column('text', { default: 'inherit' })
  joinVoice!: 'allow' | 'deny' | 'inherit';

  @Column('text', { default: 'inherit' })
  shareScreen!: 'allow' | 'deny' | 'inherit';

  @Column('text', { default: 'inherit' })
  uploadFiles!: 'allow' | 'deny' | 'inherit';
}
