@trafficgroup/knex-rel 0.0.27 → 0.0.29
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/.claude/settings.local.json +2 -5
- package/CLAUDE.md +72 -63
- package/dist/dao/VideoMinuteResultDAO.d.ts +48 -0
- package/dist/dao/VideoMinuteResultDAO.js +238 -0
- package/dist/dao/VideoMinuteResultDAO.js.map +1 -0
- package/dist/dao/auth/auth.dao.js +4 -1
- package/dist/dao/auth/auth.dao.js.map +1 -1
- package/dist/dao/chat/chat.dao.d.ts +1 -1
- package/dist/dao/chat/chat.dao.js +25 -35
- package/dist/dao/chat/chat.dao.js.map +1 -1
- package/dist/dao/folder/folder.dao.js +7 -2
- package/dist/dao/folder/folder.dao.js.map +1 -1
- package/dist/dao/message/message.dao.d.ts +1 -1
- package/dist/dao/message/message.dao.js +18 -26
- package/dist/dao/message/message.dao.js.map +1 -1
- package/dist/dao/study/study.dao.js +7 -2
- package/dist/dao/study/study.dao.js.map +1 -1
- package/dist/dao/user/user.dao.js +4 -1
- package/dist/dao/user/user.dao.js.map +1 -1
- package/dist/dao/user-push-notification-token/user-push-notification-token.dao.js +26 -8
- package/dist/dao/user-push-notification-token/user-push-notification-token.dao.js.map +1 -1
- package/dist/dao/video/video.dao.d.ts +15 -0
- package/dist/dao/video/video.dao.js +85 -2
- package/dist/dao/video/video.dao.js.map +1 -1
- package/dist/entities/BaseEntity.d.ts +4 -0
- package/dist/entities/BaseEntity.js +3 -0
- package/dist/entities/BaseEntity.js.map +1 -0
- package/dist/entities/VideoMinuteResult.d.ts +21 -0
- package/dist/entities/VideoMinuteResult.js +3 -0
- package/dist/entities/VideoMinuteResult.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/chat/chat.interfaces.d.ts +3 -3
- package/dist/interfaces/folder/folder.interfaces.d.ts +1 -1
- package/dist/interfaces/message/message.interfaces.d.ts +2 -2
- package/dist/interfaces/study/study.interfaces.d.ts +1 -1
- package/dist/interfaces/user/user.interfaces.d.ts +1 -1
- package/dist/interfaces/user-push-notification-token/user-push-notification-token.interfaces.d.ts +1 -1
- package/dist/interfaces/video/video.interfaces.d.ts +3 -2
- package/migrations/20250717160737_migration.ts +1 -1
- package/migrations/20250717160908_migration.ts +5 -2
- package/migrations/20250717161310_migration.ts +1 -1
- package/migrations/20250717161406_migration.ts +3 -3
- package/migrations/20250717162431_migration.ts +1 -1
- package/migrations/20250717173228_migration.ts +2 -2
- package/migrations/20250717204731_migration.ts +1 -1
- package/migrations/20250722210109_migration.ts +8 -4
- package/migrations/20250722211019_migration.ts +1 -1
- package/migrations/20250723153852_migration.ts +13 -10
- package/migrations/20250723162257_migration.ts +4 -7
- package/migrations/20250723171109_migration.ts +4 -7
- package/migrations/20250723205331_migration.ts +6 -9
- package/migrations/20250724191345_migration.ts +8 -11
- package/migrations/20250730180932_migration.ts +14 -13
- package/migrations/20250730213625_migration.ts +8 -11
- package/migrations/20250804124509_migration.ts +26 -21
- package/migrations/20250804132053_migration.ts +5 -8
- package/migrations/20250804164518_migration.ts +17 -0
- package/migrations/20250823223016_migration.ts +46 -0
- package/package.json +47 -47
- package/plan.md +304 -0
- package/src/d.types.ts +22 -18
- package/src/dao/VideoMinuteResultDAO.ts +273 -0
- package/src/dao/auth/auth.dao.ts +58 -55
- package/src/dao/chat/chat.dao.ts +45 -43
- package/src/dao/folder/folder.dao.ts +75 -66
- package/src/dao/message/message.dao.ts +32 -32
- package/src/dao/study/study.dao.ts +75 -66
- package/src/dao/user/user.dao.ts +59 -57
- package/src/dao/user-push-notification-token/user-push-notification-token.dao.ts +83 -49
- package/src/dao/video/video.dao.ts +199 -71
- package/src/entities/BaseEntity.ts +4 -0
- package/src/entities/VideoMinuteResult.ts +24 -0
- package/src/index.ts +37 -23
- package/src/interfaces/auth/auth.interfaces.ts +10 -10
- package/src/interfaces/chat/chat.interfaces.ts +4 -4
- package/src/interfaces/folder/folder.interfaces.ts +13 -13
- package/src/interfaces/message/message.interfaces.ts +3 -3
- package/src/interfaces/study/study.interfaces.ts +12 -12
- package/src/interfaces/user/user.interfaces.ts +11 -11
- package/src/interfaces/user-push-notification-token/user-push-notification-token.interfaces.ts +9 -9
- package/src/interfaces/video/video.interfaces.ts +22 -21
|
@@ -20,7 +20,9 @@ class FolderDAO {
|
|
|
20
20
|
}
|
|
21
21
|
create(item) {
|
|
22
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
const [createdFolder] = yield this._knex("folders")
|
|
23
|
+
const [createdFolder] = yield this._knex("folders")
|
|
24
|
+
.insert(item)
|
|
25
|
+
.returning("*");
|
|
24
26
|
return createdFolder;
|
|
25
27
|
});
|
|
26
28
|
}
|
|
@@ -46,7 +48,10 @@ class FolderDAO {
|
|
|
46
48
|
}
|
|
47
49
|
update(id, item) {
|
|
48
50
|
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
-
const [updatedFolder] = yield this._knex("folders")
|
|
51
|
+
const [updatedFolder] = yield this._knex("folders")
|
|
52
|
+
.where({ id })
|
|
53
|
+
.update(item)
|
|
54
|
+
.returning("*");
|
|
50
55
|
return updatedFolder || null;
|
|
51
56
|
});
|
|
52
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folder.dao.js","sourceRoot":"","sources":["../../../src/dao/folder/folder.dao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,0EAA+C;AAE/C,MAAa,SAAS;IAAtB;
|
|
1
|
+
{"version":3,"file":"folder.dao.js","sourceRoot":"","sources":["../../../src/dao/folder/folder.dao.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IBaseDAO, IDataPaginator } from "../../d.types";
|
|
2
|
-
import { IMessage, IMessageCreate, IMessageUpdate } from
|
|
2
|
+
import { IMessage, IMessageCreate, IMessageUpdate } from "../../interfaces/message/message.interfaces";
|
|
3
3
|
export declare class MessageDAO implements IBaseDAO<IMessage> {
|
|
4
4
|
private _knex;
|
|
5
5
|
create(item: IMessageCreate): Promise<IMessage>;
|
|
@@ -20,17 +20,13 @@ class MessageDAO {
|
|
|
20
20
|
}
|
|
21
21
|
create(item) {
|
|
22
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
const [result] = yield this._knex(
|
|
24
|
-
.insert(item)
|
|
25
|
-
.returning('*');
|
|
23
|
+
const [result] = yield this._knex("message").insert(item).returning("*");
|
|
26
24
|
return result;
|
|
27
25
|
});
|
|
28
26
|
}
|
|
29
27
|
getById(id) {
|
|
30
28
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
const result = yield this._knex(
|
|
32
|
-
.where('id', id)
|
|
33
|
-
.first();
|
|
29
|
+
const result = yield this._knex("message").where("id", id).first();
|
|
34
30
|
return result || null;
|
|
35
31
|
});
|
|
36
32
|
}
|
|
@@ -44,11 +40,11 @@ class MessageDAO {
|
|
|
44
40
|
return __awaiter(this, arguments, void 0, function* (page = 1, limit = 10) {
|
|
45
41
|
const offset = (page - 1) * limit;
|
|
46
42
|
const [results, [{ count }]] = yield Promise.all([
|
|
47
|
-
this._knex(
|
|
48
|
-
.orderBy(
|
|
43
|
+
this._knex("message")
|
|
44
|
+
.orderBy("created_at", "asc")
|
|
49
45
|
.limit(limit)
|
|
50
46
|
.offset(offset),
|
|
51
|
-
this._knex(
|
|
47
|
+
this._knex("message").count("* as count"),
|
|
52
48
|
]);
|
|
53
49
|
const totalCount = parseInt(count);
|
|
54
50
|
return {
|
|
@@ -58,24 +54,22 @@ class MessageDAO {
|
|
|
58
54
|
limit,
|
|
59
55
|
count: results.length,
|
|
60
56
|
totalCount,
|
|
61
|
-
totalPages: Math.ceil(totalCount / limit)
|
|
57
|
+
totalPages: Math.ceil(totalCount / limit),
|
|
62
58
|
};
|
|
63
59
|
});
|
|
64
60
|
}
|
|
65
61
|
update(id, item) {
|
|
66
62
|
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
-
const [result] = yield this._knex(
|
|
68
|
-
.where(
|
|
63
|
+
const [result] = yield this._knex("message")
|
|
64
|
+
.where("id", id)
|
|
69
65
|
.update(Object.assign(Object.assign({}, item), { updated_at: new Date() }))
|
|
70
|
-
.returning(
|
|
66
|
+
.returning("*");
|
|
71
67
|
return result || null;
|
|
72
68
|
});
|
|
73
69
|
}
|
|
74
70
|
delete(id) {
|
|
75
71
|
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
-
const result = yield this._knex(
|
|
77
|
-
.where('id', id)
|
|
78
|
-
.delete();
|
|
72
|
+
const result = yield this._knex("message").where("id", id).delete();
|
|
79
73
|
return result > 0;
|
|
80
74
|
});
|
|
81
75
|
}
|
|
@@ -83,14 +77,12 @@ class MessageDAO {
|
|
|
83
77
|
return __awaiter(this, arguments, void 0, function* (chatId, page = 1, limit = 50) {
|
|
84
78
|
const offset = (page - 1) * limit;
|
|
85
79
|
const [results, [{ count }]] = yield Promise.all([
|
|
86
|
-
this._knex(
|
|
87
|
-
.where(
|
|
88
|
-
.orderBy(
|
|
80
|
+
this._knex("message")
|
|
81
|
+
.where("chatId", chatId)
|
|
82
|
+
.orderBy("created_at", "asc")
|
|
89
83
|
.limit(limit)
|
|
90
84
|
.offset(offset),
|
|
91
|
-
this._knex(
|
|
92
|
-
.where('chatId', chatId)
|
|
93
|
-
.count('* as count')
|
|
85
|
+
this._knex("message").where("chatId", chatId).count("* as count"),
|
|
94
86
|
]);
|
|
95
87
|
const totalCount = parseInt(count);
|
|
96
88
|
return {
|
|
@@ -100,15 +92,15 @@ class MessageDAO {
|
|
|
100
92
|
limit,
|
|
101
93
|
count: results.length,
|
|
102
94
|
totalCount,
|
|
103
|
-
totalPages: Math.ceil(totalCount / limit)
|
|
95
|
+
totalPages: Math.ceil(totalCount / limit),
|
|
104
96
|
};
|
|
105
97
|
});
|
|
106
98
|
}
|
|
107
99
|
getLatestMessages(chatId_1) {
|
|
108
100
|
return __awaiter(this, arguments, void 0, function* (chatId, limit = 50) {
|
|
109
|
-
return yield this._knex(
|
|
110
|
-
.where(
|
|
111
|
-
.orderBy(
|
|
101
|
+
return yield this._knex("message")
|
|
102
|
+
.where("chatId", chatId)
|
|
103
|
+
.orderBy("created_at", "desc")
|
|
112
104
|
.limit(limit)
|
|
113
105
|
.then((messages) => messages.reverse());
|
|
114
106
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.dao.js","sourceRoot":"","sources":["../../../src/dao/message/message.dao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"message.dao.js","sourceRoot":"","sources":["../../../src/dao/message/message.dao.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,9 @@ class StudyDAO {
|
|
|
20
20
|
}
|
|
21
21
|
create(item) {
|
|
22
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
const [createdStudy] = yield this._knex("study")
|
|
23
|
+
const [createdStudy] = yield this._knex("study")
|
|
24
|
+
.insert(item)
|
|
25
|
+
.returning("*");
|
|
24
26
|
return createdStudy;
|
|
25
27
|
});
|
|
26
28
|
}
|
|
@@ -46,7 +48,10 @@ class StudyDAO {
|
|
|
46
48
|
}
|
|
47
49
|
update(id, item) {
|
|
48
50
|
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
-
const [updatedStudy] = yield this._knex("study")
|
|
51
|
+
const [updatedStudy] = yield this._knex("study")
|
|
52
|
+
.where({ id })
|
|
53
|
+
.update(item)
|
|
54
|
+
.returning("*");
|
|
50
55
|
return updatedStudy || null;
|
|
51
56
|
});
|
|
52
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"study.dao.js","sourceRoot":"","sources":["../../../src/dao/study/study.dao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,0EAA+C;AAE/C,MAAa,QAAQ;IAArB;
|
|
1
|
+
{"version":3,"file":"study.dao.js","sourceRoot":"","sources":["../../../src/dao/study/study.dao.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,7 +44,10 @@ class UserDAO {
|
|
|
44
44
|
}
|
|
45
45
|
update(id, item) {
|
|
46
46
|
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
-
const [updatedUser] = yield this._knex("users")
|
|
47
|
+
const [updatedUser] = yield this._knex("users")
|
|
48
|
+
.where({ id })
|
|
49
|
+
.update(item)
|
|
50
|
+
.returning("*");
|
|
48
51
|
return updatedUser || null;
|
|
49
52
|
});
|
|
50
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.dao.js","sourceRoot":"","sources":["../../../src/dao/user/user.dao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,0EAA+C;AAE/C,MAAa,OAAO;IAApB;
|
|
1
|
+
{"version":3,"file":"user.dao.js","sourceRoot":"","sources":["../../../src/dao/user/user.dao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,0EAA+C;AAE/C,MAAa,OAAO;IAApB;QACU,UAAK,GAAyB,wBAAW,CAAC,aAAa,EAAE,CAAC;IAoDpE,CAAC;IAlDO,MAAM,CAAC,IAAW;;YACtB,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC5E,OAAO,WAAW,CAAC;QACrB,CAAC;KAAA;IAEK,OAAO,CAAC,EAAU;;YACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YAC7D,OAAO,IAAI,IAAI,IAAI,CAAC;QACtB,CAAC;KAAA;IAEK,SAAS,CAAC,IAAY;;YAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YAC/D,OAAO,IAAI,IAAI,IAAI,CAAC;QACtB,CAAC;KAAA;IAEK,UAAU,CAAC,KAAa;;YAC5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YAChE,OAAO,IAAI,IAAI,IAAI,CAAC;QACtB,CAAC;KAAA;IAEK,MAAM,CAAC,EAAU,EAAE,IAAoB;;YAC3C,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;iBAC5C,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;iBACb,MAAM,CAAC,IAAI,CAAC;iBACZ,SAAS,CAAC,GAAG,CAAC,CAAC;YAClB,OAAO,WAAW,IAAI,IAAI,CAAC;QAC7B,CAAC;KAAA;IAEK,MAAM,CAAC,EAAU;;YACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;YAC7D,OAAO,MAAM,GAAG,CAAC,CAAC;QACpB,CAAC;KAAA;IAEK,MAAM,CAAC,IAAY,EAAE,KAAa;;YACtC,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YAElC,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACpE,MAAM,UAAU,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;YACtC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAEpE,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,KAAK;gBACX,IAAI;gBACJ,KAAK;gBACL,KAAK,EAAE,KAAK,CAAC,MAAM;gBACnB,UAAU;gBACV,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;aAC1C,CAAC;QACJ,CAAC;KAAA;CACF;AArDD,0BAqDC"}
|
|
@@ -20,13 +20,17 @@ class UserPushNotificationTokenDAO {
|
|
|
20
20
|
}
|
|
21
21
|
create(item) {
|
|
22
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
const [createdToken] = yield this._knex("user_push_notification_token")
|
|
23
|
+
const [createdToken] = yield this._knex("user_push_notification_token")
|
|
24
|
+
.insert(item)
|
|
25
|
+
.returning("*");
|
|
24
26
|
return createdToken;
|
|
25
27
|
});
|
|
26
28
|
}
|
|
27
29
|
getById(id) {
|
|
28
30
|
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
-
const token = yield this._knex("user_push_notification_token")
|
|
31
|
+
const token = yield this._knex("user_push_notification_token")
|
|
32
|
+
.where({ id })
|
|
33
|
+
.first();
|
|
30
34
|
return token || null;
|
|
31
35
|
});
|
|
32
36
|
}
|
|
@@ -37,31 +41,43 @@ class UserPushNotificationTokenDAO {
|
|
|
37
41
|
}
|
|
38
42
|
getByUserId(userId) {
|
|
39
43
|
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
-
const tokens = yield this._knex("user_push_notification_token").where({
|
|
44
|
+
const tokens = yield this._knex("user_push_notification_token").where({
|
|
45
|
+
userId,
|
|
46
|
+
});
|
|
41
47
|
return tokens;
|
|
42
48
|
});
|
|
43
49
|
}
|
|
44
50
|
getByToken(token) {
|
|
45
51
|
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
-
const tokenRecord = yield this._knex("user_push_notification_token")
|
|
52
|
+
const tokenRecord = yield this._knex("user_push_notification_token")
|
|
53
|
+
.where({ token })
|
|
54
|
+
.first();
|
|
47
55
|
return tokenRecord || null;
|
|
48
56
|
});
|
|
49
57
|
}
|
|
50
58
|
getAvailableByUserId(userId) {
|
|
51
59
|
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
-
const tokens = yield this._knex("user_push_notification_token").where({
|
|
60
|
+
const tokens = yield this._knex("user_push_notification_token").where({
|
|
61
|
+
userId,
|
|
62
|
+
available: true,
|
|
63
|
+
});
|
|
53
64
|
return tokens;
|
|
54
65
|
});
|
|
55
66
|
}
|
|
56
67
|
update(id, item) {
|
|
57
68
|
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
-
const [updatedToken] = yield this._knex("user_push_notification_token")
|
|
69
|
+
const [updatedToken] = yield this._knex("user_push_notification_token")
|
|
70
|
+
.where({ id })
|
|
71
|
+
.update(item)
|
|
72
|
+
.returning("*");
|
|
59
73
|
return updatedToken || null;
|
|
60
74
|
});
|
|
61
75
|
}
|
|
62
76
|
delete(id) {
|
|
63
77
|
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
-
const result = yield this._knex("user_push_notification_token")
|
|
78
|
+
const result = yield this._knex("user_push_notification_token")
|
|
79
|
+
.where({ id })
|
|
80
|
+
.del();
|
|
65
81
|
return result > 0;
|
|
66
82
|
});
|
|
67
83
|
}
|
|
@@ -70,7 +86,9 @@ class UserPushNotificationTokenDAO {
|
|
|
70
86
|
const offset = (page - 1) * limit;
|
|
71
87
|
const [countResult] = yield this._knex("user_push_notification_token").count("* as count");
|
|
72
88
|
const totalCount = +countResult.count;
|
|
73
|
-
const tokens = yield this._knex("user_push_notification_token")
|
|
89
|
+
const tokens = yield this._knex("user_push_notification_token")
|
|
90
|
+
.limit(limit)
|
|
91
|
+
.offset(offset);
|
|
74
92
|
return {
|
|
75
93
|
success: true,
|
|
76
94
|
data: tokens,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-push-notification-token.dao.js","sourceRoot":"","sources":["../../../src/dao/user-push-notification-token/user-push-notification-token.dao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,0EAA+C;AAE/C,MAAa,4BAA4B;IAAzC;
|
|
1
|
+
{"version":3,"file":"user-push-notification-token.dao.js","sourceRoot":"","sources":["../../../src/dao/user-push-notification-token/user-push-notification-token.dao.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,4 +10,19 @@ export declare class VideoDAO implements IBaseDAO<IVideo> {
|
|
|
10
10
|
update(id: number, item: Partial<IVideo>): Promise<IVideo | null>;
|
|
11
11
|
delete(id: number): Promise<boolean>;
|
|
12
12
|
getAll(page: number, limit: number, folderId?: number | null): Promise<IDataPaginator<IVideo>>;
|
|
13
|
+
getVideoStatsByFolderIds(folderIds: number[]): Promise<{
|
|
14
|
+
total_videos: number;
|
|
15
|
+
completed_videos: number;
|
|
16
|
+
failed_videos: number;
|
|
17
|
+
processing_videos: number;
|
|
18
|
+
}>;
|
|
19
|
+
getCompletedVideosByFolderIds(folderIds: number[], videoType?: string): Promise<IVideo[]>;
|
|
20
|
+
/**
|
|
21
|
+
* Update the duration in seconds for a video
|
|
22
|
+
*/
|
|
23
|
+
updateDuration(id: number, durationSeconds: number): Promise<IVideo | null>;
|
|
24
|
+
/**
|
|
25
|
+
* Get videos that don't have minute-by-minute data yet
|
|
26
|
+
*/
|
|
27
|
+
getVideosWithoutMinuteData(page: number, limit: number): Promise<IDataPaginator<IVideo>>;
|
|
13
28
|
}
|
|
@@ -23,7 +23,9 @@ class VideoDAO {
|
|
|
23
23
|
}
|
|
24
24
|
create(item) {
|
|
25
25
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
-
const [createdVideo] = yield this._knex("video")
|
|
26
|
+
const [createdVideo] = yield this._knex("video")
|
|
27
|
+
.insert(item)
|
|
28
|
+
.returning("*");
|
|
27
29
|
return createdVideo;
|
|
28
30
|
});
|
|
29
31
|
}
|
|
@@ -49,7 +51,10 @@ class VideoDAO {
|
|
|
49
51
|
}
|
|
50
52
|
update(id, item) {
|
|
51
53
|
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
-
const [updatedVideo] = yield this._knex("video")
|
|
54
|
+
const [updatedVideo] = yield this._knex("video")
|
|
55
|
+
.where({ id })
|
|
56
|
+
.update(item)
|
|
57
|
+
.returning("*");
|
|
53
58
|
return updatedVideo || null;
|
|
54
59
|
});
|
|
55
60
|
}
|
|
@@ -83,6 +88,84 @@ class VideoDAO {
|
|
|
83
88
|
};
|
|
84
89
|
});
|
|
85
90
|
}
|
|
91
|
+
getVideoStatsByFolderIds(folderIds) {
|
|
92
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
93
|
+
if (!folderIds || folderIds.length === 0) {
|
|
94
|
+
return {
|
|
95
|
+
total_videos: 0,
|
|
96
|
+
completed_videos: 0,
|
|
97
|
+
failed_videos: 0,
|
|
98
|
+
processing_videos: 0,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
const result = (yield this._knex("video")
|
|
102
|
+
.whereIn("folderId", folderIds)
|
|
103
|
+
.select(this._knex.raw("COUNT(*) as total_videos"), this._knex.raw("COUNT(CASE WHEN status = ? THEN 1 END) as completed_videos", ["COMPLETED"]), this._knex.raw("COUNT(CASE WHEN status = ? THEN 1 END) as failed_videos", ["FAILED"]), this._knex.raw("COUNT(CASE WHEN status = ? THEN 1 END) as processing_videos", ["PROCESSING"]))
|
|
104
|
+
.first());
|
|
105
|
+
return {
|
|
106
|
+
total_videos: parseInt(result === null || result === void 0 ? void 0 : result.total_videos) || 0,
|
|
107
|
+
completed_videos: parseInt(result === null || result === void 0 ? void 0 : result.completed_videos) || 0,
|
|
108
|
+
failed_videos: parseInt(result === null || result === void 0 ? void 0 : result.failed_videos) || 0,
|
|
109
|
+
processing_videos: parseInt(result === null || result === void 0 ? void 0 : result.processing_videos) || 0,
|
|
110
|
+
};
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
getCompletedVideosByFolderIds(folderIds, videoType) {
|
|
114
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
115
|
+
if (!folderIds || folderIds.length === 0) {
|
|
116
|
+
return [];
|
|
117
|
+
}
|
|
118
|
+
const query = this._knex("video")
|
|
119
|
+
.whereIn("folderId", folderIds)
|
|
120
|
+
.where("status", "COMPLETED");
|
|
121
|
+
if (videoType) {
|
|
122
|
+
query.where("videoType", videoType);
|
|
123
|
+
}
|
|
124
|
+
return yield query.select("id", "name", "metadata", "results", "created_at", this._knex.raw("EXTRACT(EPOCH FROM (updated_at - created_at)) as duration"));
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Update the duration in seconds for a video
|
|
129
|
+
*/
|
|
130
|
+
updateDuration(id, durationSeconds) {
|
|
131
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
132
|
+
const [updatedVideo] = yield this._knex("video")
|
|
133
|
+
.where({ id })
|
|
134
|
+
.update({
|
|
135
|
+
duration_seconds: durationSeconds,
|
|
136
|
+
updated_at: this._knex.fn.now(),
|
|
137
|
+
})
|
|
138
|
+
.returning("*");
|
|
139
|
+
return updatedVideo || null;
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Get videos that don't have minute-by-minute data yet
|
|
144
|
+
*/
|
|
145
|
+
getVideosWithoutMinuteData(page, limit) {
|
|
146
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
147
|
+
const offset = (page - 1) * limit;
|
|
148
|
+
const query = this._knex("video as v")
|
|
149
|
+
.leftJoin("video_minute_results as vmr", "v.id", "vmr.video_id")
|
|
150
|
+
.whereNull("vmr.video_id")
|
|
151
|
+
.where("v.status", "COMPLETED")
|
|
152
|
+
.innerJoin("folders as f", "v.folderId", "f.id")
|
|
153
|
+
.select("v.*", this._knex.raw("to_jsonb(f.*) as folder"))
|
|
154
|
+
.groupBy("v.id", "f.id");
|
|
155
|
+
const [countResult] = yield query.clone().clearSelect().count("* as count");
|
|
156
|
+
const totalCount = +countResult.count;
|
|
157
|
+
const videos = yield query.clone().limit(limit).offset(offset);
|
|
158
|
+
return {
|
|
159
|
+
success: true,
|
|
160
|
+
data: videos,
|
|
161
|
+
page,
|
|
162
|
+
limit,
|
|
163
|
+
count: videos.length,
|
|
164
|
+
totalCount,
|
|
165
|
+
totalPages: Math.ceil(totalCount / limit),
|
|
166
|
+
};
|
|
167
|
+
});
|
|
168
|
+
}
|
|
86
169
|
}
|
|
87
170
|
exports.VideoDAO = VideoDAO;
|
|
88
171
|
//# sourceMappingURL=video.dao.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video.dao.js","sourceRoot":"","sources":["../../../src/dao/video/video.dao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,0EAA+C;AAE/C,MAAa,QAAQ;IAArB;
|
|
1
|
+
{"version":3,"file":"video.dao.js","sourceRoot":"","sources":["../../../src/dao/video/video.dao.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseEntity.js","sourceRoot":"","sources":["../../src/entities/BaseEntity.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { IBaseEntity } from "./BaseEntity";
|
|
2
|
+
export interface IVideoMinuteResult extends IBaseEntity {
|
|
3
|
+
id: number;
|
|
4
|
+
uuid: string;
|
|
5
|
+
videoId: number;
|
|
6
|
+
minuteNumber: number;
|
|
7
|
+
results: Record<string, any>;
|
|
8
|
+
createdAt: string;
|
|
9
|
+
updatedAt: string;
|
|
10
|
+
}
|
|
11
|
+
export interface IVideoMinuteResultInput {
|
|
12
|
+
videoId: number;
|
|
13
|
+
minuteNumber: number;
|
|
14
|
+
results: Record<string, any>;
|
|
15
|
+
}
|
|
16
|
+
export interface IVideoMinuteBatch {
|
|
17
|
+
videoId: number;
|
|
18
|
+
startMinute: number;
|
|
19
|
+
endMinute: number;
|
|
20
|
+
minuteResults: IVideoMinuteResultInput[];
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VideoMinuteResult.js","sourceRoot":"","sources":["../../src/entities/VideoMinuteResult.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export { AuthDAO } from "./dao/auth/auth.dao";
|
|
|
6
6
|
export { UserPushNotificationTokenDAO } from "./dao/user-push-notification-token/user-push-notification-token.dao";
|
|
7
7
|
export { ChatDAO } from "./dao/chat/chat.dao";
|
|
8
8
|
export { MessageDAO } from "./dao/message/message.dao";
|
|
9
|
+
export { VideoMinuteResultDAO } from "./dao/VideoMinuteResultDAO";
|
|
9
10
|
export { IDataPaginator } from "./d.types";
|
|
10
11
|
export { IUser } from "./interfaces/user/user.interfaces";
|
|
11
12
|
export { IStudy } from "./interfaces/study/study.interfaces";
|
|
@@ -13,7 +14,8 @@ export { IFolder } from "./interfaces/folder/folder.interfaces";
|
|
|
13
14
|
export { IVideo } from "./interfaces/video/video.interfaces";
|
|
14
15
|
export { IAuth } from "./interfaces/auth/auth.interfaces";
|
|
15
16
|
export { IUserPushNotificationToken } from "./interfaces/user-push-notification-token/user-push-notification-token.interfaces";
|
|
16
|
-
export { IChat, IChatCreate, IChatUpdate } from "./interfaces/chat/chat.interfaces";
|
|
17
|
-
export { IMessage, IMessageCreate, IMessageUpdate } from "./interfaces/message/message.interfaces";
|
|
17
|
+
export { IChat, IChatCreate, IChatUpdate, } from "./interfaces/chat/chat.interfaces";
|
|
18
|
+
export { IMessage, IMessageCreate, IMessageUpdate, } from "./interfaces/message/message.interfaces";
|
|
19
|
+
export { IVideoMinuteResult, IVideoMinuteResultInput, IVideoMinuteBatch, } from "./entities/VideoMinuteResult";
|
|
18
20
|
import KnexManager from "./KnexConnection";
|
|
19
21
|
export { KnexManager };
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.KnexManager = exports.MessageDAO = exports.ChatDAO = exports.UserPushNotificationTokenDAO = exports.AuthDAO = exports.VideoDAO = exports.FolderDAO = exports.StudyDAO = exports.UserDAO = void 0;
|
|
6
|
+
exports.KnexManager = exports.VideoMinuteResultDAO = exports.MessageDAO = exports.ChatDAO = exports.UserPushNotificationTokenDAO = exports.AuthDAO = exports.VideoDAO = exports.FolderDAO = exports.StudyDAO = exports.UserDAO = void 0;
|
|
7
7
|
// DAOs
|
|
8
8
|
var user_dao_1 = require("./dao/user/user.dao");
|
|
9
9
|
Object.defineProperty(exports, "UserDAO", { enumerable: true, get: function () { return user_dao_1.UserDAO; } });
|
|
@@ -21,6 +21,8 @@ var chat_dao_1 = require("./dao/chat/chat.dao");
|
|
|
21
21
|
Object.defineProperty(exports, "ChatDAO", { enumerable: true, get: function () { return chat_dao_1.ChatDAO; } });
|
|
22
22
|
var message_dao_1 = require("./dao/message/message.dao");
|
|
23
23
|
Object.defineProperty(exports, "MessageDAO", { enumerable: true, get: function () { return message_dao_1.MessageDAO; } });
|
|
24
|
+
var VideoMinuteResultDAO_1 = require("./dao/VideoMinuteResultDAO");
|
|
25
|
+
Object.defineProperty(exports, "VideoMinuteResultDAO", { enumerable: true, get: function () { return VideoMinuteResultDAO_1.VideoMinuteResultDAO; } });
|
|
24
26
|
const KnexConnection_1 = __importDefault(require("./KnexConnection"));
|
|
25
27
|
exports.KnexManager = KnexConnection_1.default;
|
|
26
28
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO;AACP,gDAA8C;AAArC,mGAAA,OAAO,OAAA;AAChB,mDAAiD;AAAxC,qGAAA,QAAQ,OAAA;AACjB,sDAAoD;AAA3C,uGAAA,SAAS,OAAA;AAClB,mDAAiD;AAAxC,qGAAA,QAAQ,OAAA;AACjB,gDAA8C;AAArC,mGAAA,OAAO,OAAA;AAChB,wHAAmH;AAA1G,gJAAA,4BAA4B,OAAA;AACrC,gDAA8C;AAArC,mGAAA,OAAO,OAAA;AAChB,yDAAuD;AAA9C,yGAAA,UAAU,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO;AACP,gDAA8C;AAArC,mGAAA,OAAO,OAAA;AAChB,mDAAiD;AAAxC,qGAAA,QAAQ,OAAA;AACjB,sDAAoD;AAA3C,uGAAA,SAAS,OAAA;AAClB,mDAAiD;AAAxC,qGAAA,QAAQ,OAAA;AACjB,gDAA8C;AAArC,mGAAA,OAAO,OAAA;AAChB,wHAAmH;AAA1G,gJAAA,4BAA4B,OAAA;AACrC,gDAA8C;AAArC,mGAAA,OAAO,OAAA;AAChB,yDAAuD;AAA9C,yGAAA,UAAU,OAAA;AACnB,mEAAkE;AAAzD,4HAAA,oBAAoB,OAAA;AA0B7B,sEAA2C;AAClC,sBADF,wBAAW,CACE"}
|
|
@@ -3,16 +3,16 @@ export interface IChat {
|
|
|
3
3
|
uuid?: string;
|
|
4
4
|
userId: number;
|
|
5
5
|
title: string;
|
|
6
|
-
status?:
|
|
6
|
+
status?: "active" | "archived";
|
|
7
7
|
created_at?: Date;
|
|
8
8
|
updated_at?: Date;
|
|
9
9
|
}
|
|
10
10
|
export interface IChatCreate {
|
|
11
11
|
userId: number;
|
|
12
12
|
title: string;
|
|
13
|
-
status?:
|
|
13
|
+
status?: "active" | "archived";
|
|
14
14
|
}
|
|
15
15
|
export interface IChatUpdate {
|
|
16
16
|
title?: string;
|
|
17
|
-
status?:
|
|
17
|
+
status?: "active" | "archived";
|
|
18
18
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
export interface IMessage {
|
|
2
2
|
id?: number;
|
|
3
3
|
chatId: number;
|
|
4
|
-
role:
|
|
4
|
+
role: "user" | "assistant";
|
|
5
5
|
content: string;
|
|
6
6
|
created_at?: Date;
|
|
7
7
|
updated_at?: Date;
|
|
8
8
|
}
|
|
9
9
|
export interface IMessageCreate {
|
|
10
10
|
chatId: number;
|
|
11
|
-
role:
|
|
11
|
+
role: "user" | "assistant";
|
|
12
12
|
content: string;
|
|
13
13
|
}
|
|
14
14
|
export interface IMessageUpdate {
|