@fabrix/spool-cart
Version:
Spool - eCommerce Spool for Fabrix
77 lines (76 loc) • 2.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const common_1 = require("@fabrix/fabrix/dist/common");
const spool_sequelize_1 = require("@fabrix/spool-sequelize");
class Country 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
}
}
},
classMethods: {
resolve: function (country, options) {
}
}
}
};
}
static schema(app, Sequelize) {
return {
code: {
type: Sequelize.STRING
},
name: {
type: Sequelize.STRING
},
tax_name: {
type: Sequelize.STRING
},
tax_type: {
type: Sequelize.STRING
},
tax_rate: {
type: Sequelize.FLOAT,
defaultValue: 0.0
},
tax_percentage: {
type: Sequelize.FLOAT,
defaultValue: 0.0
},
position: {
type: Sequelize.INTEGER,
defaultValue: 0
},
live_mode: {
type: Sequelize.BOOLEAN,
defaultValue: app.config.get('cart.live_mode')
}
};
}
static associate(models) {
models.Country.hasMany(models.Province, {
as: 'provinces'
});
models.Country.belongsToMany(models.ShippingZone, {
through: {
model: models.ItemShippingZone,
unique: false,
scope: {
model: 'country'
}
},
foreignKey: 'shipping_zone_id',
constraints: false
});
}
}
exports.Country = Country;