Add Model for backend
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
const mongoose = require("mongoose");
|
||||
|
||||
const cropSchema = new mongoose.Schema(
|
||||
{
|
||||
name: { type: String, required: true },
|
||||
farm: { type: mongoose.Schema.Types.ObjectId, ref: "Farm", required: true },
|
||||
plantedDate: { type: Date, required: true, default: Date.now() },
|
||||
harvestDate: { type: Date },
|
||||
growthStage: {
|
||||
type: String,
|
||||
enum: ["Planted", "Growing", "Ready to Harvest"],
|
||||
default: "Planted",
|
||||
},
|
||||
healthStatus: { type: String, default: "Healthy" },
|
||||
},
|
||||
{ timestamps: true }
|
||||
);
|
||||
|
||||
const Crop = mongoose.model("Crop", cropSchema);
|
||||
|
||||
module.exports = Crop;
|
||||
@@ -0,0 +1,36 @@
|
||||
const mongoose = require("mongoose");
|
||||
|
||||
const farmSchema = new mongoose.Schema(
|
||||
{
|
||||
name: { type: String, required: true },
|
||||
location: { type: String, required: true },
|
||||
owner: {
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
ref: "User",
|
||||
required: true,
|
||||
},
|
||||
waterContent: { type: String, required: true },
|
||||
soilType: { type: String, required: true },
|
||||
fertilizer: [
|
||||
{
|
||||
name: { type: String },
|
||||
quantity: { type: Number },
|
||||
addedAt: { type: Date, default: Date.now },
|
||||
},
|
||||
],
|
||||
pestisides: [
|
||||
{
|
||||
name: { type: String },
|
||||
quantity: { type: Number },
|
||||
addedAt: { type: Date, default: Date.now },
|
||||
},
|
||||
],
|
||||
crops: [{ type: mongoose.Schema.Types.ObjectId, ref: "Crop" }],
|
||||
finances: { type: mongoose.Schema.Types.ObjectId, ref: "Finance" },
|
||||
},
|
||||
{ timestamps: true }
|
||||
);
|
||||
|
||||
const Farm = mongoose.model("Farm", farmSchema);
|
||||
|
||||
module.exports = Farm;
|
||||
@@ -0,0 +1,21 @@
|
||||
const mongoose = require("mongoose");
|
||||
const financeSchema = new mongoose.Schema(
|
||||
{
|
||||
farm: { type: mongoose.Schema.Types.ObjectId, ref: "Farm", required: true },
|
||||
transactions: [
|
||||
{
|
||||
type: { type: String, enum: ["Expense", "Revenue"], required: true },
|
||||
amount: { type: Number, required: true },
|
||||
description: { type: String },
|
||||
date: { type: Date, default: Date.now },
|
||||
},
|
||||
],
|
||||
totalExpenses: { type: Number, default: 0 },
|
||||
totalRevenue: { type: Number, default: 0 },
|
||||
},
|
||||
{ timestamps: true }
|
||||
);
|
||||
|
||||
const Finance = mongoose.model("Finance", financeSchema);
|
||||
|
||||
module.exports = Finance;
|
||||
@@ -1,51 +0,0 @@
|
||||
const mongoose = require("mongoose");
|
||||
|
||||
const meetingSchema = new mongoose.Schema(
|
||||
{
|
||||
meetingDate: {
|
||||
type: Date,
|
||||
required: true,
|
||||
},
|
||||
meetingTime: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
mentorName: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
mentiName: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
mentorId: {
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
ref: "User",
|
||||
required: true,
|
||||
},
|
||||
mentiId: {
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
ref: "User",
|
||||
required: true,
|
||||
},
|
||||
status: {
|
||||
type: String,
|
||||
default: "Pending",
|
||||
},
|
||||
amount: {
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
paymentStatus: {
|
||||
type: "Status",
|
||||
default: "Pending",
|
||||
},
|
||||
},
|
||||
{
|
||||
timestamps: true,
|
||||
}
|
||||
);
|
||||
|
||||
const Meeting = mongoose.model("Meeting", meetingSchema);
|
||||
|
||||
module.exports = Meeting;
|
||||
@@ -0,0 +1,31 @@
|
||||
const mongoose = require("mongoose");
|
||||
|
||||
const taskSchema = new mongoose.Schema(
|
||||
{
|
||||
farm: { type: mongoose.Schema.Types.ObjectId, ref: "Farm", required: true },
|
||||
crop: { type: mongoose.Schema.Types.ObjectId, ref: "Crop" },
|
||||
taskType: {
|
||||
type: String,
|
||||
enum: [
|
||||
"Sowing",
|
||||
"Watering",
|
||||
"Fertilization",
|
||||
"Pest Control",
|
||||
"Harvesting",
|
||||
],
|
||||
required: true,
|
||||
},
|
||||
description: { type: String },
|
||||
assignedDate: { type: Date, required: true, default: Date.now },
|
||||
status: {
|
||||
type: String,
|
||||
enum: ["Pending", "Completed"],
|
||||
default: "Pending",
|
||||
},
|
||||
},
|
||||
{ timestamps: true }
|
||||
);
|
||||
|
||||
const Task = mongoose.model("Task", taskSchema);
|
||||
|
||||
module.exports = Task;
|
||||
@@ -11,21 +11,9 @@ const userSchema = new mongoose.Schema(
|
||||
maxLength: [30, "Please Enter the valid name"],
|
||||
minLength: [2, "Name should have more than 5 characters"],
|
||||
},
|
||||
|
||||
skills: [
|
||||
{
|
||||
type: String,
|
||||
},
|
||||
],
|
||||
uniqueRole: {
|
||||
type: String,
|
||||
},
|
||||
country: {
|
||||
type: String,
|
||||
},
|
||||
description: {
|
||||
type: String,
|
||||
},
|
||||
email: {
|
||||
type: String,
|
||||
required: true,
|
||||
@@ -41,23 +29,9 @@ const userSchema = new mongoose.Schema(
|
||||
type: String,
|
||||
default: "/images/profile.jpeg",
|
||||
},
|
||||
role: {
|
||||
type: String,
|
||||
default: "user",
|
||||
},
|
||||
mainInterest: [
|
||||
{
|
||||
type: String,
|
||||
},
|
||||
],
|
||||
documents: [
|
||||
{
|
||||
type: String,
|
||||
},
|
||||
],
|
||||
meettingFees: {
|
||||
type: Number,
|
||||
},
|
||||
role: { type: String, enum: ["farmer", "admin"], default: "farmer" },
|
||||
farms: [{ type: mongoose.Schema.Types.ObjectId, ref: "Farm" }],
|
||||
|
||||
resetPasswordToken: String,
|
||||
resetPasswordExpiry: Date,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user