UNPKG

@fabrix/spool-cart

Version:

Spool - eCommerce Spool for Fabrix

83 lines (82 loc) 2.31 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 GiftCard 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 } } } } }; } static schema(app, Sequelize) { return { customer_id: { type: Sequelize.INTEGER }, recipient_id: { type: Sequelize.INTEGER }, order_id: { type: Sequelize.INTEGER }, balance: { type: Sequelize.INTEGER, defaultValue: 0 }, currency: { type: Sequelize.STRING }, code: { type: Sequelize.STRING }, code_masked: { type: Sequelize.STRING }, last_characters: { type: Sequelize.STRING }, note: { type: Sequelize.STRING }, disabled_at: { type: Sequelize.DATE }, expires_on: { type: Sequelize.DATE }, live_mode: { type: Sequelize.BOOLEAN, defaultValue: app.config.get('cart.live_mode') } }; } static associate(models) { models.GiftCard.belongsTo(models.Order, { foreignKey: 'order_id' }); models.GiftCard.belongsTo(models.Customer, { as: 'customer', foreignKey: 'customer_id' }); models.GiftCard.belongsTo(models.Customer, { as: 'recipient', foreignKey: 'recipient_id' }); models.GiftCard.hasOne(models.OrderItem, { foreignKey: 'gift_card_id' }); } } exports.GiftCard = GiftCard;