diff options
| author | eug-vs <eug-vs@keemail.me> | 2020-12-02 02:22:38 +0300 | 
|---|---|---|
| committer | eug-vs <eug-vs@keemail.me> | 2020-12-02 02:22:38 +0300 | 
| commit | 4186fb51f66043b221237c7ba91ac5a95a4f32b0 (patch) | |
| tree | 71657f367d899d0fbc165b3c50197d81b8d69007 /lib/event.schema.ts | |
| parent | f6c5ac6632781d813a6e1f1ba957e7f9e4d70738 (diff) | |
| download | mongo-cronjob-4186fb51f66043b221237c7ba91ac5a95a4f32b0.tar.gz | |
feat: add log model
Diffstat (limited to 'lib/event.schema.ts')
| -rw-r--r-- | lib/event.schema.ts | 34 | 
1 files changed, 34 insertions, 0 deletions
| diff --git a/lib/event.schema.ts b/lib/event.schema.ts new file mode 100644 index 0000000..1bba77d --- /dev/null +++ b/lib/event.schema.ts @@ -0,0 +1,34 @@ +import { Schema, Document } from 'mongoose'; + +export interface EventDocument<Context> extends Document { +  name: string; +  schedule: string; +  status: 'notStarted' | 'running' | 'complete' | 'failed'; +  error?: string; +  context: Context; +  nextRunAt?: Date; +  lastRunAt?: Date; +} + +const createEventSchema = (contextSchema: Schema) => new Schema({ +  name: { +    type: String, +    required: true +  }, +  schedule: { +    type: String, +    required: true +  }, +  status: { +    type: String, +    default: 'notStarted' +  }, +  error: String, +  context: contextSchema, +  nextRunAt: Date, +  lastRunAt: Date +}, { timestamps: true }); + + +export default createEventSchema; + | 
