payservedb 1.1.5 → 1.1.6

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": "1.1.5",
3
+ "version": "1.1.6",
4
4
  "main": "index.js",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -1,55 +1,76 @@
1
1
  const mongoose = require('mongoose');
2
2
 
3
- // Define the schema for customers
4
- const customerSchema = new mongoose.Schema({
5
- customerNumber: {
6
- type: Number,
7
- required: [true, 'Customer number is required'],
8
- unique: true // Ensure customer number is unique
9
- },
3
+ const VisitorSchema = new mongoose.Schema({
10
4
  firstName: {
11
5
  type: String,
12
- required: [true, 'First name is required'],
13
- trim: true
6
+ required: true,
14
7
  },
15
8
  lastName: {
16
9
  type: String,
17
- required: [true, 'Last name is required'],
18
- trim: true
10
+ required: true,
19
11
  },
20
- email: {
12
+ phoneNumber: {
21
13
  type: String,
22
- required: [true, 'Email is required'],
23
- unique: true, // Ensure email uniqueness for data integrity
24
- lowercase: true, // Normalize email to lowercase
25
- trim: true,
26
- match: [/\S+@\S+\.\S+/, 'Email format is invalid'] // Validate email format
14
+ required: true,
27
15
  },
28
- phoneNumber: {
16
+ idNumber: {
29
17
  type: String,
30
- required: [true, 'Phone number is required'],
31
- trim: true
18
+ required: true,
32
19
  },
33
- type: {
20
+ vehicleRegistration: {
34
21
  type: String,
35
- required: [true, 'Type is required'],
36
- enum: ['Tenant', 'Home Owner'],
22
+ required: true,
37
23
  },
38
- units:[],
39
- projectId: {
40
- type: mongoose.Schema.Types.ObjectId,
41
- ref: 'Project',
42
- required: [true, 'Project ID is required']
43
- }
44
- }, {
45
- timestamps: true // Automatically add createdAt and updatedAt fields
24
+ familyMembers: [
25
+ {
26
+ name: {
27
+ type: String,
28
+ required: true,
29
+ },
30
+ phoneNumber: {
31
+ type: String,
32
+ required: true,
33
+ },
34
+ relation: {
35
+ type: String,
36
+ required: true,
37
+ },
38
+ },
39
+ ],
40
+ staff: [
41
+ {
42
+ name: {
43
+ type: String,
44
+ required: true,
45
+ },
46
+ phoneNumber: {
47
+ type: String,
48
+ required: true,
49
+ },
50
+ jobRole: {
51
+ type: String,
52
+ required: true,
53
+ },
54
+ },
55
+ ],
56
+ vehicles: [
57
+ {
58
+ name: {
59
+ type: String,
60
+ required: true,
61
+ },
62
+ model: {
63
+ type: String,
64
+ required: true,
65
+ },
66
+ plateNumber: {
67
+ type: String,
68
+ required: true,
69
+ },
70
+ },
71
+ ],
46
72
  });
47
73
 
48
- // Indexes for improved performance
49
- customerSchema.index({ email: 1 });
50
- customerSchema.index({ customerNumber: 1 });
51
-
52
- // Compile the model from the schema
53
- const Customer = mongoose.model('Customer', customerSchema);
74
+ const Visitor = mongoose.model('Visitor', VisitorSchema);
54
75
 
55
- module.exports = Customer;
76
+ module.exports = Visitor;