81 lines
1.4 KiB
TypeScript
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
|
|
}
|
|
}
|