farmcontrol-server/src/database/printsubjob.schema.js

50 lines
1.0 KiB
JavaScript

import mongoose from "mongoose";
const { Schema } = mongoose;
const printSubJobSchema = new mongoose.Schema({
printer: {
type: Schema.Types.ObjectId,
ref: "Printer",
required: true
},
printJob: {
type: Schema.Types.ObjectId,
ref: "PrintJob",
required: true
},
subJobId: {
type: String,
required: true
},
gcodeFile: {
type: Schema.Types.ObjectId,
ref: "GCodeFile",
required: true,
},
state: {
type: { required: true, type: String },
progress: { required: false, type: Number, default: 0 },
},
number: {
type: Number,
required: true
},
createdAt: {
type: Date,
default: Date.now
},
updatedAt: {
type: Date,
default: Date.now
},
startedAt: { required: false, type: Date },
finishedAt: { required: false, type: Date },
});
printSubJobSchema.virtual("id").get(function () {
return this._id.toHexString();
});
printSubJobSchema.set("toJSON", { virtuals: true });
export const printSubJobModel = mongoose.model("PrintSubJob", printSubJobSchema);