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

@Entity('messages')
export class MessageEntity {
  @PrimaryColumn('text')
  id!: string;

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

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

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

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

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

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

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

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

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

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

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

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

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