1
1
mirror of https://github.com/theoludwig/p61-project.git synced 2024-07-17 07:00:12 +02:00
p61-project/domain/entities/_Entity.ts

23 lines
439 B
TypeScript
Raw Normal View History

2024-03-22 10:23:28 +01:00
import { z } from "zod"
export const EntitySchema = z.object({
id: z.string(),
})
export type EntityData = z.infer<typeof EntitySchema>
2024-03-15 22:48:28 +01:00
2024-03-22 10:23:28 +01:00
export abstract class Entity implements EntityData {
2024-03-15 22:48:28 +01:00
public readonly id: string
2024-03-22 10:23:28 +01:00
public constructor(options: EntityData) {
2024-03-15 22:48:28 +01:00
const { id } = options
this.id = id
}
2024-03-22 10:23:28 +01:00
public equals(entity: Entity): boolean {
return entity.id === this.id
}
public abstract toJSON(): EntityData
2024-03-15 22:48:28 +01:00
}