import { randomUUID } from 'node:crypto' import { Collection, Entity, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core' import { BaseEntity } from '#application/base/baseEntity' import { UUID } from '#application/types' import { Character } from '#entities/character' import { CharacterEquipment } from '#entities/characterEquipment' import { Item } from '#entities/item' export class BaseCharacterItem extends BaseEntity { @PrimaryKey() id = randomUUID() @ManyToOne({ deleteRule: 'cascade' }) character!: Character @ManyToOne({ deleteRule: 'cascade' }) item!: Item @Property() quantity!: number setId(id: UUID) { this.id = id return this } getId() { return this.id } setCharacter(character: Character) { this.character = character return this } getCharacter() { return this.character } setItem(item: Item) { this.item = item return this } getItem() { return this.item } setQuantity(quantity: number) { this.quantity = quantity return this } getQuantity() { return this.quantity } }