import { randomUUID } from 'node:crypto' import { Collection, Entity, OneToMany, PrimaryKey, Property } from '@mikro-orm/core' import type { UUID } from'@/application/types' import { BaseEntity } from'@/application/base/baseEntity' import { SpriteAction } from'@/entities/spriteAction' export class BaseSprite extends BaseEntity { @PrimaryKey() id = randomUUID() @Property() name!: string @OneToMany(() => SpriteAction, (action) => action.sprite) spriteActions = new Collection(this) @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 } setSpriteActions(spriteActions: Collection) { this.spriteActions = spriteActions return this } getSpriteActions() { return this.spriteActions } setCreatedAt(createdAt: Date) { this.createdAt = createdAt return this } getCreatedAt() { return this.createdAt } setUpdatedAt(updatedAt: Date) { this.updatedAt = updatedAt return this } getUpdatedAt() { return this.updatedAt } }