This commit is contained in:
Peter Maquiran
2024-08-30 12:41:50 +01:00
parent ac7e5ccf5b
commit d6a08c6264
33 changed files with 558 additions and 87 deletions
+34
View File
@@ -0,0 +1,34 @@
import { v4 as uuidv4 } from 'uuid';
import { ZodSchema, ZodType } from 'zod';
// export interface IEntity {
// id: string;
// createdAt: Date;
// updatedAt: Date;
// deletedAt?: Date;
// }
export const BaseEntity = <T>(schema: ZodSchema) => {
abstract class Entity {
readonly id: string;
readonly createdAt: Date;
readonly updatedAt: Date;
deletedAt?: Date;
static nameOf = (name: keyof T) => name;
validate<T>(entity: T): ZodType {
return schema.parse(entity);
}
}
return Entity;
};