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 }, barcode: { required: false, type: String },
url: { required: false, type: String }, url: { required: false, type: String },
image: { required: false, type: Buffer }, image: { required: false, type: Buffer },
type: { required: true, type: String }, material: { type: Schema.Types.ObjectId, ref: 'material', required: true },
diameter: { required: true, type: Number }, diameter: { required: true, type: Number },
density: { required: true, type: Number }, density: { required: true, type: Number },
emptySpoolWeight: { required: true, type: Number }, emptySpoolWeight: { required: true, type: Number },

View File

@ -1,13 +1,15 @@
import mongoose from 'mongoose'; import mongoose from 'mongoose';
import { generateId } from '../../utils.js'; import { generateId } from '../../utils.js';
const materialSchema = new mongoose.Schema({ const materialSchema = new mongoose.Schema(
_reference: { type: String, default: () => generateId()() }, {
name: { required: true, type: String }, _reference: { type: String, default: () => generateId()() },
url: { required: false, type: String }, name: { required: true, type: String },
image: { required: false, type: Buffer }, url: { required: false, type: String },
tags: [{ type: String }], tags: [{ type: String }],
}); },
{ timestamps: true }
);
materialSchema.virtual('id').get(function () { materialSchema.virtual('id').get(function () {
return this._id; return this._id;

View File

@ -9,6 +9,7 @@ import { partSkuModel } from './management/partsku.schema.js';
import { productModel } from './management/product.schema.js'; import { productModel } from './management/product.schema.js';
import { productSkuModel } from './management/productsku.schema.js'; import { productSkuModel } from './management/productsku.schema.js';
import { vendorModel } from './management/vendor.schema.js'; import { vendorModel } from './management/vendor.schema.js';
import { materialModel } from './management/material.schema.js';
import { filamentStockModel } from './inventory/filamentstock.schema.js'; import { filamentStockModel } from './inventory/filamentstock.schema.js';
import { purchaseOrderModel } from './inventory/purchaseorder.schema.js'; import { purchaseOrderModel } from './inventory/purchaseorder.schema.js';
import { orderItemModel } from './inventory/orderitem.schema.js'; import { orderItemModel } from './inventory/orderitem.schema.js';
@ -104,6 +105,13 @@ export const models = {
referenceField: '_reference', referenceField: '_reference',
label: 'Vendor', label: 'Vendor',
}, },
MAT: {
model: materialModel,
idField: '_id',
type: 'material',
referenceField: '_reference',
label: 'Material',
},
SJB: { SJB: {
model: subJobModel, model: subJobModel,
idField: '_id', idField: '_id',