import { randomUUID } from 'node:crypto' import { BaseEntity } from '@/application/base/baseEntity' import type { UUID } from '@/application/types' import type { Map } from '@/entities/map' import type { MapEventTile } from '@/entities/mapEventTile' import { ManyToOne, OneToOne, PrimaryKey, Property } from '@mikro-orm/core' export class BaseMapEventTileTeleport extends BaseEntity { @PrimaryKey() id = randomUUID() @OneToOne({ deleteRule: 'cascade', orphanRemoval: true }) mapEventTile!: MapEventTile @ManyToOne({ deleteRule: 'cascade', eager: true }) toMap!: Map @Property() toRotation!: number @Property() toPositionX!: number @Property() toPositionY!: number setId(id: UUID) { this.id = id return this } getId() { return this.id } setMapEventTile(mapEventTile: MapEventTile) { this.mapEventTile = mapEventTile return this } getMapEventTile() { return this.mapEventTile } setToMap(toMap: Map) { this.toMap = toMap return this } getToMap() { return this.toMap } setToRotation(toRotation: number) { this.toRotation = toRotation return this } getToRotation() { return this.toRotation } setToPositionX(toPositionX: number) { this.toPositionX = toPositionX return this } getToPositionX() { return this.toPositionX } setToPositionY(toPositionY: number) { this.toPositionY = toPositionY return this } getToPositionY() { return this.toPositionY } }