@trafficgroup/knex-rel 0.0.26 → 0.0.28

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.
Files changed (94) hide show
  1. package/.claude/settings.local.json +9 -0
  2. package/CLAUDE.md +63 -0
  3. package/dist/KnexConnection.d.ts +17 -0
  4. package/dist/KnexConnection.js +99 -0
  5. package/dist/KnexConnection.js.map +1 -0
  6. package/dist/d.types.d.ts +17 -0
  7. package/dist/d.types.js +3 -0
  8. package/dist/d.types.js.map +1 -0
  9. package/dist/dao/auth/auth.dao.d.ts +13 -0
  10. package/dist/dao/auth/auth.dao.js +82 -0
  11. package/dist/dao/auth/auth.dao.js.map +1 -0
  12. package/dist/dao/chat/chat.dao.d.ts +13 -0
  13. package/dist/dao/chat/chat.dao.js +138 -0
  14. package/dist/dao/chat/chat.dao.js.map +1 -0
  15. package/dist/dao/folder/folder.dao.d.ts +11 -0
  16. package/dist/dao/folder/folder.dao.js +84 -0
  17. package/dist/dao/folder/folder.dao.js.map +1 -0
  18. package/dist/dao/message/message.dao.d.ts +13 -0
  19. package/dist/dao/message/message.dao.js +118 -0
  20. package/dist/dao/message/message.dao.js.map +1 -0
  21. package/dist/dao/study/study.dao.d.ts +11 -0
  22. package/dist/dao/study/study.dao.js +84 -0
  23. package/dist/dao/study/study.dao.js.map +1 -0
  24. package/dist/dao/user/user.dao.d.ts +12 -0
  25. package/dist/dao/user/user.dao.js +76 -0
  26. package/dist/dao/user/user.dao.js.map +1 -0
  27. package/dist/dao/user-push-notification-token/user-push-notification-token.dao.d.ts +14 -0
  28. package/dist/dao/user-push-notification-token/user-push-notification-token.dao.js +87 -0
  29. package/dist/dao/user-push-notification-token/user-push-notification-token.dao.js.map +1 -0
  30. package/dist/dao/video/video.dao.d.ts +20 -0
  31. package/dist/dao/video/video.dao.js +124 -0
  32. package/dist/dao/video/video.dao.js.map +1 -0
  33. package/dist/index.d.ts +19 -0
  34. package/dist/index.js +26 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/interfaces/auth/auth.interfaces.d.ts +11 -0
  37. package/dist/interfaces/auth/auth.interfaces.js +3 -0
  38. package/dist/interfaces/auth/auth.interfaces.js.map +1 -0
  39. package/dist/interfaces/chat/chat.interfaces.d.ts +18 -0
  40. package/dist/interfaces/chat/chat.interfaces.js +3 -0
  41. package/dist/interfaces/chat/chat.interfaces.js.map +1 -0
  42. package/dist/interfaces/folder/folder.interfaces.d.ts +12 -0
  43. package/dist/interfaces/folder/folder.interfaces.js +3 -0
  44. package/dist/interfaces/folder/folder.interfaces.js.map +1 -0
  45. package/dist/interfaces/message/message.interfaces.d.ts +16 -0
  46. package/dist/interfaces/message/message.interfaces.js +3 -0
  47. package/dist/interfaces/message/message.interfaces.js.map +1 -0
  48. package/dist/interfaces/study/study.interfaces.d.ts +11 -0
  49. package/dist/interfaces/study/study.interfaces.js +3 -0
  50. package/dist/interfaces/study/study.interfaces.js.map +1 -0
  51. package/dist/interfaces/user/user.interfaces.d.ts +11 -0
  52. package/dist/interfaces/user/user.interfaces.js +3 -0
  53. package/dist/interfaces/user/user.interfaces.js.map +1 -0
  54. package/dist/interfaces/user-push-notification-token/user-push-notification-token.interfaces.d.ts +10 -0
  55. package/dist/interfaces/user-push-notification-token/user-push-notification-token.interfaces.js +3 -0
  56. package/dist/interfaces/user-push-notification-token/user-push-notification-token.interfaces.js.map +1 -0
  57. package/dist/interfaces/video/video.interfaces.d.ts +20 -0
  58. package/dist/interfaces/video/video.interfaces.js +3 -0
  59. package/dist/interfaces/video/video.interfaces.js.map +1 -0
  60. package/knexfile.ts +5 -5
  61. package/migrations/20250717173228_migration.ts +9 -0
  62. package/migrations/20250717204731_migration.ts +13 -0
  63. package/migrations/20250722210109_migration.ts +60 -0
  64. package/migrations/20250722211019_migration.ts +15 -0
  65. package/migrations/20250723153852_migration.ts +19 -0
  66. package/migrations/20250723162257_migration.ts +16 -0
  67. package/migrations/20250723171109_migration.ts +16 -0
  68. package/migrations/20250723205331_migration.ts +18 -0
  69. package/migrations/20250724191345_migration.ts +18 -0
  70. package/migrations/20250730180932_migration.ts +22 -0
  71. package/migrations/20250730213625_migration.ts +18 -0
  72. package/migrations/20250804124509_migration.ts +43 -0
  73. package/migrations/20250804132053_migration.ts +18 -0
  74. package/migrations/20250804164518_migration.ts +17 -0
  75. package/package.json +47 -47
  76. package/src/d.types.ts +7 -7
  77. package/src/dao/auth/auth.dao.ts +61 -0
  78. package/src/dao/chat/chat.dao.ts +124 -0
  79. package/src/dao/folder/folder.dao.ts +66 -0
  80. package/src/dao/message/message.dao.ts +102 -0
  81. package/src/dao/study/study.dao.ts +66 -0
  82. package/src/dao/user/user.dao.ts +14 -10
  83. package/src/dao/user-push-notification-token/user-push-notification-token.dao.ts +65 -0
  84. package/src/dao/video/video.dao.ts +120 -0
  85. package/src/index.ts +23 -8
  86. package/src/interfaces/auth/auth.interfaces.ts +11 -0
  87. package/src/interfaces/chat/chat.interfaces.ts +20 -0
  88. package/src/interfaces/folder/folder.interfaces.ts +3 -0
  89. package/src/interfaces/message/message.interfaces.ts +18 -0
  90. package/src/interfaces/study/study.interfaces.ts +3 -0
  91. package/src/interfaces/user/user.interfaces.ts +2 -0
  92. package/src/interfaces/user-push-notification-token/user-push-notification-token.interfaces.ts +10 -0
  93. package/src/interfaces/video/video.interfaces.ts +9 -1
  94. package/.env +0 -5
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.MessageDAO = void 0;
16
+ const KnexConnection_1 = __importDefault(require("../../KnexConnection"));
17
+ class MessageDAO {
18
+ constructor() {
19
+ this._knex = KnexConnection_1.default.getConnection();
20
+ }
21
+ create(item) {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ const [result] = yield this._knex('message')
24
+ .insert(item)
25
+ .returning('*');
26
+ return result;
27
+ });
28
+ }
29
+ getById(id) {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ const result = yield this._knex('message')
32
+ .where('id', id)
33
+ .first();
34
+ return result || null;
35
+ });
36
+ }
37
+ getByUuid(uuid) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ // Message table doesn't have uuid column, returning null
40
+ return null;
41
+ });
42
+ }
43
+ getAll() {
44
+ return __awaiter(this, arguments, void 0, function* (page = 1, limit = 10) {
45
+ const offset = (page - 1) * limit;
46
+ const [results, [{ count }]] = yield Promise.all([
47
+ this._knex('message')
48
+ .orderBy('created_at', 'asc')
49
+ .limit(limit)
50
+ .offset(offset),
51
+ this._knex('message').count('* as count')
52
+ ]);
53
+ const totalCount = parseInt(count);
54
+ return {
55
+ success: true,
56
+ data: results,
57
+ page,
58
+ limit,
59
+ count: results.length,
60
+ totalCount,
61
+ totalPages: Math.ceil(totalCount / limit)
62
+ };
63
+ });
64
+ }
65
+ update(id, item) {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ const [result] = yield this._knex('message')
68
+ .where('id', id)
69
+ .update(Object.assign(Object.assign({}, item), { updated_at: new Date() }))
70
+ .returning('*');
71
+ return result || null;
72
+ });
73
+ }
74
+ delete(id) {
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ const result = yield this._knex('message')
77
+ .where('id', id)
78
+ .delete();
79
+ return result > 0;
80
+ });
81
+ }
82
+ getByChatId(chatId_1) {
83
+ return __awaiter(this, arguments, void 0, function* (chatId, page = 1, limit = 50) {
84
+ const offset = (page - 1) * limit;
85
+ const [results, [{ count }]] = yield Promise.all([
86
+ this._knex('message')
87
+ .where('chatId', chatId)
88
+ .orderBy('created_at', 'asc')
89
+ .limit(limit)
90
+ .offset(offset),
91
+ this._knex('message')
92
+ .where('chatId', chatId)
93
+ .count('* as count')
94
+ ]);
95
+ const totalCount = parseInt(count);
96
+ return {
97
+ success: true,
98
+ data: results,
99
+ page,
100
+ limit,
101
+ count: results.length,
102
+ totalCount,
103
+ totalPages: Math.ceil(totalCount / limit)
104
+ };
105
+ });
106
+ }
107
+ getLatestMessages(chatId_1) {
108
+ return __awaiter(this, arguments, void 0, function* (chatId, limit = 50) {
109
+ return yield this._knex('message')
110
+ .where('chatId', chatId)
111
+ .orderBy('created_at', 'desc')
112
+ .limit(limit)
113
+ .then((messages) => messages.reverse());
114
+ });
115
+ }
116
+ }
117
+ exports.MessageDAO = MessageDAO;
118
+ //# sourceMappingURL=message.dao.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.dao.js","sourceRoot":"","sources":["../../../src/dao/message/message.dao.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { IBaseDAO, IDataPaginator } from "../../d.types";
2
+ import { IStudy } from "../../interfaces/study/study.interfaces";
3
+ export declare class StudyDAO implements IBaseDAO<IStudy> {
4
+ private _knex;
5
+ create(item: IStudy): Promise<IStudy>;
6
+ getById(id: number): Promise<IStudy | null>;
7
+ getByUuid(uuid: string): Promise<IStudy | null>;
8
+ update(id: number, item: Partial<IStudy>): Promise<IStudy | null>;
9
+ delete(id: number): Promise<boolean>;
10
+ getAll(page: number, limit: number, createdBy?: number | null): Promise<IDataPaginator<IStudy>>;
11
+ }
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.StudyDAO = void 0;
16
+ const KnexConnection_1 = __importDefault(require("../../KnexConnection"));
17
+ class StudyDAO {
18
+ constructor() {
19
+ this._knex = KnexConnection_1.default.getConnection();
20
+ }
21
+ create(item) {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ const [createdStudy] = yield this._knex("study").insert(item).returning("*");
24
+ return createdStudy;
25
+ });
26
+ }
27
+ getById(id) {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ const study = yield this._knex("study as s")
30
+ .innerJoin("users as u", "s.createdBy", "u.id")
31
+ .select("s.*", this._knex.raw("to_jsonb(u.*) as user"))
32
+ .where("s.id", id)
33
+ .first();
34
+ return study || null;
35
+ });
36
+ }
37
+ getByUuid(uuid) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ const study = yield this._knex("study as s")
40
+ .innerJoin("users as u", "s.createdBy", "u.id")
41
+ .select("s.*", this._knex.raw("to_jsonb(u.*) as user"))
42
+ .where("s.uuid", uuid)
43
+ .first();
44
+ return study || null;
45
+ });
46
+ }
47
+ update(id, item) {
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ const [updatedStudy] = yield this._knex("study").where({ id }).update(item).returning("*");
50
+ return updatedStudy || null;
51
+ });
52
+ }
53
+ delete(id) {
54
+ return __awaiter(this, void 0, void 0, function* () {
55
+ const result = yield this._knex("study").where({ id }).del();
56
+ return result > 0;
57
+ });
58
+ }
59
+ getAll(page, limit, createdBy) {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ const offset = (page - 1) * limit;
62
+ const query = this._knex("study as s")
63
+ .innerJoin("users as u", "s.createdBy", "u.id")
64
+ .select("s.*", this._knex.raw("to_jsonb(u.*) as user"));
65
+ if (createdBy !== undefined && createdBy !== null) {
66
+ query.where("s.createdBy", createdBy);
67
+ }
68
+ const [countResult] = yield query.clone().clearSelect().count("* as count");
69
+ const totalCount = +countResult.count;
70
+ const studies = yield query.clone().limit(limit).offset(offset);
71
+ return {
72
+ success: true,
73
+ data: studies,
74
+ page,
75
+ limit,
76
+ count: studies.length,
77
+ totalCount,
78
+ totalPages: Math.ceil(totalCount / limit),
79
+ };
80
+ });
81
+ }
82
+ }
83
+ exports.StudyDAO = StudyDAO;
84
+ //# sourceMappingURL=study.dao.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"study.dao.js","sourceRoot":"","sources":["../../../src/dao/study/study.dao.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { IBaseDAO, IDataPaginator } from "../../d.types";
2
+ import { IUser } from "../../interfaces/user/user.interfaces";
3
+ export declare class UserDAO implements IBaseDAO<IUser> {
4
+ private _knex;
5
+ create(item: IUser): Promise<IUser>;
6
+ getById(id: number): Promise<IUser | null>;
7
+ getByUuid(uuid: string): Promise<IUser | null>;
8
+ getByEmail(email: string): Promise<IUser | null>;
9
+ update(id: number, item: Partial<IUser>): Promise<IUser | null>;
10
+ delete(id: number): Promise<boolean>;
11
+ getAll(page: number, limit: number): Promise<IDataPaginator<IUser>>;
12
+ }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.UserDAO = void 0;
16
+ const KnexConnection_1 = __importDefault(require("../../KnexConnection"));
17
+ class UserDAO {
18
+ constructor() {
19
+ this._knex = KnexConnection_1.default.getConnection();
20
+ }
21
+ create(item) {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ const [createdUser] = yield this._knex("users").insert(item).returning("*");
24
+ return createdUser;
25
+ });
26
+ }
27
+ getById(id) {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ const user = yield this._knex("users").where({ id }).first();
30
+ return user || null;
31
+ });
32
+ }
33
+ getByUuid(uuid) {
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ const user = yield this._knex("users").where({ uuid }).first();
36
+ return user || null;
37
+ });
38
+ }
39
+ getByEmail(email) {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ const user = yield this._knex("users").where({ email }).first();
42
+ return user || null;
43
+ });
44
+ }
45
+ update(id, item) {
46
+ return __awaiter(this, void 0, void 0, function* () {
47
+ const [updatedUser] = yield this._knex("users").where({ id }).update(item).returning("*");
48
+ return updatedUser || null;
49
+ });
50
+ }
51
+ delete(id) {
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ const result = yield this._knex("users").where({ id }).del();
54
+ return result > 0;
55
+ });
56
+ }
57
+ getAll(page, limit) {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ const offset = (page - 1) * limit;
60
+ const [countResult] = yield this._knex("users").count("* as count");
61
+ const totalCount = +countResult.count;
62
+ const users = yield this._knex("users").limit(limit).offset(offset);
63
+ return {
64
+ success: true,
65
+ data: users,
66
+ page,
67
+ limit,
68
+ count: users.length,
69
+ totalCount,
70
+ totalPages: Math.ceil(totalCount / limit),
71
+ };
72
+ });
73
+ }
74
+ }
75
+ exports.UserDAO = UserDAO;
76
+ //# sourceMappingURL=user.dao.js.map
@@ -0,0 +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;QACY,UAAK,GAAyB,wBAAW,CAAC,aAAa,EAAE,CAAC;IAkDtE,CAAC;IAhDS,MAAM,CAAC,IAAW;;YACpB,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;QACvB,CAAC;KAAA;IAEK,OAAO,CAAC,EAAU;;YACpB,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;QACxB,CAAC;KAAA;IAEK,SAAS,CAAC,IAAY;;YACxB,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;QACxB,CAAC;KAAA;IAGK,UAAU,CAAC,KAAa;;YAC1B,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;QACxB,CAAC;KAAA;IAEK,MAAM,CAAC,EAAU,EAAE,IAAoB;;YACzC,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC1F,OAAO,WAAW,IAAI,IAAI,CAAC;QAC/B,CAAC;KAAA;IAEK,MAAM,CAAC,EAAU;;YACnB,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;QACtB,CAAC;KAAA;IAEK,MAAM,CAAC,IAAY,EAAE,KAAa;;YACpC,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;gBACH,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;aAC5C,CAAC;QACN,CAAC;KAAA;CACJ;AAnDD,0BAmDC"}
@@ -0,0 +1,14 @@
1
+ import { IBaseDAO, IDataPaginator } from "../../d.types";
2
+ import { IUserPushNotificationToken } from "../../interfaces/user-push-notification-token/user-push-notification-token.interfaces";
3
+ export declare class UserPushNotificationTokenDAO implements IBaseDAO<IUserPushNotificationToken> {
4
+ private _knex;
5
+ create(item: IUserPushNotificationToken): Promise<IUserPushNotificationToken>;
6
+ getById(id: number): Promise<IUserPushNotificationToken | null>;
7
+ getByUuid(uuid: string): Promise<IUserPushNotificationToken | null>;
8
+ getByUserId(userId: number): Promise<IUserPushNotificationToken[]>;
9
+ getByToken(token: string): Promise<IUserPushNotificationToken | null>;
10
+ getAvailableByUserId(userId: number): Promise<IUserPushNotificationToken[]>;
11
+ update(id: number, item: Partial<IUserPushNotificationToken>): Promise<IUserPushNotificationToken | null>;
12
+ delete(id: number): Promise<boolean>;
13
+ getAll(page: number, limit: number): Promise<IDataPaginator<IUserPushNotificationToken>>;
14
+ }
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.UserPushNotificationTokenDAO = void 0;
16
+ const KnexConnection_1 = __importDefault(require("../../KnexConnection"));
17
+ class UserPushNotificationTokenDAO {
18
+ constructor() {
19
+ this._knex = KnexConnection_1.default.getConnection();
20
+ }
21
+ create(item) {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ const [createdToken] = yield this._knex("user_push_notification_token").insert(item).returning("*");
24
+ return createdToken;
25
+ });
26
+ }
27
+ getById(id) {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ const token = yield this._knex("user_push_notification_token").where({ id }).first();
30
+ return token || null;
31
+ });
32
+ }
33
+ getByUuid(uuid) {
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ throw new Error("Method not implemented. UserPushNotificationToken does not have UUID field.");
36
+ });
37
+ }
38
+ getByUserId(userId) {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ const tokens = yield this._knex("user_push_notification_token").where({ userId });
41
+ return tokens;
42
+ });
43
+ }
44
+ getByToken(token) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ const tokenRecord = yield this._knex("user_push_notification_token").where({ token }).first();
47
+ return tokenRecord || null;
48
+ });
49
+ }
50
+ getAvailableByUserId(userId) {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ const tokens = yield this._knex("user_push_notification_token").where({ userId, available: true });
53
+ return tokens;
54
+ });
55
+ }
56
+ update(id, item) {
57
+ return __awaiter(this, void 0, void 0, function* () {
58
+ const [updatedToken] = yield this._knex("user_push_notification_token").where({ id }).update(item).returning("*");
59
+ return updatedToken || null;
60
+ });
61
+ }
62
+ delete(id) {
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ const result = yield this._knex("user_push_notification_token").where({ id }).del();
65
+ return result > 0;
66
+ });
67
+ }
68
+ getAll(page, limit) {
69
+ return __awaiter(this, void 0, void 0, function* () {
70
+ const offset = (page - 1) * limit;
71
+ const [countResult] = yield this._knex("user_push_notification_token").count("* as count");
72
+ const totalCount = +countResult.count;
73
+ const tokens = yield this._knex("user_push_notification_token").limit(limit).offset(offset);
74
+ return {
75
+ success: true,
76
+ data: tokens,
77
+ page,
78
+ limit,
79
+ count: tokens.length,
80
+ totalCount,
81
+ totalPages: Math.ceil(totalCount / limit),
82
+ };
83
+ });
84
+ }
85
+ }
86
+ exports.UserPushNotificationTokenDAO = UserPushNotificationTokenDAO;
87
+ //# sourceMappingURL=user-push-notification-token.dao.js.map
@@ -0,0 +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;QACY,UAAK,GAAyB,wBAAW,CAAC,aAAa,EAAE,CAAC;IA0DtE,CAAC;IAxDS,MAAM,CAAC,IAAgC;;YACzC,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACpG,OAAO,YAAY,CAAC;QACxB,CAAC;KAAA;IAEK,OAAO,CAAC,EAAU;;YACpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YACrF,OAAO,KAAK,IAAI,IAAI,CAAC;QACzB,CAAC;KAAA;IAEK,SAAS,CAAC,IAAY;;YACxB,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;QACnG,CAAC;KAAA;IAEK,WAAW,CAAC,MAAc;;YAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAClF,OAAO,MAAM,CAAC;QAClB,CAAC;KAAA;IAEK,UAAU,CAAC,KAAa;;YAC1B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;YAC9F,OAAO,WAAW,IAAI,IAAI,CAAC;QAC/B,CAAC;KAAA;IAEK,oBAAoB,CAAC,MAAc;;YACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACnG,OAAO,MAAM,CAAC;QAClB,CAAC;KAAA;IAEK,MAAM,CAAC,EAAU,EAAE,IAAyC;;YAC9D,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAClH,OAAO,YAAY,IAAI,IAAI,CAAC;QAChC,CAAC;KAAA;IAEK,MAAM,CAAC,EAAU;;YACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;YACpF,OAAO,MAAM,GAAG,CAAC,CAAC;QACtB,CAAC;KAAA;IAEK,MAAM,CAAC,IAAY,EAAE,KAAa;;YACpC,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YAElC,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC3F,MAAM,UAAU,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;YACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAE5F,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,MAAM;gBACZ,IAAI;gBACJ,KAAK;gBACL,KAAK,EAAE,MAAM,CAAC,MAAM;gBACpB,UAAU;gBACV,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;aAC5C,CAAC;QACN,CAAC;KAAA;CACJ;AA3DD,oEA2DC"}
@@ -0,0 +1,20 @@
1
+ import { Knex } from "knex";
2
+ import { IBaseDAO, IDataPaginator } from "../../d.types";
3
+ import { IVideo } from "../../interfaces/video/video.interfaces";
4
+ export declare class VideoDAO implements IBaseDAO<IVideo> {
5
+ private _knex;
6
+ static getInstance(): Knex<any, unknown[]>;
7
+ create(item: IVideo): Promise<IVideo>;
8
+ getById(id: number): Promise<IVideo | null>;
9
+ getByUuid(uuid: string): Promise<IVideo | null>;
10
+ update(id: number, item: Partial<IVideo>): Promise<IVideo | null>;
11
+ delete(id: number): Promise<boolean>;
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
+ }
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.VideoDAO = void 0;
16
+ const KnexConnection_1 = __importDefault(require("../../KnexConnection"));
17
+ class VideoDAO {
18
+ constructor() {
19
+ this._knex = KnexConnection_1.default.getConnection();
20
+ }
21
+ static getInstance() {
22
+ return KnexConnection_1.default.getConnection();
23
+ }
24
+ create(item) {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ const [createdVideo] = yield this._knex("video").insert(item).returning("*");
27
+ return createdVideo;
28
+ });
29
+ }
30
+ getById(id) {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ const video = yield this._knex("video as v")
33
+ .innerJoin("folders as f", "v.folderId", "f.id")
34
+ .select("v.*", this._knex.raw("to_jsonb(f.*) as folder"))
35
+ .where("v.id", id)
36
+ .first();
37
+ return video || null;
38
+ });
39
+ }
40
+ getByUuid(uuid) {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ const video = yield this._knex("video as v")
43
+ .innerJoin("folders as f", "v.folderId", "f.id")
44
+ .select("v.*", this._knex.raw("to_jsonb(f.*) as folder"))
45
+ .where("v.uuid", uuid)
46
+ .first();
47
+ return video || null;
48
+ });
49
+ }
50
+ update(id, item) {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ const [updatedVideo] = yield this._knex("video").where({ id }).update(item).returning("*");
53
+ return updatedVideo || null;
54
+ });
55
+ }
56
+ delete(id) {
57
+ return __awaiter(this, void 0, void 0, function* () {
58
+ const result = yield this._knex("video").where({ id }).del();
59
+ return result > 0;
60
+ });
61
+ }
62
+ // entityId corresponde al id del folder al que pertenece el video
63
+ getAll(page, limit, folderId) {
64
+ return __awaiter(this, void 0, void 0, function* () {
65
+ const offset = (page - 1) * limit;
66
+ const query = this._knex("video as v")
67
+ .innerJoin("folders as f", "v.folderId", "f.id")
68
+ .select("v.*", this._knex.raw("to_jsonb(f.*) as folder"));
69
+ if (folderId !== undefined && folderId !== null) {
70
+ query.where("v.folderId", folderId);
71
+ }
72
+ const [countResult] = yield query.clone().clearSelect().count("* as count");
73
+ const totalCount = +countResult.count;
74
+ const videos = yield query.clone().limit(limit).offset(offset);
75
+ return {
76
+ success: true,
77
+ data: videos,
78
+ page,
79
+ limit,
80
+ count: videos.length,
81
+ totalCount,
82
+ totalPages: Math.ceil(totalCount / limit),
83
+ };
84
+ });
85
+ }
86
+ getVideoStatsByFolderIds(folderIds) {
87
+ return __awaiter(this, void 0, void 0, function* () {
88
+ if (!folderIds || folderIds.length === 0) {
89
+ return {
90
+ total_videos: 0,
91
+ completed_videos: 0,
92
+ failed_videos: 0,
93
+ processing_videos: 0
94
+ };
95
+ }
96
+ const result = yield this._knex("video")
97
+ .whereIn("folderId", folderIds)
98
+ .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']))
99
+ .first();
100
+ return {
101
+ total_videos: parseInt(result === null || result === void 0 ? void 0 : result.total_videos) || 0,
102
+ completed_videos: parseInt(result === null || result === void 0 ? void 0 : result.completed_videos) || 0,
103
+ failed_videos: parseInt(result === null || result === void 0 ? void 0 : result.failed_videos) || 0,
104
+ processing_videos: parseInt(result === null || result === void 0 ? void 0 : result.processing_videos) || 0
105
+ };
106
+ });
107
+ }
108
+ getCompletedVideosByFolderIds(folderIds, videoType) {
109
+ return __awaiter(this, void 0, void 0, function* () {
110
+ if (!folderIds || folderIds.length === 0) {
111
+ return [];
112
+ }
113
+ const query = this._knex("video")
114
+ .whereIn("folderId", folderIds)
115
+ .where("status", "COMPLETED");
116
+ if (videoType) {
117
+ query.where("videoType", videoType);
118
+ }
119
+ return yield query.select("id", "name", "metadata", "results", "created_at", this._knex.raw("EXTRACT(EPOCH FROM (updated_at - created_at)) as duration"));
120
+ });
121
+ }
122
+ }
123
+ exports.VideoDAO = VideoDAO;
124
+ //# sourceMappingURL=video.dao.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video.dao.js","sourceRoot":"","sources":["../../../src/dao/video/video.dao.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export { UserDAO } from "./dao/user/user.dao";
2
+ export { StudyDAO } from "./dao/study/study.dao";
3
+ export { FolderDAO } from "./dao/folder/folder.dao";
4
+ export { VideoDAO } from "./dao/video/video.dao";
5
+ export { AuthDAO } from "./dao/auth/auth.dao";
6
+ export { UserPushNotificationTokenDAO } from "./dao/user-push-notification-token/user-push-notification-token.dao";
7
+ export { ChatDAO } from "./dao/chat/chat.dao";
8
+ export { MessageDAO } from "./dao/message/message.dao";
9
+ export { IDataPaginator } from "./d.types";
10
+ export { IUser } from "./interfaces/user/user.interfaces";
11
+ export { IStudy } from "./interfaces/study/study.interfaces";
12
+ export { IFolder } from "./interfaces/folder/folder.interfaces";
13
+ export { IVideo } from "./interfaces/video/video.interfaces";
14
+ export { IAuth } from "./interfaces/auth/auth.interfaces";
15
+ 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";
18
+ import KnexManager from "./KnexConnection";
19
+ export { KnexManager };
package/dist/index.js ADDED
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
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;
7
+ // DAOs
8
+ var user_dao_1 = require("./dao/user/user.dao");
9
+ Object.defineProperty(exports, "UserDAO", { enumerable: true, get: function () { return user_dao_1.UserDAO; } });
10
+ var study_dao_1 = require("./dao/study/study.dao");
11
+ Object.defineProperty(exports, "StudyDAO", { enumerable: true, get: function () { return study_dao_1.StudyDAO; } });
12
+ var folder_dao_1 = require("./dao/folder/folder.dao");
13
+ Object.defineProperty(exports, "FolderDAO", { enumerable: true, get: function () { return folder_dao_1.FolderDAO; } });
14
+ var video_dao_1 = require("./dao/video/video.dao");
15
+ Object.defineProperty(exports, "VideoDAO", { enumerable: true, get: function () { return video_dao_1.VideoDAO; } });
16
+ var auth_dao_1 = require("./dao/auth/auth.dao");
17
+ Object.defineProperty(exports, "AuthDAO", { enumerable: true, get: function () { return auth_dao_1.AuthDAO; } });
18
+ var user_push_notification_token_dao_1 = require("./dao/user-push-notification-token/user-push-notification-token.dao");
19
+ Object.defineProperty(exports, "UserPushNotificationTokenDAO", { enumerable: true, get: function () { return user_push_notification_token_dao_1.UserPushNotificationTokenDAO; } });
20
+ var chat_dao_1 = require("./dao/chat/chat.dao");
21
+ Object.defineProperty(exports, "ChatDAO", { enumerable: true, get: function () { return chat_dao_1.ChatDAO; } });
22
+ var message_dao_1 = require("./dao/message/message.dao");
23
+ Object.defineProperty(exports, "MessageDAO", { enumerable: true, get: function () { return message_dao_1.MessageDAO; } });
24
+ const KnexConnection_1 = __importDefault(require("./KnexConnection"));
25
+ exports.KnexManager = KnexConnection_1.default;
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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;AAanB,sEAA2C;AAClC,sBADF,wBAAW,CACE"}