import {
  Entity,
  PrimaryGeneratedColumn,
  Column,
  CreateDateColumn,
  ManyToOne,
  JoinColumn,
  Index,
} from "typeorm"
import { ChatRoom } from "./chat-room.entity"

export enum ParticipantType {
  TEAM_MEMBER = "team_member",
  CUSTOMER = "customer",
}

@Entity("chat_participants")
export class ChatParticipant {
  @PrimaryGeneratedColumn()
  id: number

  @Column()
  @Index("idx_chat_participant_room")
  chat_room_id: number

  @Column()
  participant_type: ParticipantType

  @Column()
  participant_id: number

  @CreateDateColumn()
  joined_at: Date

  @ManyToOne(() => ChatRoom)
  @JoinColumn({ name: "chat_room_id" })
  chat_room: ChatRoom
}
