Merge pull request #2 from kfnawaz/feat/warehouse-attributes
Feat - Warehouse attribute models
This commit is contained in:
33
src/models/Area.js
Normal file
33
src/models/Area.js
Normal file
@@ -0,0 +1,33 @@
|
||||
const mongoose = require("mongoose");
|
||||
|
||||
const schema = new mongoose.Schema(
|
||||
{
|
||||
name: {
|
||||
type: String,
|
||||
required: true,
|
||||
trim: true,
|
||||
},
|
||||
type: {
|
||||
type: String,
|
||||
required: true,
|
||||
trim: true,
|
||||
},
|
||||
specs: {
|
||||
type: String,
|
||||
trim: true,
|
||||
},
|
||||
rows: [
|
||||
{
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
ref: "Row",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
timestamps: true,
|
||||
}
|
||||
);
|
||||
|
||||
const Area = mongoose.model("Area", schema);
|
||||
|
||||
module.exports = Area;
|
||||
38
src/models/Bay.js
Normal file
38
src/models/Bay.js
Normal file
@@ -0,0 +1,38 @@
|
||||
const mongoose = require("mongoose");
|
||||
|
||||
const schema = new mongoose.Schema(
|
||||
{
|
||||
name: {
|
||||
type: String,
|
||||
required: true,
|
||||
trim: true,
|
||||
},
|
||||
number: {
|
||||
type: String,
|
||||
required: true,
|
||||
trim: true,
|
||||
},
|
||||
type: {
|
||||
type: String,
|
||||
required: true,
|
||||
trim: true,
|
||||
},
|
||||
specs: {
|
||||
type: String,
|
||||
trim: true,
|
||||
},
|
||||
levels: [
|
||||
{
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
ref: "Level",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
timestamps: true,
|
||||
}
|
||||
);
|
||||
|
||||
const Level = mongoose.model("Level", schema);
|
||||
|
||||
module.exports = Level;
|
||||
37
src/models/Company.js
Normal file
37
src/models/Company.js
Normal file
@@ -0,0 +1,37 @@
|
||||
const mongoose = require("mongoose");
|
||||
|
||||
const schema = new mongoose.Schema(
|
||||
{
|
||||
name: {
|
||||
type: String,
|
||||
required: true,
|
||||
trim: true,
|
||||
},
|
||||
address: {
|
||||
type: String,
|
||||
required: true,
|
||||
trim: true,
|
||||
},
|
||||
contact_info: {
|
||||
type: String,
|
||||
trim: true,
|
||||
},
|
||||
business_info: {
|
||||
type: String,
|
||||
trim: true,
|
||||
},
|
||||
warehouses: [
|
||||
{
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
ref: "Warehouse",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
timestamps: true,
|
||||
}
|
||||
);
|
||||
|
||||
const Company = mongoose.model("Company", schema);
|
||||
|
||||
module.exports = Company;
|
||||
48
src/models/Level.js
Normal file
48
src/models/Level.js
Normal file
@@ -0,0 +1,48 @@
|
||||
const mongoose = require("mongoose");
|
||||
|
||||
const schema = new mongoose.Schema(
|
||||
{
|
||||
name: {
|
||||
required: true,
|
||||
type: String,
|
||||
trim: true,
|
||||
},
|
||||
number: {
|
||||
required: true,
|
||||
type: String,
|
||||
trim: true,
|
||||
},
|
||||
specs: {
|
||||
// TODO: TBD
|
||||
type: String,
|
||||
trim: true,
|
||||
},
|
||||
sub_levels: [
|
||||
{
|
||||
type: {
|
||||
required: true,
|
||||
type: String,
|
||||
enum: ["POSITION", "BIN", "PALLET"], // TODO: Add to constant file
|
||||
},
|
||||
depth: {
|
||||
required: true,
|
||||
type: Number,
|
||||
min: 1, // Level is at 0
|
||||
max: 5,
|
||||
},
|
||||
sub_level_id: {
|
||||
required: true,
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
ref: "Sublevel",
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
timestamps: true,
|
||||
}
|
||||
);
|
||||
|
||||
const Level = mongoose.model("Level", schema);
|
||||
|
||||
module.exports = Level;
|
||||
33
src/models/Row.js
Normal file
33
src/models/Row.js
Normal file
@@ -0,0 +1,33 @@
|
||||
const mongoose = require("mongoose");
|
||||
|
||||
const schema = new mongoose.Schema(
|
||||
{
|
||||
name: {
|
||||
type: String,
|
||||
required: true,
|
||||
trim: true,
|
||||
},
|
||||
number: {
|
||||
type: String,
|
||||
required: true,
|
||||
trim: true,
|
||||
},
|
||||
specs: {
|
||||
type: String,
|
||||
trim: true,
|
||||
},
|
||||
bays: [
|
||||
{
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
ref: "Bay",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
timestamps: true,
|
||||
}
|
||||
);
|
||||
|
||||
const Row = mongoose.model("Row", schema);
|
||||
|
||||
module.exports = Row;
|
||||
72
src/models/Sublevel.js
Normal file
72
src/models/Sublevel.js
Normal file
@@ -0,0 +1,72 @@
|
||||
const mongoose = require("mongoose");
|
||||
|
||||
const schema = new mongoose.Schema(
|
||||
{
|
||||
name: {
|
||||
required: true,
|
||||
type: String,
|
||||
trim: true,
|
||||
},
|
||||
type: {
|
||||
type: String,
|
||||
required: true,
|
||||
enum: ["POSITION", "BIN", "PALLET"], // TODO: Add to constant file
|
||||
},
|
||||
specs: {
|
||||
// TBD
|
||||
type: String,
|
||||
trim: true,
|
||||
},
|
||||
main_level_id: {
|
||||
required: true,
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
ref: "Level",
|
||||
},
|
||||
current_depth: {
|
||||
required: true,
|
||||
type: Number,
|
||||
},
|
||||
parent_sublevel_id: {
|
||||
// Not required if depth is 1
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
ref: "Sublevel",
|
||||
},
|
||||
sub_levels: [
|
||||
{
|
||||
type: {
|
||||
required: true,
|
||||
type: String,
|
||||
enum: ["POSITION", "BIN", "PALLET"],
|
||||
},
|
||||
depth: {
|
||||
required: true,
|
||||
type: Number,
|
||||
min: 1, // Level is at 0
|
||||
max: 5,
|
||||
},
|
||||
sub_level_id: {
|
||||
required: true,
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
ref: "Sublevel",
|
||||
},
|
||||
},
|
||||
],
|
||||
hasInventory: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
inventory: [
|
||||
{
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
ref: "Inventory",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
timestamps: true,
|
||||
}
|
||||
);
|
||||
|
||||
const Level = mongoose.model("Level", schema);
|
||||
|
||||
module.exports = Level;
|
||||
33
src/models/Warehouse.js
Normal file
33
src/models/Warehouse.js
Normal file
@@ -0,0 +1,33 @@
|
||||
const mongoose = require("mongoose");
|
||||
|
||||
const schema = new mongoose.Schema(
|
||||
{
|
||||
name: {
|
||||
type: String,
|
||||
required: true,
|
||||
trim: true,
|
||||
},
|
||||
address: {
|
||||
type: String,
|
||||
required: true,
|
||||
trim: true,
|
||||
},
|
||||
specs: {
|
||||
type: String,
|
||||
trim: true,
|
||||
},
|
||||
zones: [
|
||||
{
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
ref: "Zone",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
timestamps: true,
|
||||
}
|
||||
);
|
||||
|
||||
const Warehouse = mongoose.model("Warehouse", schema);
|
||||
|
||||
module.exports = Warehouse;
|
||||
33
src/models/Zone.js
Normal file
33
src/models/Zone.js
Normal file
@@ -0,0 +1,33 @@
|
||||
const mongoose = require("mongoose");
|
||||
|
||||
const schema = new mongoose.Schema(
|
||||
{
|
||||
name: {
|
||||
type: String,
|
||||
required: true,
|
||||
trim: true,
|
||||
},
|
||||
type: {
|
||||
type: String,
|
||||
required: true,
|
||||
trim: true,
|
||||
},
|
||||
specs: {
|
||||
type: String,
|
||||
trim: true,
|
||||
},
|
||||
areas: [
|
||||
{
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
ref: "Area",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
timestamps: true,
|
||||
}
|
||||
);
|
||||
|
||||
const Zone = mongoose.model("Zone", schema);
|
||||
|
||||
module.exports = Zone;
|
||||
Reference in New Issue
Block a user