import {
  Entity,
  PrimaryGeneratedColumn,
  Column,
  CreateDateColumn,
  OneToMany,
} from "typeorm"
import { ChatMessage } from "./chat-message.entity"
import { ChatParticipant } from "./chat-participant.entity"

export enum ChatType {
  DRIVER_DISPATCHER = "driver_dispatcher",
  DRIVER_CUSTOMER = "driver_customer",
  CUSTOMER_DISPATCHER = "customer_dispatcher",
}

@Entity("chat_rooms")
export class ChatRoom {
  @PrimaryGeneratedColumn()
  id: number

  @Column()
  chat_type: ChatType

  @Column({ nullable: true })
  trip_id: number

  @CreateDateColumn()
  created_at: Date

  @OneToMany(() => ChatParticipant, (participant) => participant.chat_room)
  participants: ChatParticipant[]

  @OneToMany(() => ChatMessage, (message) => message.chat_room)
  messages: ChatMessage[]
}
