Files
dmenu-api/src/common/entities/base.entity.ts
T
2025-11-10 23:00:59 +03:30

24 lines
660 B
TypeScript
Executable File

import { PrimaryKey, Property, Filter, OptionalProps } from '@mikro-orm/core';
import { ulid } from 'ulid';
@Filter({ name: 'notDeleted', cond: { deletedAt: null }, default: true })
export abstract class BaseEntity {
[OptionalProps]?: 'id' | 'createdAt' | 'updatedAt' | 'deletedAt';
@PrimaryKey({ type: 'string', columnType: 'char(26)' })
id: string = ulid();
@Property({ defaultRaw: 'now()', columnType: 'timestamptz' })
createdAt: Date = new Date();
@Property({
onUpdate: () => new Date(),
defaultRaw: 'now()',
columnType: 'timestamptz',
})
updatedAt: Date = new Date();
@Property({ nullable: true })
deletedAt?: Date;
}