From b2c854bce9f6489eea763ef0dfe15b7d656a9f1b Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Sun, 8 Mar 2026 01:28:31 +0000 Subject: [PATCH] Implemented materials. --- .../schemas/management/filament.schema.js | 2 +- .../schemas/management/material.schema.js | 16 +++++++++------- src/database/schemas/models.js | 8 ++++++++ 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/database/schemas/management/filament.schema.js b/src/database/schemas/management/filament.schema.js index 9295a8d..1570a87 100644 --- a/src/database/schemas/management/filament.schema.js +++ b/src/database/schemas/management/filament.schema.js @@ -9,7 +9,7 @@ const filamentSchema = new mongoose.Schema({ barcode: { required: false, type: String }, url: { required: false, type: String }, image: { required: false, type: Buffer }, - type: { required: true, type: String }, + material: { type: Schema.Types.ObjectId, ref: 'material', required: true }, diameter: { required: true, type: Number }, density: { required: true, type: Number }, emptySpoolWeight: { required: true, type: Number }, diff --git a/src/database/schemas/management/material.schema.js b/src/database/schemas/management/material.schema.js index 1f28cf4..1cd6b3a 100644 --- a/src/database/schemas/management/material.schema.js +++ b/src/database/schemas/management/material.schema.js @@ -1,13 +1,15 @@ import mongoose from 'mongoose'; import { generateId } from '../../utils.js'; -const materialSchema = new mongoose.Schema({ - _reference: { type: String, default: () => generateId()() }, - name: { required: true, type: String }, - url: { required: false, type: String }, - image: { required: false, type: Buffer }, - tags: [{ type: String }], -}); +const materialSchema = new mongoose.Schema( + { + _reference: { type: String, default: () => generateId()() }, + name: { required: true, type: String }, + url: { required: false, type: String }, + tags: [{ type: String }], + }, + { timestamps: true } +); materialSchema.virtual('id').get(function () { return this._id; diff --git a/src/database/schemas/models.js b/src/database/schemas/models.js index 968f7b3..1d7c3ed 100644 --- a/src/database/schemas/models.js +++ b/src/database/schemas/models.js @@ -9,6 +9,7 @@ import { partSkuModel } from './management/partsku.schema.js'; import { productModel } from './management/product.schema.js'; import { productSkuModel } from './management/productsku.schema.js'; import { vendorModel } from './management/vendor.schema.js'; +import { materialModel } from './management/material.schema.js'; import { filamentStockModel } from './inventory/filamentstock.schema.js'; import { purchaseOrderModel } from './inventory/purchaseorder.schema.js'; import { orderItemModel } from './inventory/orderitem.schema.js'; @@ -104,6 +105,13 @@ export const models = { referenceField: '_reference', label: 'Vendor', }, + MAT: { + model: materialModel, + idField: '_id', + type: 'material', + referenceField: '_reference', + label: 'Material', + }, SJB: { model: subJobModel, idField: '_id',