payservedb 5.1.0 → 5.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payservedb",
3
- "version": "5.1.0",
3
+ "version": "5.1.2",
4
4
  "main": "index.js",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -12,7 +12,6 @@
12
12
  "dependencies": {
13
13
  "dotenv": "^16.4.5",
14
14
  "moment-timezone": "^0.5.47",
15
- "mongoose": "^8.3.5",
16
- "payservedb": "^5.0.9"
15
+ "mongoose": "^8.3.5"
17
16
  }
18
17
  }
@@ -11,22 +11,25 @@ const commonAreaGeneratorReadingSchema = new mongoose.Schema({
11
11
  type: Date,
12
12
  required: true
13
13
  },
14
- openingReadingLtrs: {
15
- type: Number,
14
+ openingReading: {
15
+ type: Number, // Stored in total minutes (e.g., 3hrs 40mins = 220 minutes)
16
16
  required: true
17
17
  },
18
- closingReadingLtrs: {
19
- type: Number,
18
+ closingReading: {
19
+ type: Number, // Stored in total minutes (e.g., 8hrs 15mins = 495 minutes)
20
20
  required: true
21
21
  },
22
22
  totalHrsRun: {
23
- type: Number,
23
+ type: Number, // Can be calculated or entered directly
24
24
  required: true
25
25
  },
26
- totalFuelLevel: {
26
+ totalFuelLevelFraction: {
27
27
  type: String,
28
28
  trim: true
29
29
  },
30
+ totalFuelLevelLiters: {
31
+ type: Number
32
+ },
30
33
  refillAmountLiters: {
31
34
  type: Number
32
35
  }
@@ -34,5 +37,6 @@ const commonAreaGeneratorReadingSchema = new mongoose.Schema({
34
37
  timestamps: true
35
38
  });
36
39
 
40
+
37
41
  const CommonAreaGeneratorReading = mongoose.model('CommonAreaGeneratorReading', commonAreaGeneratorReadingSchema);
38
- module.exports = CommonAreaGeneratorReading;
42
+ module.exports = CommonAreaGeneratorReading;
@@ -1,83 +1,86 @@
1
1
  const mongoose = require('mongoose');
2
+ const Schema = mongoose.Schema;
2
3
 
3
- // Define the schema for LevyContract
4
- const levyContractSchema = new mongoose.Schema({
5
- contractName: {
6
- type: String,
7
- required: true,
8
- trim: true
9
- },
10
- levyId: {
11
- type: mongoose.Schema.Types.ObjectId,
12
- ref: 'Levy',
13
- required: true
14
- },
15
- customerId: {
16
- type: mongoose.Schema.Types.ObjectId,
17
- ref: 'Customer',
18
- required: true
19
- },
20
- unitId: {
21
- type: mongoose.Schema.Types.ObjectId,
22
- ref: 'Unit',
23
- required: true
24
- },
25
- doubleEntryAccount: {
26
- type: mongoose.Schema.Types.ObjectId,
27
- ref: 'GLAccountDoubleEntries',
28
- required: true
29
- },
30
- amount: {
31
- type: Number,
32
- required: true,
33
- min: [0, 'Amount must be a positive number']
34
- },
35
- startDate: {
36
- type: Date,
37
- required: true
38
- },
39
- endDate: {
40
- type: Date,
41
- required: true
42
- },
43
- status: {
44
- type: String,
45
- required: true,
46
- enum: ['Active', 'Inactive']
47
- },
48
- // We keep paymentFrequency in the schema for backward compatibility
49
- // But it will now be populated from the levy's collectionFrequency
50
- paymentFrequency: {
51
- type: String,
52
- required: true,
53
- trim: true
54
- },
55
- // New field for balance brought forward
56
- balanceBroughtForward: {
57
- type: Number,
58
- default: 0,
59
- },
60
- facilityId: {
61
- type: mongoose.Schema.Types.ObjectId,
62
- ref: 'Facility',
63
- required: true
64
- },
65
- // New field to track edit history
66
- editHistory: [
67
- {
68
- editedBy: {
69
- type: mongoose.Schema.Types.ObjectId,
70
- ref: 'User'
71
- },
72
- editedAt: { type: Date, default: Date.now },
73
- reason: { type: String, required: true },
74
- changes: { type: Object } // Store what fields were changed
4
+ const LevyContractSchema = new Schema(
5
+ {
6
+ contractName: {
7
+ type: String,
8
+ required: [true, 'Contract name is required']
9
+ },
10
+ levyId: {
11
+ type: mongoose.Schema.Types.ObjectId,
12
+ ref: 'Levy',
13
+ required: [true, 'Levy ID is required']
14
+ },
15
+ customerId: {
16
+ type: mongoose.Schema.Types.ObjectId,
17
+ ref: 'Customer',
18
+ required: [true, 'Customer ID is required']
19
+ },
20
+ unitId: {
21
+ type: mongoose.Schema.Types.ObjectId,
22
+ ref: 'Unit',
23
+ required: [true, 'Unit ID is required']
24
+ },
25
+ amount: {
26
+ type: Number,
27
+ required: [true, 'Amount is required'],
28
+ min: [0, 'Amount cannot be negative']
29
+ },
30
+ startDate: {
31
+ type: Date,
32
+ required: [true, 'Start date is required']
33
+ },
34
+ endDate: {
35
+ type: Date,
36
+ required: [true, 'End date is required']
37
+ },
38
+ status: {
39
+ type: String,
40
+ enum: ['Active', 'Inactive', 'Completed', 'Suspended', 'Terminated'],
41
+ default: 'Active',
42
+ required: [true, 'Status is required']
43
+ },
44
+ // Replace single doubleEntryAccount with two separate accounts
45
+ invoiceDoubleEntryAccount: {
46
+ type: mongoose.Schema.Types.ObjectId,
47
+ ref: 'GLAccountDoubleEntries',
48
+ required: [true, 'Invoice double entry account is required']
49
+ },
50
+ paymentDoubleEntryAccount: {
51
+ type: mongoose.Schema.Types.ObjectId,
52
+ ref: 'GLAccountDoubleEntries',
53
+ required: [true, 'Payment double entry account is required']
54
+ },
55
+ balanceBroughtForward: {
56
+ type: Number,
57
+ default: 0
58
+ },
59
+ paymentFrequency: {
60
+ type: String,
61
+ enum: ['Daily', 'Weekly', 'Bi-Weekly', 'Monthly', 'Quarterly', 'Semi-Annually', 'Annually'],
62
+ default: 'Monthly'
63
+ },
64
+ facilityId: {
65
+ type: mongoose.Schema.Types.ObjectId,
66
+ ref: 'Facility',
67
+ required: [true, 'Facility ID is required']
68
+ },
69
+ createdBy: {
70
+ type: mongoose.Schema.Types.ObjectId,
71
+ ref: 'User'
72
+ },
73
+ updatedBy: {
74
+ type: mongoose.Schema.Types.ObjectId,
75
+ ref: 'User'
75
76
  }
76
- ]
77
- }, {
78
- timestamps: true
79
- });
80
-
81
- const LevyContract = mongoose.model('LevyContract', levyContractSchema);
77
+ },
78
+ {
79
+ timestamps: true,
80
+ }
81
+ );
82
82
 
83
- module.exports = LevyContract;
83
+ module.exports = {
84
+ schema: LevyContractSchema,
85
+ name: 'LevyContract'
86
+ };