22 lines
733 B
TypeScript
22 lines
733 B
TypeScript
import { Schema, model, Document, Types } from 'mongoose';
|
|
import { ITag } from './Tag.js';
|
|
|
|
export interface IItem extends Document {
|
|
name: string;
|
|
description: string;
|
|
tags: Types.Array<ITag['_id']>;
|
|
quantity: number; // ← nuovo
|
|
dateAdded: Date;
|
|
addedBy: string;
|
|
}
|
|
|
|
const itemSchema = new Schema<IItem>({
|
|
name: { type: String, required: true },
|
|
description: { type: String, required: true },
|
|
tags: [{ type: Schema.Types.ObjectId, ref: 'Tag' }],
|
|
quantity: { type: Number, default: 0, min: 0 }, // default 0, mai negativo
|
|
dateAdded: { type: Date, default: Date.now },
|
|
addedBy: { type: String },
|
|
});
|
|
|
|
export default model<IItem>('Item', itemSchema);
|