import { randomUUID } from 'node:crypto' import { Collection, Entity, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core' import { BaseEntity } from '#application/base/baseEntity' import { CharacterGender } from '#application/enums' import { UUID } from '#application/types' import { Character } from '#entities/character' import { Sprite } from '#entities/sprite' export class BaseCharacterHair extends BaseEntity { @PrimaryKey() id = randomUUID() @Property() name!: string @Property() gender: CharacterGender = CharacterGender.MALE @Property() isSelectable = false @ManyToOne() sprite?: Sprite setId(id: UUID) { this.id = id return this } getId() { return this.id } setName(name: string) { this.name = name return this } getName() { return this.name } setGender(gender: CharacterGender) { this.gender = gender return this } getGender() { return this.gender } setIsSelectable(isSelectable: boolean) { this.isSelectable = isSelectable return this } getIsSelectable() { return this.isSelectable } setSprite(sprite: Sprite) { this.sprite = sprite return this } getSprite() { return this.sprite } }