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

39 lines
987 B
JavaScript

import mongoose from "mongoose";
const { Schema } = mongoose;
const printJobSchema = new mongoose.Schema({
state: {
type: { required: true, type: String },
progress: { required: false, type: Number, default: 0 },
},
subJobStats : {
required: false, type: Object
},
printers: [{ type: Schema.Types.ObjectId, ref: "Printer", required: false }],
createdAt: { required: true, type: Date },
updatedAt: { required: true, type: Date },
startedAt: { required: false, type: Date },
gcodeFile: {
type: Schema.Types.ObjectId,
ref: "GCodeFile",
required: false,
},
quantity: {
type: Number,
required: true,
default: 1,
min: 1,
},
subJobs: [
{type: Schema.Types.ObjectId, ref: "PrintSubJob", required: false}
],
});
printJobSchema.virtual("id").get(function () {
return this._id.toHexString();
});
printJobSchema.set("toJSON", { virtuals: true });
export const printJobModel = mongoose.model("PrintJob", printJobSchema);