worker.model.ts 986 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { BaseModel, BooleanField, Model, OneToMany, EnumField, StringField } from 'warthog';
  2. import { DataObject } from '../data-object/data-object.model';
  3. import { WorkerType } from '../enums/enums';
  4. export { WorkerType };
  5. @Model({ api: {} })
  6. export class Worker extends BaseModel {
  7. @BooleanField({
  8. description: `Sign of worker still being active`,
  9. })
  10. isActive!: boolean;
  11. @StringField({
  12. description: `Runtime identifier`,
  13. })
  14. workerId!: string;
  15. @EnumField('WorkerType', WorkerType, {
  16. description: `Associated working group`,
  17. })
  18. type!: WorkerType;
  19. @StringField({
  20. nullable: true,
  21. description: `Custom metadata set by provider`,
  22. })
  23. metadata?: string;
  24. @OneToMany(() => DataObject, (param: DataObject) => param.liaison, {
  25. modelName: 'Worker',
  26. relModelName: 'DataObject',
  27. propertyName: 'dataObjects',
  28. })
  29. dataObjects?: DataObject[];
  30. constructor(init?: Partial<Worker>) {
  31. super();
  32. Object.assign(this, init);
  33. }
  34. }