import { randomUUID } from 'node:crypto' import { Entity, PrimaryKey, Property } from '@mikro-orm/core' import { BaseEntity } from '#application/base/baseEntity' import { UUID } from '#application/types' export class BaseTile extends BaseEntity { @PrimaryKey() id = randomUUID() @Property() name!: string @Property({ type: 'json', nullable: true }) tags?: any @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 } setTags(tags: any) { this.tags = tags return this } getTags() { return this.tags } setCreatedAt(createdAt: Date) { this.createdAt = createdAt return this } getCreatedAt() { return this.createdAt } setUpdatedAt(updatedAt: Date) { this.updatedAt = updatedAt return this } getUpdatedAt() { return this.updatedAt } }