@fabrix/spool-cart
Version:
Spool - eCommerce Spool for Fabrix
61 lines (60 loc) • 1.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const common_1 = require("@fabrix/fabrix/dist/common");
const spool_sequelize_1 = require("@fabrix/spool-sequelize");
const enums_1 = require("../../enums");
class ItemCollection extends common_1.FabrixModel {
static get resolver() {
return spool_sequelize_1.SequelizeResolver;
}
static config(app, Sequelize) {
return {
options: {
underscored: true,
enums: {
COLLECTION_MODELS: enums_1.COLLECTION_MODELS
},
indexes: [
{
fields: ['collection_id', 'model', 'model_id', 'position']
}
]
}
};
}
static schema(app, Sequelize) {
return {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
collection_id: {
type: Sequelize.INTEGER,
unique: 'collection_model',
notNull: true
},
model: {
type: Sequelize.ENUM,
unique: 'collection_model',
values: Object.values(enums_1.COLLECTION_MODELS)
},
model_id: {
type: Sequelize.INTEGER,
unique: 'collection_model',
notNull: true,
references: null
},
position: {
type: Sequelize.INTEGER,
defaultValue: 1
}
};
}
static associate(models) {
models.ItemCollection.belongsTo(models.Collection, {
foreignKey: 'collection_id'
});
}
}
exports.ItemCollection = ItemCollection;