import { randomUUID } from 'node:crypto' import { Entity, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core' import { Character } from './character' import { Map } from './map' import { BaseEntity } from '#application/base/baseEntity' import { UUID } from '#application/types' @Entity() export class Chat extends BaseEntity { @PrimaryKey() id = randomUUID() @ManyToOne({ deleteRule: 'cascade' }) character!: Character @ManyToOne({ deleteRule: 'cascade' }) map!: Map @Property() message!: string @Property() createdAt = new Date() setId(id: UUID) { this.id = id return this } getId() { return this.id } setCharacter(character: Character) { this.character = character return this } getCharacter() { return this.character } setMap(map: Map) { this.map = map return this } getMap() { return this.map } setMessage(message: string) { this.message = message return this } getMessage() { return this.message } setCreatedAt(createdAt: Date) { this.createdAt = createdAt return this } getCreatedAt() { return this.createdAt } }