UNPKG

@fabrix/spool-cart

Version:

Spool - eCommerce Spool for Fabrix

80 lines (79 loc) 2.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const common_1 = require("@fabrix/fabrix/dist/common"); const spool_sequelize_1 = require("@fabrix/spool-sequelize"); class Refund extends common_1.FabrixModel { static get resolver() { return spool_sequelize_1.SequelizeResolver; } static config(app, Sequelize) { return { options: { underscored: true, scopes: { live: { where: { live_mode: true } } }, hooks: {} } }; } static schema(app, Sequelize) { return { order_id: { type: Sequelize.INTEGER }, transaction_id: { type: Sequelize.INTEGER }, amount: { type: Sequelize.INTEGER, defaultValue: 0 }, processed_at: { type: Sequelize.DATE, defaultValue: Sequelize.NOW }, restock: { type: Sequelize.BOOLEAN, defaultValue: app.config.get('cart.refund_restock') }, live_mode: { type: Sequelize.BOOLEAN, defaultValue: app.config.get('cart.live_mode') } }; } static associate(models) { models.Refund.belongsTo(models.Order, {}); models.Refund.belongsTo(models.Transaction, {}); models.Refund.belongsToMany(models.OrderItem, { as: 'order_items', through: { model: models.ItemRefund, unique: false, scope: { model: 'order_item' } }, foreignKey: 'model_id', constraints: false }); models.Refund.belongsToMany(models.Transaction, { as: 'transactions', through: { model: models.ItemRefund, unique: false, scope: { model: 'transaction' } }, foreignKey: 'model_id', constraints: false }); } } exports.Refund = Refund;