diff --git a/npm/ng-packs/packages/core/src/lib/models/dtos.ts b/npm/ng-packs/packages/core/src/lib/models/dtos.ts index 21bf136aa5..f31e6609ff 100644 --- a/npm/ng-packs/packages/core/src/lib/models/dtos.ts +++ b/npm/ng-packs/packages/core/src/lib/models/dtos.ts @@ -1,3 +1,5 @@ +import { ABP } from './common'; + export class ListResultDto { items?: T[]; @@ -122,3 +124,95 @@ export class FullAuditedEntityWithUserDto< super(initialValues); } } + +export class ExtensibleObject { + extraProperties: ABP.Dictionary; + + constructor(initialValues: Partial = {}) { + for (const key in initialValues) { + if (initialValues.hasOwnProperty(key)) { + this[key] = initialValues[key]; + } + } + } +} + +export class ExtensibleEntityDto extends ExtensibleObject { + id: TKey; + + constructor(initialValues: Partial> = {}) { + super(initialValues); + } +} + +export class ExtensibleCreationAuditedEntityDto extends ExtensibleEntityDto< + TPrimaryKey +> { + creationTime: Date | string; + creatorId?: string; + + constructor(initialValues: Partial> = {}) { + super(initialValues); + } +} + +export class ExtensibleAuditedEntityDto< + TPrimaryKey = string +> extends ExtensibleCreationAuditedEntityDto { + lastModificationTime?: Date | string; + lastModifierId?: string; + + constructor(initialValues: Partial> = {}) { + super(initialValues); + } +} + +export class ExtensibleAuditedEntityWithUserDto< + TPrimaryKey = string, + TUserDto = any +> extends ExtensibleAuditedEntityDto { + creator: TUserDto; + lastModifier: TUserDto; + + constructor(initialValues: Partial> = {}) { + super(initialValues); + } +} + +export class ExtensibleCreationAuditedEntityWithUserDto< + TPrimaryKey = string, + TUserDto = any +> extends ExtensibleCreationAuditedEntityDto { + creator: TUserDto; + + constructor( + initialValues: Partial> = {}, + ) { + super(initialValues); + } +} + +export class ExtensibleFullAuditedEntityDto< + TPrimaryKey = string +> extends ExtensibleAuditedEntityDto { + isDeleted: boolean; + deleterId?: string; + deletionTime: Date | string; + + constructor(initialValues: Partial> = {}) { + super(initialValues); + } +} + +export class ExtensibleFullAuditedEntityWithUserDto< + TPrimaryKey = string, + TUserDto = any +> extends ExtensibleFullAuditedEntityDto { + creator: TUserDto; + lastModifier: TUserDto; + deleter: TUserDto; + + constructor(initialValues: Partial> = {}) { + super(initialValues); + } +}