UNPKG

6.16 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/models/BillingTransactionModel.js"],"names":["BillingTransactionModel","newStatus","params","wasStatus","status","meta","statusInfo","updatedAt","Date","markModified","statusChanged","constructor","updateBalance","balanceBefore","balanceAfter","addEvent","type","events","event","createdAt","push","transaction","save","obj","Model","schema","provider","String","currency","amount","Number","required","userId","Types","ObjectId","ref","companyId","info","Object","options","model","collection","TYPE_IN","TYPE_BETWEEN","TYPE_OUT","STATUS_PENDING","STATUS_FAILURE","STATUS_SUCCESS"],"mappings":"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","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"],"file":"BillingTransactionModel.js"}
\No newline at end of file