playov2-js-utilities 0.3.76 → 0.3.78
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/lib/db_interface/mongo/index.js +1 -0
- package/lib/db_interface/mongo/schemas/groupSchemas/_groupIndex.js +6 -0
- package/lib/db_interface/mongo/schemas/groupSchemas/group.js +55 -0
- package/lib/db_interface/mongo/schemas/groupSchemas/groupMember.js +22 -0
- package/lib/db_interface/mongo/schemas/groupSchemas/groupMessage.js +28 -0
- package/lib/db_interface/mongo/schemas/groupSchemas/groupReport.js +14 -0
- package/package.json +1 -1
|
@@ -3,4 +3,5 @@ module.exports = {
|
|
|
3
3
|
ACTIVITY_MODELS: require('./schemas/activitySchemas/_activityIndex.js'),
|
|
4
4
|
VENUE_MODELS: require('./schemas/venueSchemas/_venueIndex.js'),
|
|
5
5
|
GAMEBOOK_MODELS: require('./schemas/gamebookSchemas/_gamebookIndex.js'),
|
|
6
|
+
GROUP_MODELS:require('./schemas/groupSchemas/_groupIndex.js')
|
|
6
7
|
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
const mongoose = require("mongoose");
|
|
2
|
+
|
|
3
|
+
const GroupSchema = new mongoose.Schema({
|
|
4
|
+
id: {
|
|
5
|
+
type: String,
|
|
6
|
+
required: true,
|
|
7
|
+
unique: true
|
|
8
|
+
},
|
|
9
|
+
name: {
|
|
10
|
+
type: String,
|
|
11
|
+
required: true
|
|
12
|
+
},
|
|
13
|
+
description: {
|
|
14
|
+
type: String,
|
|
15
|
+
default: ""
|
|
16
|
+
},
|
|
17
|
+
displayPic: { type: String, default: "" },
|
|
18
|
+
sports: [
|
|
19
|
+
{
|
|
20
|
+
_id: false,
|
|
21
|
+
sportId: { type: String, required: true },
|
|
22
|
+
count: { type: Number }
|
|
23
|
+
}
|
|
24
|
+
],
|
|
25
|
+
activities: [
|
|
26
|
+
{
|
|
27
|
+
_id: false,
|
|
28
|
+
activityId: { type: String, required: true },
|
|
29
|
+
createdTS: { type: Date, default: Date.now },
|
|
30
|
+
type: { type: Number, min: 0, max: 1, required: true }, // 0 activity created outside group, 1 activity created inside group
|
|
31
|
+
userId: { type: String, required: true },
|
|
32
|
+
deleted: { type: Number, default: 0 }
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
public: { type: Number, default: 0, min: 0, max: 1 }, // 0: not-discoverable, 1: discoverable
|
|
36
|
+
shareLink: { type: String, default: "" },
|
|
37
|
+
deferLink: { type: String, default: "" },
|
|
38
|
+
fullLink: { type: String, default: "" },
|
|
39
|
+
createdTS: { type: Date, default: Date.now },
|
|
40
|
+
modTS: { type: Date, default: Date.now },
|
|
41
|
+
createdBy: { type: String },
|
|
42
|
+
lastActivityAddTS: { type: Date },
|
|
43
|
+
lat: { type: Number },
|
|
44
|
+
lng: { type: Number },
|
|
45
|
+
location: { type: String, default: "" },
|
|
46
|
+
cityCode: { type: Number, default: 0 },
|
|
47
|
+
countryCode: { type: String, default: "" },
|
|
48
|
+
autoAccept: { type: Boolean, default: false },
|
|
49
|
+
lastMessageTs: { type: Date , default: null }
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
GroupSchema.index({ lat: 1, lng: 1 });
|
|
53
|
+
GroupSchema.index({ name: 1 });
|
|
54
|
+
|
|
55
|
+
module.exports = mongoose.model("Group", GroupSchema);
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const mongoose = require("mongoose");
|
|
2
|
+
|
|
3
|
+
const GroupMemberSchema = new mongoose.Schema({
|
|
4
|
+
userId: { type: String, required: true },
|
|
5
|
+
groupId: { type: String, required: true },
|
|
6
|
+
status: { type: Number, min: 0, max: 4 }, // 0: requested, 1: joined, 2: invited, 3: exited, 4: removed
|
|
7
|
+
role: { type: Number, default: 2, min: 0, max: 2 }, // 0: member, 1: admin, 2:nonmember
|
|
8
|
+
mute: { type: Number, default: 0, min: 0, max: 1 }, // 0: false, 1: true
|
|
9
|
+
addTS: { type: Date, default: Date.now },
|
|
10
|
+
requestTS: { type: Date },
|
|
11
|
+
lastVisit: { type: Date, default: Date.now },
|
|
12
|
+
senderId: { type: String, default: "" },
|
|
13
|
+
inviteTS: { type: Date },
|
|
14
|
+
newMessages: { type: Number, default: 0, min: 0 },
|
|
15
|
+
newRequests: { type: Number, default: 0, min: 0 },
|
|
16
|
+
newActivities: { type: Number, default: 0, min: 0 }
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
GroupMemberSchema.index({ groupId: 1})
|
|
20
|
+
GroupMemberSchema.index({ userId: 1})
|
|
21
|
+
|
|
22
|
+
module.exports = mongoose.model("GroupMember", GroupMemberSchema);
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const mongoose = require("mongoose");
|
|
2
|
+
|
|
3
|
+
const GroupMessageSchema = new mongoose.Schema({
|
|
4
|
+
id: { type: String, required: true, unique: true },
|
|
5
|
+
userId: { type: String, required: true },
|
|
6
|
+
groupId: { type: String, required: true },
|
|
7
|
+
content: { type: String, required: true },
|
|
8
|
+
type: { type: Number, required: true, default: 0 },
|
|
9
|
+
createdTS: { type: Date, default: Date.now },
|
|
10
|
+
editedTS: { type: Date },
|
|
11
|
+
deleted: { type: Number, default: 0 },
|
|
12
|
+
pinned: { type: Number, default: 0 },
|
|
13
|
+
comments: [
|
|
14
|
+
{
|
|
15
|
+
_id: false,
|
|
16
|
+
commentId: { type: String, required: true },
|
|
17
|
+
userId: { type: String, required: true },
|
|
18
|
+
content: { type: String, required: true },
|
|
19
|
+
createdTS: { type: Date, default: Date.now },
|
|
20
|
+
editedTS: { type: Date },
|
|
21
|
+
deleted: { type: Number, default: 0 }
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
GroupMessageSchema.index({ groupId: 1, createdTS : -1})
|
|
27
|
+
|
|
28
|
+
module.exports = mongoose.model("GroupMessage", GroupMessageSchema);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const mongoose = require("mongoose");
|
|
2
|
+
|
|
3
|
+
const GroupReportSchema = new mongoose.Schema({
|
|
4
|
+
id: { type: String, required: true, unique: true },
|
|
5
|
+
groupId: { type: String, required: true },
|
|
6
|
+
userId: { type: String, required: true },
|
|
7
|
+
message: { type: String, required: true },
|
|
8
|
+
resolved: { type: Boolean, default: false },
|
|
9
|
+
createdTS: { type: Date, default: Date.now },
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
GroupReportSchema.index({ groupId: 1, createdTS : -1})
|
|
13
|
+
|
|
14
|
+
module.exports = mongoose.model("GroupReport", GroupReportSchema);
|