From 4017e23e843f4ca77fcfae48e252ec9e2d0940e7 Mon Sep 17 00:00:00 2001 From: SiRanWeb Date: Sat, 29 Oct 2022 21:39:32 +0300 Subject: [PATCH] add ModelType enum --- src/common/common.types.ts | 5 +++++ src/models/ASBase.model.ts | 3 ++- .../IntransitiveActivity/IntransitiveActivity.model.ts | 3 ++- src/models/activity/Activity.model.ts | 3 ++- src/models/asObject/ASObject.model.ts | 3 ++- 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/common/common.types.ts b/src/common/common.types.ts index 166bbff..2c6ae49 100644 --- a/src/common/common.types.ts +++ b/src/common/common.types.ts @@ -1,6 +1,11 @@ import { Link } from "../models/Link.model"; import {ASObject} from "../models/asObject/ASObject.model"; +export enum ModelType { + Object = 'Object', + Activity = 'Activity' +} + // TODO: implement export type Image = 'placeholder'; export type Article = 'placeholder'; diff --git a/src/models/ASBase.model.ts b/src/models/ASBase.model.ts index d7cb0f5..51ecd00 100644 --- a/src/models/ASBase.model.ts +++ b/src/models/ASBase.model.ts @@ -11,9 +11,10 @@ export interface ModelBaseAPWithContext { export class ASBase { public fields: T & ModelBaseAPWithContext; - constructor(fields: T) { + constructor(type: string, fields: T) { // TODO: make recursive copy this.fields = { + type, ...fields, } as T & ModelBaseAPWithContext; } diff --git a/src/models/IntransitiveActivity/IntransitiveActivity.model.ts b/src/models/IntransitiveActivity/IntransitiveActivity.model.ts index 040b7df..e161404 100644 --- a/src/models/IntransitiveActivity/IntransitiveActivity.model.ts +++ b/src/models/IntransitiveActivity/IntransitiveActivity.model.ts @@ -1,5 +1,6 @@ import {ASBase} from "../ASBase.model"; import {IntransitiveActivityFields} from './IntransitiveActivity.types'; +import {ModelType} from "../../common/common.types"; /** * Instances of IntransitiveActivity are a subtype of @@ -10,6 +11,6 @@ import {IntransitiveActivityFields} from './IntransitiveActivity.types'; */ export class IntransitiveActivity extends ASBase{ constructor(fields: IntransitiveActivityFields) { - super(fields); + super(ModelType.Activity, fields); } } \ No newline at end of file diff --git a/src/models/activity/Activity.model.ts b/src/models/activity/Activity.model.ts index bb5b0d4..efef621 100644 --- a/src/models/activity/Activity.model.ts +++ b/src/models/activity/Activity.model.ts @@ -1,5 +1,6 @@ import {ASBase} from "../ASBase.model"; import { ActivityFields } from "./Activity.types"; +import {ModelType} from "../../common/common.types"; /** * An Activity is a subtype of Object that describes some form of action that may happen, @@ -11,6 +12,6 @@ import { ActivityFields } from "./Activity.types"; */ export class Activity extends ASBase{ constructor(fields: ActivityFields) { - super(fields); + super(ModelType.Activity, fields); } } \ No newline at end of file diff --git a/src/models/asObject/ASObject.model.ts b/src/models/asObject/ASObject.model.ts index 0d4a3d5..fec15a5 100644 --- a/src/models/asObject/ASObject.model.ts +++ b/src/models/asObject/ASObject.model.ts @@ -1,5 +1,6 @@ import {ASBase} from "../ASBase.model"; import { ASObjectFields } from "./ASObject.types"; +import {ModelType} from "../../common/common.types"; /** * Describes an object of any kind. The Object type serves as the base type for most of @@ -10,6 +11,6 @@ import { ASObjectFields } from "./ASObject.types"; */ export class ASObject extends ASBase{ constructor(fields: ASObjectFields) { - super(fields); + super(ModelType.Object, fields); } } \ No newline at end of file