UNPKG

10.4 kBSource Map (JSON)View Raw
1{"version":3,"file":"BillingTransactionModel.js","names":["_Model2","_interopRequireDefault","require","_omit","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","BillingTransactionModel","_Model","_inherits2","_super","_classCallCheck2","_createClass2","value","_changeStatus","_asyncToGenerator2","_regenerator","mark","_callee","newStatus","params","statusChanged","_yield$this$construct","balanceBefore","balanceAfter","wrap","_callee$","_context","prev","next","wasStatus","status","meta","statusInfo","updatedAt","Date","markModified","updateBalance","sent","addEvent","type","abrupt","stop","changeStatus","_x","_x2","undefined","events","event","createdAt","_updateBalance","_callee2","_callee2$","_context2","_createPayment","_callee3","transaction","_callee3$","_context3","save","createPayment","_x3","_prepareOne","_callee4","obj","_callee4$","_context4","omit","prepareOne","_x4","Model","exports","schema","provider","String","currency","amount","Number","required","userId","Types","ObjectId","ref","companyId","info","options","model","collection","TYPE_IN","TYPE_BETWEEN","TYPE_OUT","STATUS_PENDING","STATUS_FAILURE","STATUS_SUCCESS"],"sources":["../../src/models/BillingTransactionModel.js"],"sourcesContent":["import Model from '@lskjs/db/Model';\nimport omit from 'lodash/omit';\n//\nexport default class BillingTransactionModel extends Model {\n static schema = {\n // intId: { type: Number, required: true },\n provider: String, // bank, g2a, etc.\n currency: { type: String }, // RUB, USD, BTC, LSKCOIN\n amount: { type: Number, required: true }, // в центах\n type: { type: String, required: true }, // in, out, internal\n\n status: { type: String }, // TRANSACTION_STATUS_* // null, progress, succcess, error\n userId: { type: Model.Types.ObjectId, ref: 'UserModel', required: true },\n companyId: { type: Model.Types.ObjectId },\n info: { type: Object }, // qiwi, usd\n meta: { type: Object }, // qiwi, usd\n private: {\n // new Model.Schema({})\n type: Object, // Logs\n },\n };\n static options = {\n model: 'BillingTransactionModel',\n collection: 'billing_transactions',\n };\n\n static TYPE_IN = 'in'; // Пополнение\n static TYPE_BETWEEN = 'internal'; // Перевод внутри системы\n static TYPE_OUT = 'out'; // Снятие\n\n static STATUS_PENDING = 'pending';\n static STATUS_FAILURE = 'failure';\n static STATUS_SUCCESS = 'success';\n\n static async updateBalance() {\n return {};\n }\n static async createPayment(params) {\n const transaction = new this({\n ...params,\n });\n return transaction.save();\n }\n\n async changeStatus(newStatus, params) {\n this.wasStatus = this.status;\n this.status = newStatus;\n if (!this.meta) this.meta = {};\n\n this.meta.statusInfo = {\n wasStatus: this.wasStatus,\n status: this.status,\n updatedAt: new Date(),\n ...params,\n };\n\n this.markModified('meta');\n this.markModified('meta.statusInfo');\n\n const statusChanged = this.wasStatus !== newStatus;\n if (statusChanged) {\n const { balanceBefore, balanceAfter } = await this.constructor.updateBalance(this);\n if (balanceBefore !== null && balanceAfter !== null) {\n this.meta.statusInfo.balanceBefore = balanceBefore;\n this.meta.statusInfo.balanceAfter = balanceAfter;\n }\n }\n this.addEvent({\n type: 'changeStatus',\n ...this.meta.statusInfo,\n });\n return this;\n }\n\n addEvent(params = {}) {\n if (!this.private) this.private = {};\n if (!this.private.events) this.private.events = [];\n const event = {\n createdAt: params.createdAt || new Date(),\n ...params,\n };\n this.private.events.push(event);\n this.markModified('private.events');\n }\n\n static async prepareOne(obj) {\n return omit(obj, ['private']);\n }\n}\n"],"mappings":"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"}
\No newline at end of file