import { Collection, Entity, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core' import { BaseEntity } from '#application/bases/baseEntity' import { Character } from './character' import { Sprite } from './sprite' import { CharacterGender } from '#application/enums' @Entity() export class CharacterHair extends BaseEntity { @PrimaryKey() id!: number @Property() name!: string @Property() gender: CharacterGender = CharacterGender.MALE @Property() isSelectable = false @ManyToOne(() => Sprite, { nullable: true }) sprite?: Sprite @OneToMany(() => Character, (character) => character.characterHair) characters = new Collection(this) setId(id: number) { 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 } setCharacters(characters: Collection) { this.characters = characters return this } getCharacters() { return this.characters } }