goldstars-services 1.0.62 → 1.0.64
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/dist/index.js
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
Object.defineProperty(exports, "EventRegistrationService", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _eventRegistration.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
6
12
|
Object.defineProperty(exports, "ReservationService", {
|
|
7
13
|
enumerable: true,
|
|
8
14
|
get: function get() {
|
|
@@ -66,4 +72,5 @@ var _bank = _interopRequireDefault(require("./services/bank.service"));
|
|
|
66
72
|
var _bike = _interopRequireDefault(require("./services/bike.service"));
|
|
67
73
|
var _report = _interopRequireDefault(require("./services/report.service"));
|
|
68
74
|
var _reservation = _interopRequireDefault(require("./services/reservation.service"));
|
|
75
|
+
var _eventRegistration = _interopRequireDefault(require("./services/eventRegistration.service"));
|
|
69
76
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _mongoose = _interopRequireDefault(require("mongoose"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
var EventRegistrationSchema = new _mongoose.default.Schema({
|
|
10
|
+
name: {
|
|
11
|
+
type: String,
|
|
12
|
+
required: true,
|
|
13
|
+
trim: true
|
|
14
|
+
},
|
|
15
|
+
email: {
|
|
16
|
+
type: String,
|
|
17
|
+
required: true,
|
|
18
|
+
lowercase: true,
|
|
19
|
+
trim: true
|
|
20
|
+
},
|
|
21
|
+
phone: {
|
|
22
|
+
type: String,
|
|
23
|
+
required: true,
|
|
24
|
+
trim: true
|
|
25
|
+
},
|
|
26
|
+
age: {
|
|
27
|
+
type: Number,
|
|
28
|
+
required: true,
|
|
29
|
+
min: 0
|
|
30
|
+
},
|
|
31
|
+
dorsalNumber: {
|
|
32
|
+
type: Number,
|
|
33
|
+
required: true,
|
|
34
|
+
min: 0,
|
|
35
|
+
max: 1000,
|
|
36
|
+
unique: true
|
|
37
|
+
}
|
|
38
|
+
}, {
|
|
39
|
+
timestamps: true
|
|
40
|
+
});
|
|
41
|
+
EventRegistrationSchema.index({
|
|
42
|
+
email: 1,
|
|
43
|
+
createdAt: -1
|
|
44
|
+
});
|
|
45
|
+
EventRegistrationSchema.index({
|
|
46
|
+
dorsalNumber: 1
|
|
47
|
+
});
|
|
48
|
+
var _default = exports.default = _mongoose.default.model('EventRegistration', EventRegistrationSchema);
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _eventRegistration = _interopRequireDefault(require("../models/eventRegistration.model"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
10
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
11
|
+
var MAX_DORSAL = 1000;
|
|
12
|
+
var getUsedDorsals = /*#__PURE__*/function () {
|
|
13
|
+
var _ref = _asyncToGenerator(function* () {
|
|
14
|
+
var regs = yield _eventRegistration.default.find({}, {
|
|
15
|
+
dorsalNumber: 1,
|
|
16
|
+
_id: 0
|
|
17
|
+
}).lean();
|
|
18
|
+
return new Set(regs.map(r => r.dorsalNumber));
|
|
19
|
+
});
|
|
20
|
+
return function getUsedDorsals() {
|
|
21
|
+
return _ref.apply(this, arguments);
|
|
22
|
+
};
|
|
23
|
+
}();
|
|
24
|
+
var getNextAvailableDorsal = /*#__PURE__*/function () {
|
|
25
|
+
var _ref2 = _asyncToGenerator(function* () {
|
|
26
|
+
var used = yield getUsedDorsals();
|
|
27
|
+
// Try random distribution first
|
|
28
|
+
for (var i = 0; i < 50; i++) {
|
|
29
|
+
var candidate = Math.floor(Math.random() * (MAX_DORSAL + 1));
|
|
30
|
+
if (!used.has(candidate)) return candidate;
|
|
31
|
+
}
|
|
32
|
+
// Fallback sequential
|
|
33
|
+
for (var d = 0; d <= MAX_DORSAL; d++) {
|
|
34
|
+
if (!used.has(d)) return d;
|
|
35
|
+
}
|
|
36
|
+
throw new Error('No hay dorsales disponibles. Cupo lleno.');
|
|
37
|
+
});
|
|
38
|
+
return function getNextAvailableDorsal() {
|
|
39
|
+
return _ref2.apply(this, arguments);
|
|
40
|
+
};
|
|
41
|
+
}();
|
|
42
|
+
var createRegistration = /*#__PURE__*/function () {
|
|
43
|
+
var _ref4 = _asyncToGenerator(function* (_ref3) {
|
|
44
|
+
var {
|
|
45
|
+
name,
|
|
46
|
+
email,
|
|
47
|
+
phone,
|
|
48
|
+
age
|
|
49
|
+
} = _ref3;
|
|
50
|
+
if (!name || !email || !phone || age === undefined || age === null) {
|
|
51
|
+
throw new Error('Faltan campos requeridos');
|
|
52
|
+
}
|
|
53
|
+
var lastErr;
|
|
54
|
+
for (var attempt = 0; attempt < 3; attempt++) {
|
|
55
|
+
try {
|
|
56
|
+
var dorsalNumber = yield getNextAvailableDorsal();
|
|
57
|
+
var reg = yield _eventRegistration.default.create({
|
|
58
|
+
name,
|
|
59
|
+
email,
|
|
60
|
+
phone,
|
|
61
|
+
age,
|
|
62
|
+
dorsalNumber
|
|
63
|
+
});
|
|
64
|
+
return reg.toObject();
|
|
65
|
+
} catch (e) {
|
|
66
|
+
lastErr = e;
|
|
67
|
+
// Retry if duplicate key error on dorsalNumber
|
|
68
|
+
if (e && e.code === 11000) continue;
|
|
69
|
+
throw e;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
throw lastErr || new Error('No se pudo crear el registro');
|
|
73
|
+
});
|
|
74
|
+
return function createRegistration(_x) {
|
|
75
|
+
return _ref4.apply(this, arguments);
|
|
76
|
+
};
|
|
77
|
+
}();
|
|
78
|
+
var listRegistrations = /*#__PURE__*/function () {
|
|
79
|
+
var _ref5 = _asyncToGenerator(function* () {
|
|
80
|
+
return _eventRegistration.default.find({}).sort({
|
|
81
|
+
createdAt: -1
|
|
82
|
+
}).lean();
|
|
83
|
+
});
|
|
84
|
+
return function listRegistrations() {
|
|
85
|
+
return _ref5.apply(this, arguments);
|
|
86
|
+
};
|
|
87
|
+
}();
|
|
88
|
+
var getRegistrationById = /*#__PURE__*/function () {
|
|
89
|
+
var _ref6 = _asyncToGenerator(function* (id) {
|
|
90
|
+
return _eventRegistration.default.findById(id).lean();
|
|
91
|
+
});
|
|
92
|
+
return function getRegistrationById(_x2) {
|
|
93
|
+
return _ref6.apply(this, arguments);
|
|
94
|
+
};
|
|
95
|
+
}();
|
|
96
|
+
var getRegistrationByDorsal = /*#__PURE__*/function () {
|
|
97
|
+
var _ref7 = _asyncToGenerator(function* (dorsalNumber) {
|
|
98
|
+
return _eventRegistration.default.findOne({
|
|
99
|
+
dorsalNumber
|
|
100
|
+
}).lean();
|
|
101
|
+
});
|
|
102
|
+
return function getRegistrationByDorsal(_x3) {
|
|
103
|
+
return _ref7.apply(this, arguments);
|
|
104
|
+
};
|
|
105
|
+
}();
|
|
106
|
+
var updateRegistration = /*#__PURE__*/function () {
|
|
107
|
+
var _ref8 = _asyncToGenerator(function* (id, updateData) {
|
|
108
|
+
return _eventRegistration.default.findByIdAndUpdate(id, updateData, {
|
|
109
|
+
new: true
|
|
110
|
+
}).lean();
|
|
111
|
+
});
|
|
112
|
+
return function updateRegistration(_x4, _x5) {
|
|
113
|
+
return _ref8.apply(this, arguments);
|
|
114
|
+
};
|
|
115
|
+
}();
|
|
116
|
+
var deleteRegistration = /*#__PURE__*/function () {
|
|
117
|
+
var _ref9 = _asyncToGenerator(function* (id) {
|
|
118
|
+
return _eventRegistration.default.findByIdAndDelete(id).lean();
|
|
119
|
+
});
|
|
120
|
+
return function deleteRegistration(_x6) {
|
|
121
|
+
return _ref9.apply(this, arguments);
|
|
122
|
+
};
|
|
123
|
+
}();
|
|
124
|
+
var getRegistrationStats = /*#__PURE__*/function () {
|
|
125
|
+
var _ref10 = _asyncToGenerator(function* () {
|
|
126
|
+
var total = yield _eventRegistration.default.countDocuments();
|
|
127
|
+
var ageGroups = yield _eventRegistration.default.aggregate([{
|
|
128
|
+
$group: {
|
|
129
|
+
_id: {
|
|
130
|
+
$switch: {
|
|
131
|
+
branches: [{
|
|
132
|
+
case: {
|
|
133
|
+
$lt: ['$age', 18]
|
|
134
|
+
},
|
|
135
|
+
then: 'Menor de 18'
|
|
136
|
+
}, {
|
|
137
|
+
case: {
|
|
138
|
+
$and: [{
|
|
139
|
+
$gte: ['$age', 18]
|
|
140
|
+
}, {
|
|
141
|
+
$lt: ['$age', 30]
|
|
142
|
+
}]
|
|
143
|
+
},
|
|
144
|
+
then: '18-29'
|
|
145
|
+
}, {
|
|
146
|
+
case: {
|
|
147
|
+
$and: [{
|
|
148
|
+
$gte: ['$age', 30]
|
|
149
|
+
}, {
|
|
150
|
+
$lt: ['$age', 50]
|
|
151
|
+
}]
|
|
152
|
+
},
|
|
153
|
+
then: '30-49'
|
|
154
|
+
}, {
|
|
155
|
+
case: {
|
|
156
|
+
$gte: ['$age', 50]
|
|
157
|
+
},
|
|
158
|
+
then: '50+'
|
|
159
|
+
}],
|
|
160
|
+
default: 'Sin especificar'
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
count: {
|
|
164
|
+
$sum: 1
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}]);
|
|
168
|
+
return {
|
|
169
|
+
total,
|
|
170
|
+
available: MAX_DORSAL + 1 - total,
|
|
171
|
+
ageGroups
|
|
172
|
+
};
|
|
173
|
+
});
|
|
174
|
+
return function getRegistrationStats() {
|
|
175
|
+
return _ref10.apply(this, arguments);
|
|
176
|
+
};
|
|
177
|
+
}();
|
|
178
|
+
var _default = exports.default = {
|
|
179
|
+
createRegistration,
|
|
180
|
+
listRegistrations,
|
|
181
|
+
getRegistrationById,
|
|
182
|
+
getRegistrationByDorsal,
|
|
183
|
+
updateRegistration,
|
|
184
|
+
deleteRegistration,
|
|
185
|
+
getRegistrationStats,
|
|
186
|
+
getNextAvailableDorsal
|
|
187
|
+
};
|
|
@@ -172,12 +172,18 @@ var checkIfUserIsTrainer = /*#__PURE__*/function () {
|
|
|
172
172
|
*/
|
|
173
173
|
var getUsers = function getUsers(queryParams) {
|
|
174
174
|
var populate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
175
|
+
console.log('=== DEBUG getUsers UserService ===');
|
|
176
|
+
console.log('queryParams:', queryParams);
|
|
177
|
+
console.log('populate:', populate);
|
|
178
|
+
|
|
175
179
|
// Añadir el filtro para isDeleted
|
|
176
|
-
var
|
|
180
|
+
var finalQuery = _objectSpread(_objectSpread({}, queryParams), {}, {
|
|
177
181
|
isDeleted: {
|
|
178
182
|
$ne: true
|
|
179
183
|
}
|
|
180
|
-
})
|
|
184
|
+
});
|
|
185
|
+
console.log('Final query:', finalQuery);
|
|
186
|
+
var query = _user.default.find(finalQuery);
|
|
181
187
|
return populate ? populateQueryUserData(query) : query;
|
|
182
188
|
};
|
|
183
189
|
/**
|