goldstars-services 1.0.12 → 1.0.13

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
@@ -27,8 +27,15 @@ Object.defineProperty(exports, "iniciarDb", {
27
27
  return _db.default;
28
28
  }
29
29
  });
30
+ Object.defineProperty(exports, "planService", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _plan.default;
34
+ }
35
+ });
30
36
  var _db = _interopRequireDefault(require("./db"));
31
37
  var _user = _interopRequireDefault(require("./services/user.service"));
32
38
  var _config = _interopRequireDefault(require("./services/config.service"));
33
39
  var _transanctions = _interopRequireDefault(require("./services/transanctions.service"));
40
+ var _plan = _interopRequireDefault(require("./services/plan.service"));
34
41
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,52 @@
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
+ // models/Plan.js
10
+
11
+ var {
12
+ Schema
13
+ } = _mongoose.default;
14
+ var PlanSchema = new Schema({
15
+ name: {
16
+ type: String,
17
+ required: true
18
+ },
19
+ // Nombre del plan, e.g., "Silver"
20
+ description: {
21
+ type: String,
22
+ required: true
23
+ },
24
+ // Descripción del plan
25
+ price: {
26
+ type: Number,
27
+ required: true
28
+ },
29
+ // Precio en dólares
30
+ mode: {
31
+ type: String,
32
+ enum: ['monthly', 'annual'],
33
+ // Modalidad: mensual o anual
34
+ required: true
35
+ },
36
+ location: {
37
+ type: String,
38
+ enum: ['Las virtudes', 'Sambil', 'Ambas'],
39
+ // Sedes donde el plan es válido
40
+ required: true
41
+ },
42
+ users: [{
43
+ type: Schema.Types.ObjectId,
44
+ ref: "User"
45
+ }],
46
+ createdAt: {
47
+ type: Date,
48
+ default: Date.now
49
+ } // Fecha de creación
50
+ });
51
+ var Plan = _mongoose.default.model('Plan', PlanSchema);
52
+ var _default = exports.default = Plan;
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _plan = _interopRequireDefault(require("../models/plan.model"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ // services/plan.service.js
10
+
11
+ /**
12
+ * @description Creates a new plan
13
+ * @param {Object} planData
14
+ * @returns {Promise<PlanModel>}
15
+ */
16
+ var createPlan = planData => {
17
+ var plan = new _plan.default(planData);
18
+ return plan.save();
19
+ };
20
+
21
+ /**
22
+ * @description Returns a plan by its ID
23
+ * @param {String} planId
24
+ * @returns {Promise<PlanModel>}
25
+ */
26
+ var getPlanById = planId => {
27
+ return _plan.default.findById(planId).populate("users");
28
+ };
29
+
30
+ /**
31
+ * @description Updates a plan
32
+ * @param {String} planId
33
+ * @param {Object} updateData
34
+ * @returns {Promise<PlanModel>}
35
+ */
36
+ var updatePlan = (planId, updateData) => {
37
+ return _plan.default.findByIdAndUpdate(planId, updateData, {
38
+ new: true
39
+ }).populate("users");
40
+ };
41
+
42
+ /**
43
+ * @description Deletes a plan by its ID
44
+ * @param {String} planId
45
+ * @returns {Promise<PlanModel>}
46
+ */
47
+ var deletePlan = planId => {
48
+ return _plan.default.findByIdAndDelete(planId);
49
+ };
50
+
51
+ /**
52
+ * @description Lists all plans with optional filters
53
+ * @param {Object} filters
54
+ * @returns {Promise<PlanModel[]>}
55
+ */
56
+ var listPlans = function listPlans() {
57
+ var filters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
58
+ return _plan.default.find(filters).populate("users");
59
+ };
60
+
61
+ /**
62
+ * @description Adds a user to a plan
63
+ * @param {String} planId
64
+ * @param {String} userId
65
+ * @returns {Promise<PlanModel>}
66
+ */
67
+ var addUserToPlan = (planId, userId) => {
68
+ return _plan.default.findByIdAndUpdate(planId, {
69
+ $addToSet: {
70
+ users: userId
71
+ }
72
+ }, {
73
+ new: true
74
+ }).populate("users");
75
+ };
76
+
77
+ /**
78
+ * @description Removes a user from a plan
79
+ * @param {String} planId
80
+ * @param {String} userId
81
+ * @returns {Promise<PlanModel>}
82
+ */
83
+ var removeUserFromPlan = (planId, userId) => {
84
+ return _plan.default.findByIdAndUpdate(planId, {
85
+ $pull: {
86
+ users: userId
87
+ }
88
+ }, {
89
+ new: true
90
+ }).populate("users");
91
+ };
92
+ var _default = exports.default = {
93
+ createPlan,
94
+ getPlanById,
95
+ updatePlan,
96
+ deletePlan,
97
+ listPlans,
98
+ addUserToPlan,
99
+ removeUserFromPlan
100
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "goldstars-services",
3
- "version": "1.0.12",
3
+ "version": "1.0.13",
4
4
  "description": "This is the services layer for GoldStars",
5
5
  "main": "./dist/index.js",
6
6
  "scripts": {