location controller updated with heading and created new models and controllers for remaining modules

This commit is contained in:
Shibi Chakkaravarthy
2026-05-04 20:57:03 +05:30
parent 1245e09111
commit 54d9508dc8
31 changed files with 2140 additions and 96 deletions
+104 -1
View File
@@ -1,5 +1,108 @@
import { model, Schema, Types } from "mongoose";
const schema = new Schema({});
const paymentHistorySchema = new Schema({
amount: {
type: Number,
required: true,
},
paymentDate: {
type: Date,
required: true,
},
paymentMethod: {
type: String,
required: true,
},
transactionId: {
type: String,
required: true,
},
createdOn: {
type: Date,
required: true,
},
createdBy: {
type: Types.ObjectId,
ref: "user",
required: true,
},
});
const itemSchema = new Schema({
id: {
type: Types.ObjectId,
required: true,
},
unitCostPrice: {
type: Number,
required: true,
},
unitSellingPrice: {
type: Number,
required: true,
},
qty: {
type: Number,
required: true,
},
taxPercent: {
type: Number,
required: true,
},
taxAmount: {
type: Number,
required: true,
},
discount: {
type: Number,
required: true,
},
total: {
type: Number,
required: true,
},
});
const schema = new Schema({
customer: {
type: Types.ObjectId,
ref: "partner",
required: true,
},
items: {
type: [itemSchema],
required: true,
},
netTotal: {
type: Number,
required: true,
},
total: {
type: Number,
required: true,
},
status: {
type: String,
enum: ["PENDING", "COMPLETED", "PARTIAL"],
default: "PENDING",
},
dueDate: {
type: Date,
required: true,
},
createdOn: {
type: Date,
required: true,
},
createdBy: {
type: Types.ObjectId,
ref: "user",
required: true,
},
paymentHistory: {
type: [paymentHistorySchema],
default: [],
},
});
export default model("invoice", schema);