Implemented materials.
All checks were successful
farmcontrol/farmcontrol-ws/pipeline/head This commit looks good

This commit is contained in:
Tom Butcher 2026-03-08 01:28:31 +00:00
parent 7a500ffa58
commit b2c854bce9
3 changed files with 18 additions and 8 deletions

View File

@ -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 },

View File

@ -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;

View File

@ -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',