From 3a2cdd13b0374aab279b8dd819b03f82013cb026 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Sun, 14 Mar 2021 13:31:45 +0300 Subject: feat: add Waybills service --- src/models/waybill/waybill.model.ts | 4 ++++ src/models/waybill/waybill.schema.ts | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 src/models/waybill/waybill.model.ts create mode 100644 src/models/waybill/waybill.schema.ts (limited to 'src/models/waybill') diff --git a/src/models/waybill/waybill.model.ts b/src/models/waybill/waybill.model.ts new file mode 100644 index 0000000..3769eec --- /dev/null +++ b/src/models/waybill/waybill.model.ts @@ -0,0 +1,4 @@ +import { Model, model } from 'mongoose'; +import { WaybillSchema, waybillSchema } from './waybill.schema'; + +export default model>('Waybill', waybillSchema); diff --git a/src/models/waybill/waybill.schema.ts b/src/models/waybill/waybill.schema.ts new file mode 100644 index 0000000..ce14525 --- /dev/null +++ b/src/models/waybill/waybill.schema.ts @@ -0,0 +1,33 @@ +import { Document, Schema, Types } from 'mongoose'; + +export interface WaybillSchema extends Document { + operation: 'in' | 'out'; + productId: string; + quantity: number; + contractorId: string; + status: 'waiting' | 'executed' | 'cancelled'; +} + +export const waybillSchema = new Schema({ + operation: { + type: String, + required: true, + }, + contractorId: { + type: Types.ObjectId, + required: true, + }, + productId: { + type: Types.ObjectId, + required: true, + }, + quantity: { + type: Number, + min: 1, + }, + status: { + type: String, + default: 'waiting', + }, +}, { timestamps: true }); + -- cgit v1.2.3