forked from noxious/server
97 lines
1.6 KiB
TypeScript
97 lines
1.6 KiB
TypeScript
import { randomUUID } from 'node:crypto'
|
|
|
|
import { Collection, Entity, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
|
|
|
|
import type { UUID } from'@/application/types'
|
|
|
|
import { BaseEntity } from'@/application/base/baseEntity'
|
|
import { CharacterGender } from'@/application/enums'
|
|
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
|
|
|
|
@Property()
|
|
createdAt = new Date()
|
|
|
|
@Property()
|
|
updatedAt = new Date()
|
|
|
|
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
|
|
}
|
|
|
|
setCreatedAt(createdAt: Date) {
|
|
this.createdAt = createdAt
|
|
return this
|
|
}
|
|
|
|
getCreatedAt() {
|
|
return this.createdAt
|
|
}
|
|
|
|
setUpdatedAt(updatedAt: Date) {
|
|
this.updatedAt = updatedAt
|
|
return this
|
|
}
|
|
|
|
getUpdatedAt() {
|
|
return this.updatedAt
|
|
}
|
|
}
|