server/src/entities/characterHair.ts

81 lines
1.4 KiB
TypeScript

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<Character>(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<Character>) {
this.characters = characters
return this
}
getCharacters() {
return this.characters
}
}